Чтобы сохранить UIImage в качестве файла в формате изображения, используйте ImageIO framework.
В этом примере я сохранить изображение в директорию приложения поддержки как кальцит (это быстро, потому что сжатие не участвуют):
CGImageSourceRef src = // ... whatever, depends on how you got the image originally
NSFileManager* fm = [NSFileManager new];
NSURL* suppurl = [fm URLForDirectory:NSApplicationSupportDirectory
inDomain:NSUserDomainMask
appropriateForURL:nil
create:YES error:nil];
NSURL* tiff = [suppurl URLByAppendingPathComponent:@"mytiff.tiff"];
CGImageDestinationRef dest =
CGImageDestinationCreateWithURL((__bridge CFURLRef)tiff,
(CFStringRef)@"public.tiff", 1, nil);
CGImageDestinationAddImageFromSource(dest, src, 0, nil);
bool ok = CGImageDestinationFinalize(dest);
// error-checking omitted
CFRelease(src); CFRelease(dest);
Почему? Что случилось с преобразованием его в «NSData»? Это, безусловно, делает его гораздо меньшим файлом. Сохранение необработанных байтов 'UIImage' будет огромным. – rmaddy
@rmaddy остро я должен сохранить 40 + изображений, но это занимает много времени. Поскольку он преобразует UIImage в NSData, тогда он записывает его в каталог. Так что просто для быстрой обработки сохранить изображение, я ищу альтернативу. – vijay
Задержка - это время, необходимое для преобразования несжатых, необработанных данных 'UIImage' в формат PNG. Даже если вы хотите записать сырые, несжатые данные 'UIImage', вам все равно нужно записать данные. Сделайте некоторые попытки доступа к данным 'UIImage'. Как только вы узнаете, как получить доступ к этим данным, не так уж сложно записать все эти байты в файл. Но эти файлы будут огромными, и вы можете потратить больше времени на создание большего количества данных. – rmaddy