Оптимизация изображений средствами командной строки Linux

Иногда возникает такая необходимость — сделать что-то с целой кучей изображений, чаще всего — сжать, чтобы не занимали много места. Есть много разных редакторов — Photoshop, Lightroom и им подобных. Кроме того, появилось уже очень много всяких онлайн сервисов, которые позволяют сжимать и оптимизировать картинки. Если этих картинок с десяток, то можно обойтись каким-нибудь сервисом. А вот если их больше, на помощь приходят консольные утилиты. Одни из таких ImageMagick, jpegoptim, optipng ImageMagick представляет из себя кроссплатформенный набор утилит, который содержит очень много функций для работы с изображениями — конвертирование из одного формата в другой, различные трансформации (ресайз, обрезка, вращение, зеркальное отражение), применение разных эффектов, вроде размытия… и очень много других. Jpegoptim и optipng позволяют сжать изображение без потери качества, а для jpegoptim также возможно сжатие с потерями. Примеры с ImageMagick Поиск и ресайз всех изображений до 500px Для одного файла:

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

Разместить маленькое изображение внутри белого квадрата, заданного размера

Создание пиктограмм 80×80

Примеры с jpegoptim и optipng.

В этом режиме удаляется вся мета-информация, кроме Exif и комментариев. По-умолчанию используется алгоритм сжатия без потери качества Сжатие с потерями, удаление всей мета-информации:

Для оптимизирования всех png изображений можно использовать следующую команду

где -o может быть от -o0 до -o7 Чем выше этот параметр, тем больше фильтров будет использовано для оптимизации. Размер будет меньше, но и обрабатываться каждое изображение будет дольше. В принципе, это весь необходимый минимум чтобы оптимизировать тонну картинок для быстрой загрузки сайтов и экономии места на хостингах. […]

Read more

Работа с графикой в PHP

Когда-то столкнулся с вопросом формирования графики в PHP. В принципе, это не сложно. Главное, понять принцип работы. Прежде всего, Вы переводите php в графический режим. И рисуете. Таким образом в 1 файле php может быть только изображение. Если Вам нужно соместить изображение, то этот файл с формирующимся изображением необходимо вызывать тегом Теперь рассмотрим пример кода: header (“Content-type: image/png”); $max_draw_width = 4000; // Максимальная ширина $max_draw_height = 4000; // Максимальная высота $img = imagecreate($max_draw_width, $max_draw_height); // Изображение $ink = imagecolorallocate($img, 255, 255, 255); ImageRectangle($img, 0, 0, $max_draw_width, $max_draw_height, $ink); $ink = imageColorAllocate ($img, 0, 0 , 0 ); // Цвет в RGB imageline($img,0,0,320-1,240-1,$ink); ImageRectangle($img, 10, 10, 20, 20 , $ink); imagepng($img); imagedestroy($img); ?> Вы можете применять большое количество команд для формирования изображения. Вот набор команд и описание процесса рисования в PHP, которые я почерпнул на сайте http://archives.maillist.ru/43732/262896.html : Сегодняшний выпуск на тему рисования в PHP. Это просто. Сначала создаётся изображение одной из нижеприведённых команд: $image = imagecreate(width X, height Y) — Создаёт новую картинку c идентификатором $image и параметрами width X – ширина, height Y – высота. С которым в последующем и будем работать. Или можно по другому: $image = imagecreatefromgif(“имя файла или URL”); — Создаёт картинку из Гифа $image = imagecreatefromjpeg(“имя файла или URL”); — Создаёт картинку из Jpeg файла $image = imagecreatefrompng(“имя файла или URL”); — Создаёт картинку из Png файла $image = imagecreatefromwbmp(“имя файла или URL”); — Создаёт картинку из Bmp файла Регистрируем цвета(добавляем в палитру), которые будем использовать: $colorBackgr = imageColorAllocate($image, 255, 255, 255); // Белый Цвет […]

Read more