iOS開發之UIImage在壓縮時失真問題,壓縮圖片的大小
阿新 • • 發佈:2022-03-04
今天遇到UIImage在壓縮時失真問題,壓縮圖片的大小圖片模糊
錯誤的方案
/** * 壓縮圖片 * image:將要壓縮的圖片 size:壓縮後的尺寸 */ -(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size { UIGraphicsBeginImageContext(size); //size 為CGSize型別,即你所需要的圖片尺寸 [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage; //返回的就是已經改變的圖片 }
正確的方案
/** * 壓縮圖片 * image:將要壓縮的圖片 size:壓縮後的尺寸 */ -(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size { // 下面方法,第一個引數表示區域大小。第二個引數表示是否是非透明的。如果需要顯示半透明效果,需要傳NO,否則傳YES。第三個引數就是螢幕密度了 UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage; //返回的就是已經改變的圖片 }