Входные данные для UIImageJPEGRepresentation
представляют собой двумерный массив пикселей, а не сжатые данные, из которых был создан этот двумерный массив.(Массив, возможно, вообще не был получен из сжатых данных!) UIImageJPEGRepresentation
ничего не знает о том, откуда пришло изображение, и не имеет никакого понятия о «качестве» его ввода.Он просто знает, что вы хотите, чтобы он очень старался сделать вывод маленьким (когда compressionQuality
равен нулю), или вы хотите, чтобы он очень старался сделать вывод точным (когда compressionQuality
равен единице).
Алгоритм сжатия JPEG имеет несколько настраиваемых параметров.Значение compressionQuality
выбирает набор этих параметров.Когда вы устанавливаете compressionQuality
в 1, компрессор использует набор параметров, которые обеспечивают очень небольшую потерю точности входных данных, независимо от того, что на самом деле являются эти входные данные.Для любых входных данных эти параметры приводят к очень небольшой потере точности.Компромисс в том, что эти параметры также приводят к очень небольшому сжатию.Затем компрессор не думает: «Хм, я должен попробовать использовать другие параметры и посмотреть, получу ли я ту же точность с лучшим сжатием».Если это то, что вы хотите, вы должны сделать это сами.