iOS壓縮圖片分辨率代碼

jopen 10年前發布 | 44K 次閱讀 IOS iOS開發 移動開發

+ (UIImage )imageWithMaxSide:(CGFloat)length sourceImage:(UIImage )image{
    CGFloat scale = [[UIScreen mainScreen] scale];
    CGSize imgSize = CWSizeReduce(image.size, length);
    UIImage *img = nil;

UIGraphicsBeginImageContextWithOptions(imgSize, YES, scale);  // 創建一個 bitmap context

[image drawInRect:CGRectMake(0, 0, imgSize.width, imgSize.height)
        blendMode:kCGBlendModeNormal alpha:1.0];              // 將圖片繪制到當前的 context 上

img = UIGraphicsGetImageFromCurrentImageContext();            // 從當前 context 中獲取剛繪制的圖片 
UIGraphicsEndImageContext();

return img;}static inlineCGSize CWSizeReduce(CGSize size, CGFloat limit)   // 按比例減少尺寸{
CGFloat max = MAX(size.width, size.height);
if (max < limit) {
    return size;
}

CGSize imgSize;
CGFloat ratio = size.height / size.width;

if (size.width > size.height) {
    imgSize = CGSizeMake(limit, limit*ratio);
} else {
    imgSize = CGSizeMake(limit/ratio, limit);
}

return imgSize;}</pre><br />
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!