Алгоритм сжатия изображений iOS - как мне его создать? - PullRequest
1 голос
/ 11 января 2012

Я работаю над частью приложения, в которой используется ImagePickerViewController для фотографирования / использования существующих изображений для страницы профиля. Я уменьшаю размер разрешения изображений (все JPEG) до 480x320, а затем сжимаю его нормально. Проблема в том, что у меня нет возможности определить, какие фотографии должны иметь уменьшенные и сжатые разрешения.

Теперь я хочу написать алгоритм, чтобы уменьшить разрешение изображения, если оно больше 480x320, и отрегулировать уровень сжатия изображения таким образом, чтобы его размер составлял около 30-50 КБ. Уровень сжатия будет масштабироваться в зависимости от размера изображения, поэтому все, что меньше 30-50 КБ, не имеет сжатия, и все, что больше, имеет столько же сжатия, сколько необходимо, чтобы достичь 30-50 КБ.

Как мне написать алгоритм для решения этой проблемы?

1 Ответ

2 голосов
/ 11 января 2012

Вам нужно будет сделать метод проб и ошибок - измените размер изображения до 480x320, затем сохраните его в формате JPEG, скажем, с качеством 95%. Проверьте размер файла и, если он слишком большой, попробуйте еще раз на 90%. Повторяйте, пока не доберетесь до нужного диапазона.

Это может быть относительно медленным (несколько секунд?), Так что делайте это в фоновом потоке.

...