jpegoptim не дожимает


SeVlad
261

Пытаясь оптимизировать кучу фоток на сервере , заметил что оптимизация с пом. jpegoptim как-то слабо проходит.

Вообще общий объём уменьшился больше чем в 2 раза (некоторые на 99% уменьшились) и я почти удовлетворился, пока не заметил что есть  фотки по 11 метров (Изначальный её объём был 13). Начал смотреть пристальнее. Скачав её на десктоп и оптимизировав ирфаном с тем же качеством (80) я получил 2,2 мб. Т.е. в 5раз меньше после оптимизации  jpegoptim-ом.

ЧЯДНТ? Как добиться нормальной оптимизации объёма с сохранением такого же качества?

Оптимизирую так:

find -type f -iname «*.jp*g» -exec jpegoptim —strip-all —all-progressive -pm80 -t {} ;

jpegoptim v1.4.1  x86_64-pc-linux-gnu

ЗЫ. Сервер какой-то странный — eVPS. Ресурсов прилично, но по возможностям убогей шареда. Разве что ssh есть.


LEOnidUKG

progressive в инфар также был включён?

Просто в этом режиме, там хранятся куча картинок в разном формате и получается, что чем больше картинка, тем больше надо эскизов в разном формате.


SeVlad

LEOnidUKG #:
progressive в инфар также был включён?

Конечно.

Сейчас перепроверил результат на другом файле и единственное отличие что я нашел — это глубина цвета. После jpegoptim она 32 бита, а после ирфана 24. Разница почти в 5 раз.

jpegoptim не дожимает

Но в jpegoptim она вроде не настраивается… Как впрочем и в ирфане.


SergejF

SeVlad :

заметил что есть  фотки по 11 метров (Изначальный её объём был 13). Начал смотреть пристальнее. Скачав её на десктоп и оптимизировав ирфаном с тем же качеством (80) я получил 2,2 мб. Т.е. в 5раз меньше после оптимизации  jpegoptim-ом.

ЧЯДНТ?

Очевидно, что кроме процента сжатия есть иные параметры. Какие из них Вы не задействуете мне не известно.Сам поступил бы так: скачал бы картинки на комп, обработал бы их в пакетном режиме в фотошопе и закачал обратно.


timo-71

SeVlad #:
Сейчас перепроверил результат

CMYK! Желтеньким на скрине выделен.

jpegoptim не дожимает

jpegoptim,  не делает типа такого

convert test_cmyk.jpg  -colorspace sRGB test_srgb.jpg

А ваша десктопная делает.

$ identify test_cmyk.jpg
test_cmyk.jpg JPEG 1600x948 1600x948+0+0 8-bit CMYK 769432B 0.000u 0:00.000


SeVlad

timo-71 #:
CMYK! Желтеньким на скрине выделен.

Угу, я и выделил разницу 🙂

Уже подсказали что вначале надо бы в RGB конвертнуть, а потом оптимизировать. Но на этом недосервере какая-то мне непонятная фигня.  Imagemagick стоит — php с ним работает, но вот из консоли — ёк.

$ convert -version

bash: convert: command not found

$ mogrify -version

bash: mogrify: command not found

И установить ничего нельзя. И тикетницы нет — только по мылу с клиентами общаются (а клиент не я). Жесть в общем, а не хостинг.

Я уже грешным делом подумал написать php-шный скипт, но как представил сколько он будет работать на обработке 30гб.. Уж лучше взять ВПС на денёк- другой и на нём всё сделать, если с этим не разберусь. Все ж наверное можно заставить работать из консоли установленный imagemagick?


suffix

timo-71 #:

CMYK! Желтеньким на скрине выделен.

jpegoptim,  не делает типа такого

А ваша десктопная делает.

Ага, в мане jpegoptim написано:

«If you’re using images with specialized color profiles or non-RGB  images (e.g., CMYK  JPEG ), you should convert them to sRGB first


timo-71

SeVlad #:
Imagemagick стоит — php с ним работает, но вот из консоли — ёк.
$ sudo dnf remove ImageMagick ImageMagick-devel

Удаляем ImageMagick

Удален:
  ImageMagick-6.9.10.86-1.el8.x86_64             ImageMagick-devel-6.9.10.86-1.el8.x86_64         OpenEXR-devel-2.2.0-11.el8.x86_64              
  gl-manpages-1.1-15.20161227.el8.noarch         ilmbase-devel-2.2.0-11.el8.x86_64                jasper-devel-2.0.14-4.el8.x86_64              
  lcms2-devel-2.9-2.el8.x86_64                   libICE-devel-1.0.9-15.el8.x86_64                 libSM-devel-1.2.3-1.el8.x86_64                
  libXt-devel-1.1.5-12.el8.x86_64                libgs-devel-9.25-7.el8.x86_64                    libjpeg-turbo-devel-1.5.3-10.el8.x86_64        
  libtiff-devel-4.0.9-18.el8.x86_64              libwebp-devel-1.0.0-1.el8.x86_64                 mesa-libGLU-9.0.0-15.el8.x86_64                
  mesa-libGLU-devel-9.0.0-15.el8.x86_64        

Выполнено!

Смотрим php

