Подтвердить что ты не робот

Как загрузить локальный файл jpeg или png в приложение для iPhone?

Или я должен спросить, почему это так сложно для меня? Ответ, вероятно, в том, что я новичок в разработке iPhone, и я пытаюсь сорвать старые методы и перейти на новую платформу будущего. От начала и до конца у меня есть несколько вопросов об этом процессе...

  • Если я создаю .png-образ, куда он идет в моем каталоге проектов (т.е. на моем жестком диске компьютера)? Могу ли я поместить его на жесткий диск, и Xcode скопирует его в нужное место, когда я загружу его в Xcode?
  • Как только он появится на моем жестком диске, как добавить его в проект Xcode? Могу ли я просто перетащить файл в любую папку в дереве "Группы и файлы"?
  • Как только я перетащил его в Xcode, какие настройки копирования я хочу использовать в диалоговом окне этого файла копирования, которое появляется? Скопировать элементы в папку целевой группы? Тип ссылки? Рекурсивно создавать группы для добавления папок?
  • Как только изображение .png правильно добавлено в мой проект, какой самый простой способ получить его в CGImageRef? В документации показан пример с помощью вспомогательного метода CGImageCreateWithPNGDataProvider, но он говорит, что он не поддерживается SDK iOS. Я хотел бы использовать CGImageRef для многократного рисования изображения в растровом контексте.

Большое спасибо заранее, и я приношу свои извинения за длительный вопрос, я просто удивлен таким запутанным процессом по сравнению с некоторыми другими платформами.

4b9b3361

Ответ 1

Если вы загружаете UIImage, вы можете получить CGImageReg:

    UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];

Ответ 2

1) Он может работать в любом месте в группах и файлах, но если у вас есть только несколько, я рекомендую вставлять его в группы ресурсов. Помните, что группы в группах и файлах не соответствуют фактическим папкам в структуре вашего каталога. Они просто существуют для организации ваших файлов.

2) Просто перетащите его в панель "Группы и файлы".

3) Я бы воспользовался опцией 'copy'. Не копирование часто полезно при подключении к общим ресурсам, используемым различными проектами.

4) Я сам не использовал CGImageRef, но если вы просто хотите UIImage, вы можете просто вызвать его метод imageNamed: и укажите имя изображения без каких-либо дополнительных путей, ведущих к нему. Предполагалось, что файл будет относиться к вашему основному набору приложений.

Ответ 3

1 и 2) Вы можете поместить его в любом месте на вашем жестком диске (пока вы не перемещаете и не удаляете его), тогда вам нужно будет обновить ссылку в XCode). В XCode вы можете создать "группу" для своих изображений, щелкнув правой кнопкой мыши в левом дереве модели и выбрав его в меню. Затем просто щелкните правой кнопкой мыши и перейдите в "Добавить" → "Существующие файлы или папки" и выберите файл png. Если вы случайно добавите его в неправильную группу, вы можете перетащить его в дереве модели XCode. Вы также можете перетащить файл в группу в XCode из окна Finder.

3) Вы можете просто использовать настройки копирования "по умолчанию", и вам не нужно копировать их в проект. Ссылка достаточно хорошая и нет необходимости рекурсивно создавать группы.

4) Что вы пытаетесь сделать с изображением? Вам нужен CGImageRef из файла png или вы можете использовать UIImageView или UIImage, чтобы загрузить его из файла, или просто выложить его в Interface Builder (IB). Если вы немного подробнее расскажете о том, как вы используете изображение, возможно, мы сможем вам помочь.

Ответ 4

Если у вас есть определенный образ или набор изображений, которые вы хотите включить в состав приложения, вы можете просто перетащить их в проект - я предпочитаю раздел "Ресурсы" для этого - и ссылайтесь на них по имени, используя UIImage "imageNamed" для инициализации.

Если вы пытаетесь загрузить изображения, которые являются локальными для отдельного iPhone, это использует разные методы, но это не похоже на то, что вы после.

Я тоже новичок в программировании на iPhone, поэтому надеюсь, что это поможет.

Ответ 5

поместите изображение в пакет, затем запустите эту функцию

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];

Ответ 6

ИСПОЛЬЗОВАНИЕ XCODE:

если у вас есть объект UIImage (с именем buttonScan), расположенный в вашем XIB файле и указанный в файле .h, в viewDidLoad вашего .m файла, вы можете использовать этот код для ссылки на файл изображения, который вы назвали buttonScan01a.png (который вы импортировали в свой проект с помощью FILE > ADD FILES TO...

buttonScan.image = [UIImage imageNamed:@"buttonScan01a.png"];
[buttonScan sizeToFit];