0
我正在調整照片大小並壓縮照片,結果不正常。照片大小調整和壓縮
當我從相冊中選擇圖像時,圖像壓縮並調整大小。但是,如果我在從相機傳來的圖像上進行拍攝,則圖像會變得非常小(並且無法觀看)。我所做的測試是在我的按鈕中分配一些壓縮和調整大小的功能,以從相機源或相冊中獲取圖像。下面是我的代碼和控制檯輸出
@IBAction func testBtnPressed(sender: AnyObject) {
let img = selectedImageView.image!
print("before resize image \(img.dataLengh_kb)kb size \(img.size)")
let resizedImg = img.resizeWithWidth(1080)
print("1080 After resize image \(resizedImg!.dataLengh_kb)kb size \(resizedImg!.size)")
let compressedImageData = resizedImg!.mediumQualityJPEGNSData
print("Compress to medium quality = \(compressedImageData.length/1024)kb")
}
extension UIImage {
var mediumQualityJPEGNSData: NSData { return UIImageJPEGRepresentation(self, 0.5)! }
func resizeWithWidth(width: CGFloat) -> UIImage? {
let imageView = UIImageView(frame: CGRect(origin: .zero, size: CGSize(width: width, height: CGFloat(ceil(width/size.width * size.height)))))
imageView.contentMode = .ScaleAspectFit
imageView.image = self
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, scale)
guard let context = UIGraphicsGetCurrentContext() else { return nil }
imageView.layer.renderInContext(context)
guard let result = UIGraphicsGetImageFromCurrentImageContext() else { return nil }
UIGraphicsEndImageContext()
return result
}
}
在之前調整圖像大小5004kb大小從相冊
選定的照片(3024.0,3024.0)
1080後調整大小的圖像1023kb大小(1080.0, 1080.0)
壓縮到中等質量= 119KB
當照片是通過相機
之前調整大小圖像4653kb大小(24385.536,24385.536)傳遞
1080後調整大小圖像25KB大小(1080.576,1080.576)
壓縮到中等質量= 4KB