A PHP Error was encountered

Severity: Warning

Message: session_start(): open(/home/control/data/mod-tmp/sess_qlvkvdmq5fskmedqkn13fm3se4, O_RDWR) failed: No such file or directory (2)

Filename: common/page.php

Line Number: 1761

A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

Изменение размера и формата картинки из командной строки

d51x.ru - личный блог

О самом разном из своей жизни

Изменение размера и формата картинки из командной строки4 апреля 2011

Читало: 4354Рубрика: Разное

Недавно нашел решение одной задачи. 

Задача следующая:

1. есть куча фоток, все разного размера

2. надо отресайзить их так, чтобы размер полученного файла был не более 10 Кб.

Сперва я попробовал отресайзить несколько фоток в программе XnView. Выбрал довольно маленький размер. Высота 200px. Размеры файлов фоток все равно получались достаточно большими. Оказалось, что в файле много всякой мета-информации (exif и прочие). Удалил эти метаданные. Размер полученного файла уложился в 10 Кб.

Попробовал еще несколько фоток так уменьшать. Размер файла получался от 3 Кб до 9 Кб.

Но руками это каждый раз делать не прикольно. Начал искать решение как автоматизировать этот процесс.

Довольно быстро нашлось решение. Погуглил и нагуглил консольную утилиту nconvert.

И что самое интересное, эта утилита идет в комплекте с моей любимой XnView. :)

Поизучав параметры, которые можно передать этой утилите, составил простенький батник resize.bat:

nconvert -o %1 -q 75  -rmeta -rexifthumb -resize w 200 -ratio  %1

Запускать так:

resize.bat "photo.jpg"

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