【问题标题】:Converting image from data and then data from image increases data从数据转换图像,然后从图像数据转换增加数据
【发布时间】:2020-04-17 10:36:59
【问题描述】:

我正在从 PHAsset 获取我的图像。

我正在使用 PHAsset 的 requestImageData 函数请求图像数据。

从该函数获取数据后,我使用 scale = 1 从该数据创建图像

然后再次从新创建的图像转换数据,我得到了更多的数据,而不是我之前得到的数据

下面是我用来从 PHAsset 获取数据的代码

imageManager.requestImageData(for: image.asset, options: nil) { [weak self] (data, str, orientation, info) in
            guard let strongSelf = self else { return }
            if let dt = data {
                //Here I get data.count as 4993397
                if let image = UIImage(data: dt, scale: 1) {
                    strongSelf.image = image 
                    print("New data : \(image.jpegData(compressionQuality: 1)?.count)")
                    //The result printed here is 12107879
                }
            }
        }

为什么这里的数据会增加,我不知道

谢谢!!

【问题讨论】:

  • 关于图像大小和压缩率有really good comment。这不是您问题的答案,仅供参考
  • @VadimNikolaev 感谢您的回复,我一定会寻找这个

标签: ios swift nsdata image-compression image-size


【解决方案1】:

这一行

let image = UIImage(data: dt, scale: 1)

构建具有最高质量比 (q=1.0) 的图像。这就是为什么图像突然变得这么大的原因。

因此,当您从 NSData 将图像作为 UIImage 获取时,解压缩/转换会更改图像的大小。

【讨论】:

  • 感谢您的回复,我明白您在说什么,但是我要如何解决这个问题,因为我想从新创建的图像中获取数据,我应该在获取 UIImage 时调整图像大小数据 ? @jawadAli
  • 有一些适当的方法可以调整图像的大小,例如stackoverflow.com/questions/31314412/…
  • 我已经用这种调整大小的技术调整了我的图像大小。感谢您的回复
  • 谢谢 :) 祝你有美好的一天......如果解决了,请接受回答
  • 很抱歉延迟接受@jawadAli 的答案
猜你喜欢
  • 2016-11-08
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 2022-10-26
  • 2017-04-24
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
相关资源
最近更新 更多