2

Я создаю эскизы из гораздо больших изображений и уже некоторое время успешно использую эту команду:

convert FILE -resize "64x" -crop "64x64+0+16" +repage -strip OUTFILE

Я также делаю некоторые другие обработки, которые не имеют отношения к вопросу. Я понял, что это совсем не регулирует разрешение, поэтому, если я использую изображение с разрешением 300 точек на дюйм, на некоторых устройствах изображение будет очень маленьким. Я хочу пересчитать его до 72x72, поэтому я пытался с этой командой:

convert FILE -resize "64x" -crop "64x64+0+16" +repage -strip -resample 72x72 OUTFILE

И ожидал, что изображение 64x64 с разрешением 300 точек на дюйм будет преобразовано в изображение 64x64 с разрешением 72 точки на дюйм, но вместо этого я получаю очень забавный размер и плотность.



Вот "идентифицируйте" выходные данные для исходного и постобработанного файла БЕЗ повторной выборки:

coneybeare $ convert "aa.jpg" -crop "64x64+0+16" +repage -strip "aa.png"
coneybeare $ for image in `find . -type f`; do identify $image; identify -verbose $image | egrep "^  Resolution"; done
./aa.jpg JPEG 1130x1695 1130x1695+0+0 8-bit DirectClass 1.492MiB 0.000u 0:00.000
  Resolution: 300x300
./aa.png PNG 64x64 64x64+0+0 8-bit DirectClass 7.46KiB 0.000u 0:00.000
  Resolution: 118.11x118.11

И вот «идентифицируйте вывод для команды С повторной выборкой:

coneybeare $ convert "aa.jpg" -crop "64x64+0+16" +repage -strip -resample 72x72 "aa.png"
coneybeare $ for image in `find . -type f`; do identify $image; identify -verbose $image | egrep "^  Resolution"; done
./aa.jpg JPEG 1130x1695 1130x1695+0+0 8-bit DirectClass 1.492MiB 0.000u 0:00.000
  Resolution: 300x300
./aa.png PNG 15x15 15x15+0+0 8-bit DirectClass 901b 0.000u 0:00.000
  Resolution: 28.34x28.34





Итак, вопрос: что я делаю не так и как я могу это исправить, чтобы в результате получилось обрезанное изображение размером 64x64 с разрешением 72 точек на дюйм?

1 ответ1

1

Вы взглянули на общий раздел с миниатюрами сайта использования ImageMagick ? Это довольно хорошо. В примерах там обычно используется опция thumbnail . Из генерации миниатюр в целом:

Это не только изменяет размер изображения, но и удаляет все данные профиля и комментариев, которые могут присутствовать в исходном изображении JPEG. Кроме того, поскольку он использует оператор изменения размера «-sample» для первоначального уменьшения размера изображения, он достаточно быстрый и дает хорошие результаты для небольших миниатюр.

Вы ставите какую-то границу вокруг этих изображений? Кроме того , есть «новый» геометрия оператор в IM, ^ то флаг Заливка области:

Начиная с IM v6.3.8-3 IM теперь имеет новый флаг геометрической опции '^', который используется для изменения размера изображения на основе наименьшего размера подгонки. То есть размер изображения изменяется, чтобы полностью заполнить (и даже переполнить) заданную область пикселей.

Так что вы можете попробовать:

конвертировать ФАЙЛ - миниатюра 64x64 ^ -гравитационный центр -экстент 64x64+0+16 - полоска OUTFILE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .