在開發(fā)app的過程中,某個空間需要加載相冊中的圖片,而相冊中的圖片都是高清圖片,動輒十幾M的大小,這樣添加過多的圖片后,會導致內(nèi)存劇增,影響app的使用.
這里解決的辦法就是通過重繪圖片的frame,原始圖片的高度h1,寬度w1,再定義自己想要得到的圖片的寬度w2,通過h1 * w2 / w1來計算程序員自己想要得到的圖片的高度,然后通過獲取圖片上下文的方式,重新返回一個UIImage,給控件賦值的時候用重繪后的UIImage就能解決該問題了
這里分享一個免費的裁剪圖片的神網(wǎng)站,裁剪完不影響分辨率
https://tinypng.com
//解決內(nèi)存問題
func getScaleImage(width: CGFloat) -> UIImage {
if self.size.width <= width {
return self
}else {
let height = (self.size.height * width)/self.size.width
let rect = CGRect(x: 0, y: 0, width: width, height: height)
UIGraphicsBeginImageContext(rect.size)
self.drawInRect(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}