Как сжать изображение до определенного размера в формате JPEG независимо от качества? - Фотопедия
1 голос
/ 24 декабря 2016

Сценарий: У меня есть приложение для Android, которое захватывает изображения и отправляет на сервер. До сих пор я устанавливал 50% качества. Но с высококлассными телефонами с лучшими сенсорами и разрешением даже при таком качестве изображения имеют размер, превышающий МБ.

Если я уменьшу качество, пострадают низкокачественные камеры, и я не могу позволить себе передавать изображение размером 1 МБ.

Итак, я ищу способ сжатия изображения с ограничением размера, скажем, 300 КБ.

Как мне это сделать? или это даже правильный подход к моей проблеме?

1 Ответ

1 голос
/ 25 декабря 2016

Сценарий: у меня есть приложение для Android, которое захватывает изображения и отправляет их на сервер. До сих пор я устанавливал 50% качества. Но с высококлассными телефонами с лучшими сенсорами и разрешением даже при таком качестве изображения имеют размер больше, чем МБ.

Если вы применяете сжатие любого вида с ограничением, равным конечному размеру файла, то вы ВСЕГДА будете страдать от потери данных и, следовательно, от потери качества. Простой способ выбора сжатия файлов таким способом определяет возможный конечный уровень детализации, поэтому ваш выбор сжатия таким образом гарантирует, что изображения более высокого качества, скорее всего, будут скомпрометированы больше.

Однако я бы лично не беспокоился о предполагаемой потере качества для телефонов с более высоким MP. Просто наличие большего количества MP обычно не дает полезных деталей. Оптика ограничена другими факторами, и большое количество MP в значительной степени просто маркетинговый трюк.

Если я уменьшу качество, пострадают низкокачественные камеры, и я не могу позволить себе передавать изображение размером 1 МБ.

Очевидное решение состоит не в том, чтобы отправить его таким образом, а в том, чтобы сохранить на карту и перенести данные карты с помощью устройства для чтения карт позже, возможно, отправив окончательные файлы на тайный сервер, например, по адресу. у вас дома широкополосное соединение, которое может иметь лучшую скорость и стоимость.

Итак, я ищу способ сжатия изображения с ограничением размера, скажем, 300 КБ.

Я не использую Android, поэтому у меня нет приложения, чтобы сказать вам. На ПК я бы использовал что-то вроде ImageMagick (например, этот вопрос https://stackoverflow.com/questions/6917219/imagemagick-scale-jpeg-image-with-a-maximum-file-size).

Если вы разработчик приложения для Android, вам нужно спросить, как сохранить файлы с определенным ограничением размера на соответствующем форуме StackExchange.

В вашем случае, если это возможно, сохраните файлы на SD-карту, а затем прочитайте их на ноутбуке или настольном компьютере и выполните групповое преобразование их с помощью ImageMagick. Звучит долго, но если вы будете делать это регулярно, то с практикой это станет тривиальным.

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...