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

В тази статия искам да говоря за проблем в страните от всеки уеб разработчик, който се развива администраторския панел за онлайн магазина.
Говоря за обработка на изображения.

Разбира се, можете да обработи в Photoshop и едва след това да го качите на сървъра. И какво, ако мениджърът на съдържание от сайта "леля Люси", която дори не е, че можете да редактирате снимки повече от нищо друго, освен ножици и моливи, ще се качват снимки? В този случай, всички ваши усилия, понякога големи, могат да отидат "Teto Luce" в петата точка на оформлението на шаблона на сайта.

Време е, и аз реших да се запълни тази празнина в познанията си. За това сега и ще поговорим.

Да започнем с първия проблем се сблъсках - се превръща в .png .jpg PHP средства. Струваше ми се, би било - променило разширение и готово. Но ако започнете да работите с, за да получите изображение чрез PHP, се появяват Zrazy грешки.

За пълно преобразуване PNG да JPG, аз написах следната функция:

Нека разгледаме функция ред по ред:

Функцията отнема два параметъра. Първо - това е пътят към изображението, а вторият - начин да се получи на изображенията. Това се прави за по-лесна употреба и гъвкавост. Имайте предвид, че за тези неща, трябва да посочите абсолютен път, по отношение на корена на сървъра. Така че какви параметри трябва да бъде:

Освен това, независимо дали файлът съществува проверки функция. Това е по-за удобство.

променлива тип $, ние трябва да се определи вида на колан. Също така е необходимо за правилното функциониране на програмата, като ако изображението няма да PNG, тогава функцията ще се задейства грешка.

Ако погледнете описание getimagesize () функция в интернет, то е вероятно, че ще се намери нещо като "връща размера на изображението." В действителност, ситуацията е малко по-различно. Функцията връща не само размера, но и на бита, броят на каналите, както и вида на файла, но това е отстъпление.
Така че, тази функция ще получим вида на файла и се уверете, че е PNG. В противен случай програмата просто ще копира оригиналното изображение с името на финала. Задачата все още такива)))

Започвайки със седмия ред, функцията създава образа на специален предмет, с който вече е възможно да се работи софтуера. Този обект се съхранява в променлива източник $.

imagecreatetruecolor () функция създава образ на посочения размер в черно (по подразбиране по-нататък ние се пребоядиса). Това е, което ние ще приложат PNG, за да запълни фон с бял цвят.

imagecolorallocate функция () просто създава бял запълване, което в комбинация с $ източник imagefill на () функция. Така че ние имаме бял фон.
И последната стъпка, която струва да се обръща внимание на, е обединението на бял фон с PNG изображение дойде в JPG.
Последно - последната стъпка на обект заснета функция imagejpeg на (). Тъй като тя предава на самия обект, пътя, където се създава изображението и качеството (75 е достатъчно).

В крайна сметка, както е видно от имената на функции, памет се освобождава imagedestroy () функция, не е необходимо, понеже след употреба Скриптът, паметта е винаги освобождава автоматично, но ако след преобразуването на програмата на изображението продължава да продължат да работят или функция работи в цикъла, най-добре е да изчистите паметта - далеч от греха.

Така че ние имаме един прост, на пръв поглед, на функцията.

Ако се интересувате от конвертиране на JPEG към PNG. създаване на прозрачен фон на снимката, можете да прочетете за него тук. В тази статия, аз не говоря за това, защото това е друга история и изисква отделно разглеждане.

Следващият проблем се сблъсках с кора - това е образ преоразмеряване на PHP.

Тогава аз помогнах следващата функция, че трябва да се съберат трохите с pendosovskih форуми:

Тази функция е донякъде подобен на предишния, но е малко по-гъвкав.

Първо - той определя типа на файла, както и в зависимост от вида, създаване на различни обекти. Същото важи и за създаването на файла, в края на функцията.
Второ - ако в допълнение към връзки към изображения и дори да определите ширината на изображението, то ще го разтеглите и паралелно се преброи колко трябва да се направи на височината да запази пропорциите на изображението.

Ако функцията за подаване на третия параметър - на височината на изображението, то няма да се съобразят с пропорциите и начина, по който ги е посочено в параметрите направи.

Сега предполагам, че оформлението на вашия онлайн магазин е предназначен само за квадрат изображение 500 от 500 пиксела. Мениджърът на "леля Люси", какви са натоварванията.

Разбира се, можете да използвате функцията на предишния, и я питам последните две параметри 500 и 500. Но в този случай, ако изображението не е първоначално квадрат, а след това на изхода ще се разтегне "позор".

За да избегнете това, аз трябваше да пренапише функцията, така че да се вписва в някое изображение в квадрат, поддържайки своите пропорции (пропорционална преоразмеряване):

Тя вече е по-гъвкав и много подобен на предходния, че отнема само 2 параметри: по пътя на изображението и размера на една от страните. Той създава бял квадрат бял пропорционално променя първоначалната резолюция на изображението и ги наслагва една върху друга. Резултатът е красива, пропорционална на образа, ние се нуждаем размер.

Ако откриете неточности, бих искал да ги чуе.

Свързани статии

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