Как загрузить локальный файл изображения в формате JPEG или PNG в приложение для iPhone? - PullRequest
16 голосов
/ 23 июня 2010

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

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

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

Ответы [ 6 ]

17 голосов
/ 23 июня 2010

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

    UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];
5 голосов
/ 23 июня 2010

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

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

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

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

3 голосов
/ 23 июня 2010

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

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

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

2 голосов
/ 11 октября 2013

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

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];
2 голосов
/ 23 июня 2010

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

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

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

0 голосов
/ 15 мая 2013

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

, если у вас есть объект UIImage (здесь называемый buttonScan), расположенный в вашем файле XIB и на который есть ссылка в вашем файле .h, в viewDidLoad вашего файла .m, вы можете использоватькод для ссылки на файл изображения, который вы назвали buttonScan01a.png (который вы импортировали в свой проект с помощью ФАЙЛ> ДОБАВИТЬ ФАЙЛЫ В ...

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