我知道這種方式來保存圖像文件的目錄。保存的UIImage在Documents目錄
// Save image.
[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];
但要保存文檔目錄UIImage
的情況下直接將其轉換爲NSData
。有什麼辦法嗎?
我知道這種方式來保存圖像文件的目錄。保存的UIImage在Documents目錄
// Save image.
[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];
但要保存文檔目錄UIImage
的情況下直接將其轉換爲NSData
。有什麼辦法嗎?
要一個UIImage保存爲圖像格式的文件,使用ImageIO framework。
在這個例子中,我保存的圖像進入應用程序支持目錄爲TIFF(這是最快的,因爲沒有壓縮參與):
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);
你能用Swift 3編輯這個答案嗎? –
@NiravD請參閱https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch23p829imageIO/ch36p1084imageIO/ViewController.swift – matt
爲什麼?將其轉換爲「NSData」有什麼問題?這當然使它成爲一個更小的文件。保存'UIImage'的原始字節將是巨大的。 – rmaddy
@rmaddy敏銳,我必須救40+的圖像,但需要很長時間。因爲它將UIImage轉換爲NSData,然後將它寫入目錄。 所以只是做快速處理圖像保存,我正在尋找一些替代。 – vijay
延遲是將未壓縮的原始'UIImage'數據轉換爲PNG格式所需的時間。即使你想要寫的原始,未壓縮的'UIImage'數據,你仍然需要寫入數據。做一些關於訪問'UIImage'數據的搜索。一旦你知道如何訪問這些數據,將所有這些字節寫入文件並不難。但是這些文件將非常龐大,您最終可能會花更多時間來編寫更多數據。 – rmaddy