+ (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); // 創(chuàng)建一個(gè) bitmap context [image drawInRect:CGRectMake(0, 0, imgSize.width, imgSize.height) blendMode:kCGBlendModeNormal alpha:1.0]; // 將圖片繪制到當(dāng)前的 context 上 img = UIGraphicsGetImageFromCurrentImageContext(); // 從當(dāng)前 context 中獲取剛繪制的圖片 UIGraphicsEndImageContext(); return img; } static inline CGSize 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; } |
|