在處理圖片中由于服務端等等原因我們需要對圖片做一個規格處理、比如圖片的體積。圖片的質量。如果我們只是處理質量而不處理體積這樣圖片可能即使很大也很模糊等等。。。該內容對圖片的壓縮采用圖片系數壓縮。并不是指定的長度寬度壓縮。
在現實中需要質量壓縮和體積壓縮共同使用才能達到效果:
-(UIImage *)imageUserToCompressForSizeImage:(UIImage *)image newSize:(CGSize)size{
UIImage *newImage = nil;
CGSize originalSize = image.size;//獲取原始圖片size
CGFloat originalWidth = originalSize.width;//寬
CGFloat originalHeight = originalSize.height;//高
if ((originalWidth <= size.width) && (originalHeight <= size.height)) {
newImage = image;//寬和高同時小于要壓縮的尺寸時返回原尺寸
}
else{
//新圖片的寬和高
CGFloat scale = (float)size.width/originalWidth < (float)size.height/originalHeight ? (float)size.width/originalWidth : (float)size.height/originalHeight;
CGSize newImageSize = CGSizeMake(originalWidth*scale , originalHeight*scale );
UIGraphicsBeginImageContextWithOptions(CGSizeMake(newImageSize.width , newImageSize.height ), NO, 0);
[image drawInRect:CGRectMake(0, 0, newImageSize.width, newImageSize.height) blendMode:kCGBlendModeNormal alpha:1.0];
newImage = UIGraphicsGetImageFromCurrentImageContext();
if (newImage == nil) {
NSLog(@"image ");
}
UIGraphicsEndImageContext();
}
return newImage;
}