Сохранить изображение в песочнице из UIImage в iPhone
Я показываю очень большие изображения размера в UITableView, из-за этого мое приложение становится разбитым через некоторое время. Теперь я хочу изменить размер изображения и сохранить его на диск. может ли кто-то помочь мне изменить размер изображения из NSData/UIImage и сохранить его на диск.
Я получил код для изменения размера изображения из UIImage, так как в результате я изменил размер изображения в объекте UIImage, как сохранить его в песочнице iphone.
Спасибо,
Ответы
Ответ 1
Вот код для сохранения в каталоге Documents на iOS, который находится из рабочего кода.
// Convert UIImage to JPEG
NSData *imgData = UIImageJPEGRepresentation(image, 1); // 1 is compression quality
// Identify the home directory and file name
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.jpg"];
// Write the file. Choose YES atomically to enforce an all or none write. Use the NO flag if partially written files are okay which can occur in cases of corruption
[imgData writeToFile:jpgPath atomically:YES];
Ответ 2
Вы спрашиваете "как мне написать файл"?
Я предполагаю, что есть сложность в том, что вы, вероятно, захотите записать в каталог Library/Caches, поэтому, когда телефон будет скопирован, вы не сохраните эти файлы.
Получите корень папки приложения w/ NSHomeDirectory()
, а затем добавьте библиотеку/кеши.
Вы можете написать NSData для fs w/a method в NSData. Если у вас есть UIImage, вы можете сделать UIImageJPEGRepresentation()
или UIImagePNGRepresentation
для получения данных.
Ответ 3
NSData *imgData = UIImageJPEGRepresentation(image, 1);
CGImageSourceRef source = CGImageSourceCreateWithData((CFMutableDataRef)imgData, NULL);
NSDictionary *metadata = [(NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL)autorelease];
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.jpg"];
[imageMutableData writeToFile:jpgPath atomically:YES];
Он скопирует ваше изображение в папку документов в песочнице с именем Test.jpg
.
Если вы хотите сделать это для PNG, вы можете попробовать UIImagePNGRepresentation(image);