2013-02-19 41 views
3

我正在使用來自UIImageView *圖像的圖像上傳到服務器。 我使用 NSData *imageToUpload = UIImageJPEGRepresentation(image.image, 90); 這樣的代碼,但我想壓縮圖像小於2MB。如何從UIImageView壓縮圖像?如何從UIImageView壓縮圖像?

+3

我認爲你的意思可能是0.9而不是90.進一步降低這個值會降低質量和尺寸。 – Bushbert 2013-02-19 03:08:10

+4

這個數字越小壓縮越多,你用'UIImageJPEGRepresentation();'正確的做了它,但是這個問題以前已經被問過很多次了。我很驚訝你的代表,你發佈了這個問題......無論DUPE問題http://stackoverflow.com/a/613380/525576 – 2013-02-19 03:09:53

回答

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]]; 

希望這有助於!