В настоящее время я имею дело с несколькими приложениями, которые накладывают ограничение в 2 МБ на размер импортируемого файла/изображения. В настоящее время единственный способ, который я нашел, чтобы справиться с этим, — это вручную найти все изображения размером более 2 МБ, открыть их в режиме предварительного просмотра, изменить их размер до определенного процента и надеяться, что размер файла упадет ниже 2 МБ (а если нет, сохранить уменьшение).
Это кажется необычайно сложным. Есть ли приложение OS X, которое возьмет файл изображения и уменьшит его до нужного размера?
Я использую ImageMagick для такого рода задач, обычно подбирая сжатие/качество или разрешение. Пример:
mogrify -resize 800x600 -quality 70
Но, согласно списку параметров командной строки , подход, лучше соответствующий вашим требованиям, заключается в использовании jpeg:extent=value
параметра (например, -define jpeg:extent=2048KB
). Это будет работать только через сжатие/качество, не уменьшая разрешение (если я правильно понял документацию; я никогда не играл с этой опцией. Однако вы можете комбинировать ее с -resize
).
Ограничьте максимальный размер файла JPEG, например
-define jpeg:extent=400KB
. Кодер JPEG будет искать самый высокий уровень качества сжатия, в результате чего выходной файл не будет превышать значение. Параметр-quality
игнорируется, если он также присутствует.
ImageMagick является кроссплатформенным и предоставляет двоичные версии для Linux, Mac OS X, iOS и Windows. Он поддерживает массу графических форматов (включая запрошенные вами .jpg
и .png
). Так что это должно соответствовать вашим требованиям. Из-за того, что он работает из командной строки, он также быстрее, чем многие другие подходы (поскольку ему не нужно сначала загружать графический интерфейс).
Это довольно мощный пакет для работы с изображениями, так что вы можете использовать его и для многих других связанных задач: монтаж, анимация, сравнение, идентификация (т.е. показ метаданных изображения), преобразование между различными форматами, … Может потребоваться некоторое время, чтобы хоть все понял :)
Ник Дикинсон-Уайлд
Иззи
ЛансЛафонтен
ЛансЛафонтен
Иззи