Сохранение объекта UIImage как PNG или JPEG файл

Получение данных из 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.: Это перевод оригинального поста. Вот ссылка на исходный код, выложенный в нем же.

Полезная статья? Их будет больше, если вы поддержите меня!

https://money.yandex.ru/embed/small.xml?account=410011399843532&quickpay=small&yamoney-payment-type=on&button-text=06&button-size=l&button-color=orange&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D1%8E+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82+lexpenz.com&default-sum=50&successURL=