Получение данных из UIImage в PNG или JPEG
UIKit включает две C-функции, UIImageJPEGRepresentation и UIImagePNGRepresentation, которые возвращают объект NSData, который представлен в формате JPEG или PNG. Имея эти данные, мы можем, используя метод writeToFile объекта NSData, записать данные изображения по заданному пути.
Ниже приведен фрагмет кода с подробными комментариями:
// Создаем пути для выходных изображений
NSString *pngPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.png"];
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.jpg"];
// Записываем UIImage в JPEG с минимальным сжатием (лучшее качество)
// 'image' должен быть объектом UIImage
// Значение '1.0' задает степень сжатия изображения как значение от 0.0 до 1.0
[UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];
// Записываем изображение как PNG
[UIImagePNGRepresentation(image) writeToFile:pngPath atomically:YES];
// Теперь проверим наглядно, что файлы были корректно записаны...
// Создаем файловый менеджер
NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];
// Указываем папку с документами
NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
// Выводим содержимое домашней папки в консоль
NSLog(@"Documents directory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);
Важно отметить, что в стоках 6 и 9 значение image должно быть объектом UIImage.
P.S.: Это перевод оригинального поста. Вот ссылка на исходный код, выложенный в нем же.
Полезная статья? Их будет больше, если вы поддержите меня!