在處理圖片中由于服務(wù)端等等原因我們需要對(duì)圖片做一個(gè)規(guī)格處理、比如圖片的體積。圖片的質(zhì)量绸吸。如果我們只是處理質(zhì)量而不處理體積這樣圖片可能即使很大也很模糊等等。设江。锦茁。該內(nèi)容對(duì)圖片的壓縮采用圖片系數(shù)壓縮。并不是指定的長(zhǎng)度寬度壓縮叉存。
在現(xiàn)實(shí)中需要質(zhì)量壓縮和體積壓縮共同使用才能達(dá)到效果:
-(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;//寬和高同時(shí)小于要壓縮的尺寸時(shí)返回原尺寸
}
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;
}