1.對圖片進(jìn)行壓縮,利用iOS的API提供的函數(shù)進(jìn)行壓縮:
NSData *imageData = UIImageJPEGRepresentation(image,0.5);
返回的是二進(jìn)制的data值,可以通過打印知道大小確實(shí)減少了好多,通過此方法確實(shí)能優(yōu)化性能,需要注意的是這個0.5,并不是說壓縮到之前圖片的二分之一 ,應(yīng)該是個系數(shù)之類的數(shù)值,這樣的話圖片壓縮之后性能會好很多,但是不建議這個,因?yàn)榻鈮嚎s的時候很耗費(fèi)性能,而且壓縮后的圖片會有些失真。
2.根據(jù)image重新繪制一張新的圖片出來:
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{
// 創(chuàng)建一個bitmap的context
// 并把它設(shè)置成為當(dāng)前正在使用的context
UIGraphicsBeginImageContext(size);
// 繪制改變大小的圖片
[img drawInRect:CGRectMake(0,0, size.width, size.height)];
// 從當(dāng)前context中創(chuàng)建一個改變大小后的圖片
UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();
// 使當(dāng)前的context出堆棧
UIGraphicsEndImageContext();
//返回新的改變大小后的圖片
return scaledImage;
}
根據(jù)大小來對圖片進(jìn)行壓縮,不會造成失真。