Подтвердить что ты не робот

Сохранить изображение в песочнице из UIImage в iPhone

Я показываю очень большие изображения размера в UITableView, из-за этого мое приложение становится разбитым через некоторое время. Теперь я хочу изменить размер изображения и сохранить его на диск. может ли кто-то помочь мне изменить размер изображения из NSData/UIImage и сохранить его на диск.

Я получил код для изменения размера изображения из UIImage, так как в результате я изменил размер изображения в объекте UIImage, как сохранить его в песочнице iphone.

Спасибо,

4b9b3361

Ответ 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);