数据到UIImage到UIImageJPEG表示相等失败

时间:2018-11-23 11:51:01

标签: ios uiimage uikit uiimagepngrepresentation

为什么这种转换无法产生相同的图像数据?

    let path = Bundle(for: type(of: self)).url(forResource: "Image", withExtension: "jpg")
    inputData = try! Data(contentsOf: path!)

    let testImage = UIImage(data: inputData)
    let testImageData = UIImageJPEGRepresentation(testImage!, 1.0)

    expect(testImageData).to(equal(inputData))

据我了解,UIImageJPEGRepresentationUIImagePNGRepresentation can strip the image of meta data。是这个原因吗?

2 个答案:

答案 0 :(得分:0)

没有两个特定的JPEG文件显示相同图像的原因。 JPEG文件具有很多标头信息,不同的压缩算法等。即使两个文件的压缩级别均为1(它们是吗?),它们都是有损的,因此每次扩展和重新压缩时都会有所不同。您在这里的期望是错误的。但这听起来也像是您在尝试测试不需要首先进行测试的内容。

答案 1 :(得分:0)

我遇到了同样的问题,并且能够使用UIImagePNGRepresentationUIImage转换为Data,然后进行比较以查看两个Data是否相等