Данные к 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
были равны.