iPhone — Сохранить UIImage на рабочий стол в симуляторе

#iphone #uiimage #ios-simulator

#iPhone #uiimage #ios-симулятор

Вопрос:

В настоящее время я работаю над симулятором. Я хотел бы сохранить UIImage в файл jpg на моем рабочем столе.

Кажется, у меня проблемы с путями или что-то в этом роде.

Спасибо за вашу помощь 🙂

Комментарии:

1. пожалуйста, предоставьте более подробную информацию.

Ответ №1:

Следующее должно помочь вам начать… myImage является объектом UIImage.

 NSFileManager *fileManager = [NSFileManager defaultManager];
NSData *myImageData = UIImagePNGRepresentation(myImage);
[fileManager createFileAtPath:@"/Users/Me/Desktop/myimage.png" contents:myImageData attributes:nil];
  

Редактировать: Только что заметил, что вы хотели изображение в формате JPG, вы можете получить NSData представление JPG с помощью UIImageJPEGRepresentation() so:

 NSData *myImageData = UIImageJPEGRepresentation(myImage, 1.0);
  

Примечание: Это полезно для быстрого и грязного тестирования, но я бы посоветовал научиться записывать в каталог documents вашего приложения, а затем использовать Finder для поиска там файлов. Пример пути к каталогу документов приложения в симуляторе:

/Users/Me/Library/Application Support/iPhone Simulator/4.3/Applications/1E2C2C81-1ED6-4DC9-CDD0-CA73FB56501F/Documents

Комментарии:

1. Да, это для грязного тестирования 🙂

2. На самом деле, как «записать в каталог documents вашего приложения, а затем с помощью Finder найти там файлы. Пример пути к каталогу документов приложения в симуляторе:»

3. Примечание: ВЫ ДОЛЖНЫ СДЕЛАТЬ ЭТО в симуляторе (да). Я не мог понять, почему он перестал работать, затем понял, что я собираю на устройство.

Ответ №2:

Попробуйте перейти к cd /Users/{your username}/Library/Application Support/iPhone Simulator/4.3/Applications/{application id}/Documents/

Замените его {your username} на ваше имя пользователя Mac и {application id} на GUID вашего приложения (случайный). Вы также можете изменить 4.3 на любую версию, для которой создано ваше приложение

Ответ №3:

Для Swift,

 func outputImage(name:String,image:UIImage){
    let fileManager = FileManager.default
    let data = UIImagePNGRepresentation(image)
    fileManager.createFile(atPath: "/Users/UserName/Projects/MyProject/testImages/(name)", contents: data, attributes: nil)
}
  

Вызовите вот так,

 outputImage(name: "imageName.png", image: image)
  

Ответ №4:

Симулятор эмулирует изолированное приложение, но поскольку оно установлено на вашем Mac, вы можете получить доступ к каталогу, в котором хранится приложение и все его файлы. Итак, в вашем приложении, если вы можете выяснить, как записать данные в файл (в изолированной среде приложения), тогда вы можете использовать Finder, чтобы найти каталог и найти файл. Это помогает или я что-то упускаю?