Pull to refresh

А где вы делаете «ногти»?

Reading time 2 min
Views 2.7K
Когда идет речь о веб-разработках рано или поздно встаёт вопрос о том как и в чем подготавливать превью-картинки (thumbnail) на стороне веб-сервера. Вопрос о ручной подготовке отпадает автоматически, куда более приятно загрузить картинку и ни о чем больше не думать. Вот о том как не думать и пойдёт речь.

По началу, как наверное и многим, моему сознанию открылись 2 великолепные библиотеки ImageMagick и GD.
Богатый функционал и все такое, прелести описывать не стану… т.к. речь не о них. И по началу я думал что нет предела совершенству, пока не столкнулся с хостингом на котором нет PHP и нет Perl (я пишу на Parser, если что). И тут действительно возникла проблема.
Решение нашлось само-собой, ковыряясь в любимом просмотрщике картинок XnView я обнаружил забавную утилитку NConvert которая позволяет делать различные манипуляции с графическими файлами (длиннющий перечень функций + поддержка 400 графических форматов + реализация под все платформы).
Одним из самых замечательных плюсов, которые я для себя отметил — изменение jpeg файлов (поворот, отражение) без перекомпрессии. Это ли не сказка. Я даже написал статью на форуме Parser (читаем кому интересно).
Однако буквально неделю назад моё сознание снова заставило меня кинуться в поиски идеального решения, и оно нашлось.
Знакомьтесь — jpegtran
Утилитка которая есть на всех Unix-подобных системах входит в библиотеку jpeg. Есть и реализация под Windows.
Что она позволяет делать? Она позволяет производить различные манипуляции (обрезание meta данных, поворот, отражение, кроп, изменение размера и т.д. ) с jpeg без перекомпрессии.
Полный перечень функций:
usage: jpegtran [switches] [inputfile]
Switches (names may be abbreviated):
-copy none Copy no extra markers from source file
-copy comments Copy only comment markers (default)
-copy all Copy all extra markers
-optimize Huffman table (smaller file, but slow compression)
-progressive Create progressive JPEG file
Switches for modifying the image:
-grayscale Reduce to grayscale (omit color data)
-flip [horizontal|vertical] Mirror image (left-right or top-bottom)
-rotate [90|180|270] Rotate image (degrees clockwise)
-transpose image
-transverse transpose image
-trim Drop non-transformable edge blocks
Switches for advanced users:
-restart N Set restart interval in rows, or in blocks with B
-maxmemory N Maximum memory to use (in kbytes)
-outfile name Specify name for output file
-verbose or -debug Emit debug output
Switches for wizards:
-scans file Create multi-scan JPEG per script file

Про функции кроп и ресайз читайте здесь.
Весит утилитка в сборке под RedHat каких-то 18 Кб.
Измерить адекватно скорость работы не удалось, но по собственным ощущениям очень быстро. :)
Может я ещё чего не знаю, чем пользуетесь вы?
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+16
Comments 70
Comments Comments 70

Articles