Данные к UIImage к UIImageJPEGRepresentation равенство сбоя

Почему это преобразование не приводит к одинаковым данным изображения?

    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))

Из того, что я понимаю UIImageJPEGRepresentation а также UIImagePNGRepresentation может лишить изображения метаданных. Это причина?

1 ответ

Нет особой причины, по которой два файла JPEG с одинаковым изображением были бы идентичны В файлах JPEG содержится много информации заголовка, разные алгоритмы сжатия и т. Д. И даже если оба файла имеют степень сжатия 1 (не так ли?), Они оба с потерями, поэтому что-то будет отличаться при каждом расширении и повторном сжатии. Ваши ожидания здесь просто неверны. Но тогда это также звучит так, как будто вы пытаетесь протестировать то, что в первую очередь не нуждается в тестировании.

Я столкнулся с той же проблемой и смог решить, используя UIImagePNGRepresentation преобразовать UIImage к Data, а затем сравнил, чтобы увидеть, Data были равны.

Другие вопросы по тегам