Оказва се, картината на вашия уеб сайтове тежат повече, отколкото трябва. Това се случва благодарение на неоптимални алгоритми за компресия с различни програми. Между другото, Photoshop File-> Save за уеб доста добър оптимизира изображението. Но ACDSee и особено GD тип PHP библиотека даде по-малко от оптимални резултати.
В допълнение, изображението съдържа допълнителни текстова информация: дата Picture, настройките за снимане, модел фотоапарат и т.н. Нека да е 1%, но това, което е потребителят на качване.
Всички изброени по-долу се отнася за компресия без загуба на качеството. Т.е. Изображение визуално тези, загуба на качеството.
Един от тези снимки тежи 1,7 кб и един 2,3 кб
Една от тези снимки тежи 32 KB, 42 Кб още
Какво прави той?
За да се ускори зареждането на страницата, особено за мобилни устройства (мобилни телефони ще пост за по-късно). Е, пространството не разполага с цялата каучука.
Например, за тази публикация. където половината от галерията е оптимизиран Photoshop, компресия даде 5%, изглежда не е толкова много, но в абсолютно изражение е 250kb, което е добре.
И аз забелязах, старите снимки на първите цифрови фотоапарати или стари сканирания са компресирани с 50%. Въпреки че външно тези снимки изглеждат така и сгъстен до краен предел.
Откъде да започнем?
Compression се извършва с помощта на библиотеките, които трябва да бъдат инсталирани на сървъра,
към JPG: Jpegoptim
инсталиране на ап-да инсталирате jpegoptim
да PNG: OptiPNG
инсталиране на ап-да инсталирате optipng
към GIF: gifsicle
инсталиране на ап-да инсталирате gifsicle
Как да компресирате
От конзола пробег
Има команди за компресиране на всички изображения в дадена директория, но все пак се справя мъчение. Така че ще трябва да се автоматизира процеса. Всъщност, цялата идея по-долу има смисъл, ако имате десетки сайтове и десетки хиляди изображения.
Така че е необходимо да се помни, че ние вече сме оптимизирани, така че да не се прави двойно мито. Между другото, ако изображението е вече оптимизиран, но повторното оптимизация, нищо не се случва с изображението.
счетоводни снимки
Най-предпочитаният начин за съхраняване на изображения публикувани в базата данни и периодично (короната) с цел тяхното оптимизиране.
Създаване на единна база данни с IMG IMG една таблица
is_compress флаг - показва състоянието на обработка
0 - все още не е оптимизиран
1 - успешно оптимизиран
2 - грешка в оптимизиране
Всъщност, това е рекурсивно функция, която пресича всички поддиректории и пише по пътя към IMG масата. Т.е. първо трябва да се състави списък на всички главната директория със снимки. Ако снимките много, да събира изображения в един замах в рекурсивно (сървър), могат да се мотае, защото рекурсивни процедура е трудоемко за сървъра.
На всяко място има 1-2 точка за сваляне на изображения (тип /ajax/upload.php)
Тези скриптове трябва да поставите
Алтернативно, за да се оптимизира изображението на движение, т.е. веднъж в регистъра на скрипт
shell_exec ( "jpegoptim" .escapeshellarg ($ _ СЪРВЪРА [ 'DOCUMENT_ROOT'] $ sFileLocalPath) "--strip-всички" ..);
Но съхранение в единна база данни по някакъв начин, добавя още ред.
Run Berlaga оптимизация
Вземете всяка снимка и да използвате shell_exec () да започне необходимите процеси (jpegoptim, optipng, gifsicle), в зависимост от разширението на файла.
Няма нужда да се вземе цялата маса наведнъж - сървъра обеси. Бремен 5-100 снимки наведнъж. Ние мотае този скрипт като работа Cron всяка минута. Т.е. при добавяне на нов имидж на сайта - това ще бъде оптимизирана за една минута.
$ Резултати - резултатът е текст компресия. Той съдържа много интерес uzhalsya файла - марка is_compress флаг = 1. Ако такава информация не е на разположение, има грешка и да маркирате този файл флаг is_compress = 2
Ето как изглежда, когато се покажат (ехо $ резултат. "
")
Обикновено, грешки се случват поради неправилни файлови разширения. Например, че е GIFCA и онлайн тя JPG разширение - с браузърите може правилно да го покажете. Би могло да се разбира по мим тип за определяне на разширението.
Права на файлове
защото shell_exec изработен от PHP-скрипт, а собственикът на изображението трябва да е в подобно Apache, т.е. на WWW данни.
Това често се случва, че сайтът е бил изпълнен чрез FTP от корен, така че от PHP оптимизиране и презаписване на тези файлове няма да работят.
Ето защо, ние трябва да гарантира, че необходимите директории и файлове, собственост на WWW-данни и сложи дясната. В указателя, който е изпълнен с файлове, прав 755 и 644 в изображението.
Това може да стане чрез конзола, FTP-управител или ISP-мениджър (удобно нещо за сървъра за администрация)