1. 程式人生 > 其它 >iOS開發之UIImage在壓縮時失真問題,壓縮圖片的大小

iOS開發之UIImage在壓縮時失真問題,壓縮圖片的大小

今天遇到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;   //返回的就是已經改變的圖片
}