【iOS】根據尺寸和比例縮放圖片

根據尺寸

//根據指定尺寸縮放圖片
-(UIImage *)imageCompressWithSize:(CGSize)size
{
**//    UIGraphicsBeginImageContext(size);   ///<用這個失真**
    UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);    ///<用這個不失真
    [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

之前用模擬器跑是沒有問題,但是在真機運行時用這個方法縮小的圖片過於模糊,最後發現使用UIGraphicsBeginImageContext(size);方法會造成失真,換成UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); 就可以

根據比例縮放

//根據指定比例縮放圖片
-(UIImage *)imageCompressWithScale:(CGFloat)scale
{
    
    CGSize size = self.size;
    CGFloat width = size.width;
    CGFloat height = size.height;
    CGFloat scaleWidth = width*scale;
    CGFloat scaleHeight = height*scale;
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(scaleWidth, scaleHeight), NO, 0.0);    ///<用這個不失真
    [self drawInRect:CGRectMake(0, 0, scaleWidth, scaleHeight)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章