С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 09/11/15 в 23:16 |
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 10/11/15 в 00:27 |
попробуй Imagick'ом пожать, вроде не ругается гугл.
|
|
|
|
С нами с 13.12.13
Сообщения: 85
Рейтинг: -40
|
Добавлено: 10/11/15 в 07:55 |
IM = Imagick ?
имхо: дополнительное инфо в картинку вставляется?
офф: радует что есть люди уделяющие внимание тому что гугл просит по дефолту, а не как русские ебанутые тизерки с раздутыми жипегами. Сто раз тема поднималась - но там "менагеры", а не хомосапиенс)))
|
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 13:40 |
Ailk писал: | попробуй Imagick'ом пожать, вроде не ругается гугл. |
так я ж и пишу, что ImageMagic(IM) кропит картинки в соответствии с требованиями гугла... нужно заставить тоже самое делать GD
|
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 13:41 |
truethen писал: | IM = Imagick ?
имхо: дополнительное инфо в картинку вставляется?
|
нет, не вставляется ничего дополнительного... может быть такое, что GD какой-нить EXIF в картинки тулит?
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 10/11/15 в 14:21 |
Doctor писал: |
нет, не вставляется ничего дополнительного... может быть такое, что GD какой-нить EXIF в картинки тулит?
|
Покажи im и gd картинку. Самому интересно
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
6
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 14:23 |
продолжая рыть по теме, выяснил, что ни IM ни GD EXIF информацию к картинкам не дописывают... но GD добавляет комментарий (CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 85)... правда этот комментарий всего 61 байт, что явно не катит на те сокращения, которые предлагает гугл...
еще, что интересно, если сравнивать одинаковые картинки, созданные ИМ и ГД, то получается следующее:
ИМ: 100 точек на дюйм, размер файла 16,3 килобайта - гуглу все нра
ГД: 96 точек на дюйм, размер файла 15,7 килобайт (МЕНЬШЕ!) - гуглу не нра, и предлагает еще сократить...
есть мысли?...)
|
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 14:58 |
johndoe2 писал: | Покажи im и gd картинку. Самому интересно |
в личку кинул линки...
|
|
|
|
С нами с 21.08.02
Сообщения: 206
Рейтинг: 63
|
Добавлено: 10/11/15 в 17:15 |
пропустите через resmush.it, сервис вырезает всю ненужную ботву из картинок
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 10/11/15 в 17:30 |
GD сохраняет часть информации не в оптимизированном виде. Вот http://37.1.195.56/share/test/
Там исходные картинки, прогнанные через jpegtran -optimize, прогнанные через jpegoptim --strip-all
im картинка никаких выгод от прогонки не получила.
gd картинка выиграла от "optimization of entropy encoding parameters" (обе утилиты это сделали) и удаления метаданных. Первое и есть то, чего от тебя хочет гугл и то, чего gd не делает. По крайней мере по умолчанию
качество у тебя не 85, а 90.
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
7
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 18:01 |
johndoe2 писал: | GD сохраняет часть информации не в оптимизированном виде. Вот http://37.1.195.56/share/test/
Там исходные картинки, прогнанные через jpegtran -optimize, прогнанные через jpegoptim --strip-all
im картинка никаких выгод от прогонки не получила.
gd картинка выиграла от "optimization of entropy encoding parameters" (обе утилиты это сделали) и удаления метаданных. Первое и есть то, чего от тебя хочет гугл и то, чего gd не делает. По крайней мере по умолчанию
качество у тебя не 85, а 90. |
Супер!!!
а подскажи пожалуйста еще такую вещь, возможно ли модифицировать каким-либо образом GD, чтобы jpegtran -optimize выполнялось автоматом для всех вновь созданных картинок на сервере?
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 10/11/15 в 19:24 |
Doctor писал: |
Супер!!!
а подскажи пожалуйста еще такую вещь, возможно ли модифицировать каким-либо образом GD, чтобы jpegtran -optimize выполнялось автоматом для всех вновь созданных картинок на сервере?
|
В исходниках imagemagick можно найте вот что http://git.imagemagick.org/repos/ImageMagick/blob/master/coders/jpeg.c#L2284 . Как видно imagemagick вкл/выкл jpeg_info.optimize_coding в зависимости от параметра jpeg:optimize-coding. По умолчанию оптимизация включена и в libjpeg передается jpeg_info.optimize_coding=true.
Вот так отключаем оптимизацию
convert 1.png -define jpeg:optimize-coding=off -quality 90% bad.jpg
на выходе будет файл явно больше размера чем если просто
convert 1.png -quality 90% good.jpg
Если пропустить bad.jpg через оптимизатор
jpegtran -optimize bad.jpg > good2.jpg
получим файл того же размера, что good.jpg
А если заглянуть в исходники php в ext/gd/libgd/gd_jpeg.c, никаких особых настроек там не увидим. В частности cinfo.optimize_coding не устанавливается. А раз на выход imagejpeg() у нас плохой, значит по умолчанию libjpeg оптимизацию не выполняет и ее нужно включить самому.
Чтобы imagejpeg() делал оптимизацию из коробки, нужно в ext/gd/libgd/gd_jpeg.c выше строчки jpeg_start_compress (&cinfo, TRUE); поставить cinfo.optimize_coding=TRUE; и пересобрать php gd.
UPDATE Поправил true на TRUE
Последний раз редактировалось: johndoe2 (10/11/15 в 23:17), всего редактировалось 2 раз(а)
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
7
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 19:43 |
johndoe2 писал: |
Чтобы imagejpeg() делал оптимизацию из коробки, нужно в ext/gd/libgd/gd_jpeg.c выше строчки jpeg_start_compress (&cinfo, TRUE); поставить cinfo.optimize_coding=true; и пересобрать php gd. |
спасибо огромное...
|
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 19:54 |
да, не все так просто... админы говорят не собирается так...(((
С модификацией php не собирается.
>Чтобы imagejpeg() делал оптимизацию из коробки, нужно в ext/gd/libgd/gd_jpeg.c выше строчки jpeg_start_compress (&cinfo, TRUE); поставить cinfo.optimize_coding=true; и пересобрать php gd.
cinfo.optimize_coding=true;
jpeg_start_compress (&cinfo, TRUE);
/usr/work/src/php5/ext/gd/libgd/gd_jpeg.c: In function 'php_gd_gdImageJpegCtx':
/usr/work/src/php5/ext/gd/libgd/gd_jpeg.c:183: error: 'true' undeclared (first use in this function)
/usr/work/src/php5/ext/gd/libgd/gd_jpeg.c:183: error: (Each undeclared identifier is reported only once
/usr/work/src/php5/ext/gd/libgd/gd_jpeg.c:183: error: for each function it appears in.)
|
|
|
|
С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146
|
Добавлено: 10/11/15 в 20:16 |
нашли косяк:
cinfo.optimize_coding= TRUE;
jpeg_start_compress (&cinfo, TRUE);
еще раз спасибо..
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 10/11/15 в 23:19 |
Doctor писал: |
нашли косяк:
cinfo.optimize_coding=TRUE;
jpeg_start_compress (&cinfo, TRUE);
еще раз спасибо..
|
Да сам не ожидал, что так легко это можно подправить
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
6
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 11/11/15 в 10:13 |
нафига вам гд, если есть ИМ?
|
|
|
|