ПредишенСледващото

Компресиране на изображения на сървъра

Оказва се, картината на вашия уеб сайтове тежат повече, отколкото трябва. Това се случва благодарение на неоптимални алгоритми за компресия с различни програми. Между другото, 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-мениджър (удобно нещо за сървъра за администрация)

Компресиране на изображения на сървъра

Компресиране на изображения на сървъра

Подкрепете проекта - споделете линка, благодаря!