OC 版本(任意大小壓縮)
pragma mark - 修改圖片大小,減小內(nèi)存占用
-(UIImage *)scaleToSize:(CGSize)size {
//開啟圖片上下文
UIGraphicsBeginImageContext(size);
//渲染到上下文
[self drawInRect:CGRectMake(0, 0, size.width, size.height)];
//上下文獲取圖片
UIImage *endImage = UIGraphicsGetImageFromCurrentImageContext();
//關(guān)閉上下文
UIGraphicsEndImageContext();
return endImage;
}
Swift版本(指定寬度壓縮)
// 壓縮圖片
/*
指定寬度來(lái)壓縮
寬 1200 指定寬度 600
高 600 x
*/
func getImageScale(width: CGFloat) -> UIImage{
// 如果當(dāng)前圖片的寬度 小于程序員指定的寬度
if self.size.width < width {
return self
}
// 獲取圖片的最終高度
let height = (width*self.size.height)/self.size.width
// 設(shè)置rect
let rect = CGRect(x: 0, y: 0, width: width, height: height)
// 通過(guò)上下文
// 01 開啟上下文
UIGraphicsBeginImageContext(rect.size)
// 02 將圖片渲染到上下文中
self.drawInRect(rect)
// 03 從上下文獲取image
let result = UIGraphicsGetImageFromCurrentImageContext()
// 04 關(guān)閉上下文
UIGraphicsEndImageContext()
return result
}