【问题标题】:iOS: UIImage size in bytes is different than actual image sizeiOS:以字节为单位的 UIImage 大小与实际图像大小不同
【发布时间】:2021-09-22 08:44:56
【问题描述】:

我尝试获取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。谁能告诉我这个问题。

【问题讨论】:

    标签: ios uikit uiimage


    【解决方案1】:

    这行不会重新压缩图像吗?

        let imgData = NSData(data: image.jpegData(compressionQuality: 1)!)
    

    如果是这样,我肯定希望生成的图像比原始图像小。

    【讨论】:

    • 它的compressionQuality 是1,这意味着我猜不压缩。有没有其他方法可以获取图片的大小?
    • 是的,即使使用 1.0 压缩,它也会压缩
    • 我真的不认为没有一些压缩就可以获得jpeg表示 - 我不认为这种格式可以让你这样做!
    【解决方案2】:

    这对我有用,而不是 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, options: .none) { data, string, orientation, info in
            let imgData = NSData(data:data!)
            var imageSize: Int = imgData.count
            print("actual size of image in KB: %f ", Double(imageSize) / 1024.0)
          }
        }
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      相关资源
      最近更新 更多