Ответ 1
Если вы загружаете UIImage, вы можете получить CGImageReg:
UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];
Или я должен спросить, почему это так сложно для меня? Ответ, вероятно, в том, что я новичок в разработке iPhone, и я пытаюсь сорвать старые методы и перейти на новую платформу будущего. От начала и до конца у меня есть несколько вопросов об этом процессе...
CGImageCreateWithPNGDataProvider
, но он говорит, что он не поддерживается SDK iOS. Я хотел бы использовать CGImageRef для многократного рисования изображения в растровом контексте.Большое спасибо заранее, и я приношу свои извинения за длительный вопрос, я просто удивлен таким запутанным процессом по сравнению с некоторыми другими платформами.
Если вы загружаете UIImage, вы можете получить CGImageReg:
UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];
1) Он может работать в любом месте в группах и файлах, но если у вас есть только несколько, я рекомендую вставлять его в группы ресурсов. Помните, что группы в группах и файлах не соответствуют фактическим папкам в структуре вашего каталога. Они просто существуют для организации ваших файлов.
2) Просто перетащите его в панель "Группы и файлы".
3) Я бы воспользовался опцией 'copy'. Не копирование часто полезно при подключении к общим ресурсам, используемым различными проектами.
4) Я сам не использовал CGImageRef, но если вы просто хотите UIImage, вы можете просто вызвать его метод imageNamed: и укажите имя изображения без каких-либо дополнительных путей, ведущих к нему. Предполагалось, что файл будет относиться к вашему основному набору приложений.
1 и 2) Вы можете поместить его в любом месте на вашем жестком диске (пока вы не перемещаете и не удаляете его), тогда вам нужно будет обновить ссылку в XCode). В XCode вы можете создать "группу" для своих изображений, щелкнув правой кнопкой мыши в левом дереве модели и выбрав его в меню. Затем просто щелкните правой кнопкой мыши и перейдите в "Добавить" → "Существующие файлы или папки" и выберите файл png. Если вы случайно добавите его в неправильную группу, вы можете перетащить его в дереве модели XCode. Вы также можете перетащить файл в группу в XCode из окна Finder.
3) Вы можете просто использовать настройки копирования "по умолчанию", и вам не нужно копировать их в проект. Ссылка достаточно хорошая и нет необходимости рекурсивно создавать группы.
4) Что вы пытаетесь сделать с изображением? Вам нужен CGImageRef
из файла png или вы можете использовать UIImageView
или UIImage
, чтобы загрузить его из файла, или просто выложить его в Interface Builder (IB). Если вы немного подробнее расскажете о том, как вы используете изображение, возможно, мы сможем вам помочь.
Если у вас есть определенный образ или набор изображений, которые вы хотите включить в состав приложения, вы можете просто перетащить их в проект - я предпочитаю раздел "Ресурсы" для этого - и ссылайтесь на них по имени, используя UIImage "imageNamed" для инициализации.
Если вы пытаетесь загрузить изображения, которые являются локальными для отдельного iPhone, это использует разные методы, но это не похоже на то, что вы после.
Я тоже новичок в программировании на iPhone, поэтому надеюсь, что это поможет.
поместите изображение в пакет, затем запустите эту функцию
NSString *localPath = [[NSBundle mainBundle]bundlePath];
NSString *imageName = [localPath stringByAppendingPathComponent:[[NSString alloc]initWithFormat:@"worldMapResized.png"]];
CGRect bgRect = CGRectMake(0, 0, 500, 500);
UIImageView *myBgView = [[UIImageView alloc] initWithFrame:bgRect];
[myBgView setImage:[UIImage imageWithContentsOfFile:imageName]];
[self.view addSubview:myBgView];
ИСПОЛЬЗОВАНИЕ XCODE:
если у вас есть объект UIImage (с именем buttonScan
), расположенный в вашем XIB файле и указанный в файле .h, в viewDidLoad вашего .m файла, вы можете использовать этот код для ссылки на файл изображения, который вы назвали buttonScan01a.png
(который вы импортировали в свой проект с помощью FILE > ADD FILES TO...
buttonScan.image = [UIImage imageNamed:@"buttonScan01a.png"];
[buttonScan sizeToFit];