Реклама на сайте Advertise with us

Как подружить GD и Google?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146

Ссылка на сообщениеДобавлено: 09/11/15 в 23:16       Ответить с цитатойцитата 

точнее чекалку гугловскую...
https://developers.google.com/speed/pagespeed/insights/

если тумбы делает IM, то все ок:

"Оптимизируйте изображения - Изображения оптимизированы."

если через GD, то:

"Если сжать без потерь изображение http://*/*/*/4a24b6/th_02.jpg, это уменьшит его размер на 1,4 КБ (5 %)."

и такая ботва по каждой тумбе...((

и там и там ставится 85% качества... как-то можно в ГД этот косяк побороть?...)))

0
 

💀💀💀

С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728

Ссылка на сообщениеДобавлено: 10/11/15 в 00:27       Ответить с цитатойцитата 

попробуй Imagick'ом пожать, вроде не ругается гугл.

2
 



С нами с 13.12.13
Сообщения: 85
Рейтинг: -40

Ссылка на сообщениеДобавлено: 10/11/15 в 07:55       Ответить с цитатойцитата 

IM = Imagick ?
имхо: дополнительное инфо в картинку вставляется?

офф: радует что есть люди уделяющие внимание тому что гугл просит по дефолту, а не как русские ебанутые тизерки с раздутыми жипегами. Сто раз тема поднималась - но там "менагеры", а не хомосапиенс)))

6
 



С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146

Ссылка на сообщениеДобавлено: 10/11/15 в 13:40       Ответить с цитатойцитата 

Ailk писал:
попробуй Imagick'ом пожать, вроде не ругается гугл.


так я ж и пишу, что ImageMagic(IM) кропит картинки в соответствии с требованиями гугла... нужно заставить тоже самое делать GD

0
 



С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146

Ссылка на сообщениеДобавлено: 10/11/15 в 13:41       Ответить с цитатойцитата 

truethen писал:
IM = Imagick ?
имхо: дополнительное инфо в картинку вставляется?


нет, не вставляется ничего дополнительного... может быть такое, что GD какой-нить EXIF в картинки тулит?

0
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 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 килобайт (МЕНЬШЕ!) - гуглу не нра, и предлагает еще сократить...

есть мысли?...)

0
 



С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146

Ссылка на сообщениеДобавлено: 10/11/15 в 14:58       Ответить с цитатойцитата 

johndoe2 писал:
Покажи im и gd картинку. Самому интересно


в личку кинул линки... icon_wink.gif

0
 



С нами с 21.08.02
Сообщения: 206
Рейтинг: 63

Ссылка на сообщениеДобавлено: 10/11/15 в 17:15       Ответить с цитатойцитата 

пропустите через resmush.it, сервис вырезает всю ненужную ботву из картинок

3
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 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 выполнялось автоматом для всех вновь созданных картинок на сервере?

0
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 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.


спасибо огромное... smail54.gif

0
 



С нами с 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.)

0
 



С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146

Ссылка на сообщениеДобавлено: 10/11/15 в 20:16       Ответить с цитатойцитата 

нашли косяк:

cinfo.optimize_coding=TRUE;
jpeg_start_compress (&cinfo, TRUE);

еще раз спасибо.. smail54.gif

0
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 10/11/15 в 23:19       Ответить с цитатойцитата 

Doctor писал:

нашли косяк:

cinfo.optimize_coding=TRUE;
jpeg_start_compress (&cinfo, TRUE);

еще раз спасибо.. smail54.gif


Да сам не ожидал, что так легко это можно подправить

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

6
 

💀💀💀

С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728

Ссылка на сообщениеДобавлено: 11/11/15 в 10:13       Ответить с цитатойцитата 

нафига вам гд, если есть ИМ?

1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »