Я успешно использую CGImageSource для чтения изображения (в основном JPEG) и CGImageDestination для его обратной записи. Это работает, но мое изображение получается намного меньше, чем было раньше (изображение размером 3,9 МБ станет изображением размером 2,1 МБ).
Я играл с kCGImageDestinationLossyCompressionQuality , и, хотя он влияет на размер файла, я не понимаю масштаб, который он использует.
например. тот же файл 3.7Mb изменит свой размер на:
1,9 МБ с качеством сжатия 0,7
2,4 МБ с качеством сжатия 0,8
3,0 МБ с качеством сжатия 0,9
7,4 МБ с качеством сжатия 1,0
Я перепробовал все (с точностью до 6 десятичных знаков, используя дихотомию), чтобы найти место, где можно вернуться к этим волшебным 3,9 МБ, но он прыгает с 3,3 МБ до 7,4 МБ, и, кажется, нет способа заставить его остаться между этими двумя числами .
Есть ли какая-либо другая библиотека Objective C, которую я могу использовать для изменения данных EXIF, которая оставляет сжатие (и, следовательно, размер файла) одним?