[www@localhost ~]$ cd /etc/php.d
[www@localhost php.d]$ ls -l | grep ima
-rw-r--r-- 1 root root 353 сен 30 11:50 40-imagick.ini
[www@localhost php.d]$ sudo cat 40-imagick.ini
; Enable imagick extension module
extension = imagick.so

; Documentation: http://php.net/imagick

; Don't check builtime and runtime versions of ImageMagick
imagick.skip_version_check=1

; Fixes a drawing bug with locales that use ',' as float separators.
;imagick.locale_fix=0

; Used to enable the image progress monitor.
;imagick.progress_monitor=0

Резюмируем промежуточный итог: ImageMagick мы удалили,  а для php кроме imagick.so нет ничего.

Работает? Да.

[www@localhost php.d]$ cd ~
[www@localhost ~]$ php -a
Interactive shell

php > $im = new Imagick();
php > $im->newPseudoImage(50, 50, "gradient:red-black");
php > $im->writeImage ("test_0.jpg");
php > exit
[www@localhost ~]$ ls | grep te
techno.sort.ttx
test_0.jpg
[www@localhost ~]$ identify test_0.jpg
bash: /usr/bin/identify: Нет такого файла или каталога

[www@localhost ~]$ file test_0.jpg
test_0.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 50x50, frames 3

Обращаем внимание на красное —

SeVlad #:
но вот из консоли — ёк.

ImageMagick мы удалили. И на сине-зеленое. ЗРЗ картинку нарисовал.

SeVlad #:
И установить ничего нельзя

Кто вы в системе ($ who
www      tty2         2021-01-18 19:22 (tty2), попросите доступ соответствующий, если

$ dnf install imagick
Ошибка: This command has to be run with superuser privileges (under the root user on most systems).


SeVlad

timo-71 #:
ImageMagick мы удалили

НЕТ! Ничего не удалили :):

SeVlad #:
И установить ничего нельзя.

Удалить соответственно тоже.

sudo не доступно. 🙁

Там нет рут-доступа.

Был бы рут — я бы уже давно всё сделал.

timo-71 #:
попросите доступ соответствующий,

:

SeVlad #:
И тикетницы нет — только по мылу с клиентами общаются (а клиент не я). Жесть в общем, а не хостинг.


timo-71

SeVlad #:

Удалить соответственно тоже.

sudo не доступно. 🙁

Там нет рут-доступа.

Был бы рут — я бы уже давно всё сделал.

Там может безопасность  какая. Тогда разобраться с юзерами впс.

А если хостер так сделал (не могу представить такого), тогда это практически шаред, и  решение на 1 раз — выгрузить, обработать, загрузить. Каждое, новое — новые деньги. Профит😂


timo-71

Есть еще вариант, поставить от себя

[www@localhost rpm]$ mkdir ~/progs/bin
[www@localhost rpm]$ mkdir ~/progs/lib
[www@localhost rpm]$ mkdir ~/progs/include
[www@localhost rpm]$

[www@localhost rpm]$ git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.0.10
Клонирование в «ImageMagick-7.0.10»…
remote: Enumerating objects: 232, done.
remote: Counting objects: 100% (232/232), done.
remote: Compressing objects: 100% (186/186), done.
remote: Total 148656 (delta 136), reused 110 (delta 46), pack-reused 148424
Получение объектов: 100% (148656/148656), 107.80 MiB | 6.52 MiB/s, готово.
Определение изменений: 100% (126520/126520), готово.
[www@localhost rpm]$ cd ImageMagick-7.0.10
[www@localhost ImageMagick-7.0.10]$
[www@localhost ImageMagick-7.0.10]$ configure --prefix=/home/www/progs
bash: configure: команда не найдена...

[www@localhost ImageMagick-7.0.10]$ ./configure --prefix=/home/www/progs

checking build system type... x86_64-pc-linux-gnu

Продолжаем по мануалу https://imagemagick.org/script/install-source.php

кроме того, что

sudo make install

пускаем без судо

make install

работает

[www@localhost ImageMagick-7.0.10]$ ~/progs/bin/identify -list configure | grep DELEGATES
DELEGATES             bzlib fontconfig freetype lzma pango png ps video x zlib
DELEGATES             bzlib fontconfig freetype lzma pangocairo png x zlib

[www@localhost ImageMagick-7.0.10]$ identify -list configure | grep DELEGATES
bash: identify: команда не найдена...

Установить пакет «ImageMagick», предоставляющий команду «identify»? [N/y]

из  ~/progs/bin/

глобально — нет.

Зы, для сравнения

Продолжить с этими изменениями? [N/y] y

DELEGATES      bzlib mpeg fftw fontconfig freetype gslib jbig jng jpeg lcms lzma openexr openjp2 pango png raqm raw rsvg tiff webp wmf x xml zlib
DELEGATES      bzlib cairo fftw fontconfig freetype gslib gvc jbig jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zlib

ImageMagick
ImageMagick

  • ImageMagick Studio LLC
  • imagemagick.org
Chances are, ImageMagick is already installed on your computer if you are using some flavor of Unix, and its likely not installed if you are using some form of Windows. In either case, you can type the following to find out: If the identify program executes and identifies itself as ImageMagick, you may not need to install ImageMagick from…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *