问题描述
我正在尝试获取 UIImage
的字节大小。问题是我的实际图像是 5MB,当我使用
let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
let imgData = NSData(data: image.jpegData(compressionQuality: 1)!)
var imageSize: Int = imgData.count
print("actual size of image in KB: %f ",Double(imageSize) / 1000.0)
我只有 2MB。任何人都可以请教我。
解决方法
这一行不是重新压缩图像吗?
let imgData = NSData(data: image.jpegData(compressionQuality: 1)!)
如果是这样,我肯定希望生成的图像比原始图像小。
,这对我有用而不是 UIImage().jpegdata
public func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : Any]) {
var asset: PHAsset!
if #available(iOS 11.0,*) {
asset = info[UIImagePickerControllerPHAsset] as? PHAsset
} else {
if let url = info[UIImagePickerControllerReferenceURL] as? URL {
asset = PHAsset.fetchAssets(withALAssetURLs: [url],options: .none).firstObject!
}
}
if #available(iOS 13,*) {
PHImageManager.default().requestImageDataAndOrientation(for: asset,options: .none) { data,string,orien,info in
let imgData = NSData(data:data!)
var imageSize: Int = imgData.count
print("actual size of image in KB: %f ",Double(imageSize) / 1024.0)
}
} else {
PHImageManager.default().requestImageData(for: asset,orientation,Double(imageSize) / 1024.0)
}
}
}