2013-02-19 8 views
3

Я использую изображение из изображения UIImageView * для загрузки на сервер. Я использую код как NSData *imageToUpload = UIImageJPEGRepresentation(image.image, 90); , но я хотел бы сжать изображение менее 2 МБ. Как сжать изображение из UIImageView?Как сжать изображение из UIImageView?

+3

Я думаю, что вы, вероятно, имели значение 0,9, а не 90. Уменьшение этого значения приведет к снижению качества и, следовательно, размера. – Bushbert

+4

Чем меньше число, тем более сжато, и вы делаете это правильно с 'UIImageJPEGRepresentation();' но этот вопрос задавался много раз раньше. Я удивлен вашим представителем, что вы разместили этот вопрос ... В любом случае вопрос DUPE http://stackoverflow.com/a/613380/525576 –

ответ

5

Вот кусок кода, как вам нужно

CGFloat compression = 222.0f; 
CGFloat maxCompression = 202.1f; 
int maxFileSize = 160*165; //fill your size need 

NSData *imageDat = UIImageJPEGRepresentation(image.image, compression); 

while ([imageDat length] > maxFileSize && compression > maxCompression) 
{ 
    compression -= 0.1222; 
    imageDat = UIImageJPEGRepresentation(decodedimage.image, compression); 
} 
NSLog(@"image compressed success"); 

[image setImage:[UIImage imageWithData:imageDat]]; 

Надежда это помогает !!!

Смежные вопросы