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

Тази статия описва как да се работи в PHP в графична библиотека GD библиотека - откритие, дисплей и спестява изображения.

Обработка на изображения в момента е много популярен в скриптов език за програмиране PHP. Помислете за най-честата работа с графични файлове.

Първо, уверете се, че имате библиотека GD библиотеката - просто стартирате скрипта с phpinfo (функция); В резултат на това изпълнение на скрипта ще видите информация за тази библиотека (включени в GD кутията):

Първата ни функция ще създаде нов имидж или да отворите съществуващ. Докато ние разглеждаме само откриването на съществуващо изображение:

Както можете да видите, imagecreatefromjpeg () функция се използва за отваряне на JPEG изображение тип, но не го показва на дисплея. $ Im променлива съдържа пътя до изображението. Ако даден файл не съществува, съобщението "Не може да се отвори по-голям."

Ако искате да отворите изображение не JPEG, и, например, GIF, тогава ще трябва да се обадя на друга функция:

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

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

Отваряне на файлове от различни видове

Нашата гъвкава функция може да откриете различни видове графични файлове чрез идентифициране на разширението на файла:

Но дори и това решение не решава всички проблеми: какво да правим, ако разширението на файла е зададен неправилно? В края на краищата JPG снимка лесно може да даде разширение GIF (test_jpg.gif) или GIF изображение, наречена "test_gif.txt".

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

Ето един пример за такъв сценарий:

Както можете да видите, че идеята е много прост - ние просто се редуват функция imagecreate повикване (), стига да определи вида на графични файлове.

Все още е възможно да се определи вида на файла чрез функцията getimagesize () - връща масив, който съдържа информация за даден файл - [ширина, височина, imageType] (ширина, височина, тип на файла) - по-подробно за тази функция - getimagesize.

Сега, когато знаем как да отворите изображение, помислете за обработка на функция.

Заключение на екрана и да запазите изображението

След като отворите снимката и ще го направи на манипулация, разбира се има желание да видят резултатите. Има специални функции като imagegif () и imagejpeg ().

Ето един пример за използването им:

Ако се сблъскате с този скрипт върху линка по-горе, тогава резултатът ще ви изненада: вместо снимката можете да видите набор от неясни знаци - това е браузър Opera като Mozilla Firefox, браузър двигател IE (CAM Internet Explorer, Avant и Maxton) са в състояние да определи правилно типа на файла.

Това се случва по простата причина, че ние не се изпращат към браузъра правилния заглавната част Content-Type заглавието. След като престои тип "текст / HTML" по подразбиране, което е и причината браузъри неправилно определени от вида на файла - вместо изображението след показване на текстов файл. Какво излезе от нея, вече сте виждали.

За да се реши този проблем, трябва да настроите формата на данните е ясно с помощта на заглавната част на полето Content-Type:

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

Ето как изглежда:

В резултат на това изпълнение на скрипта ще се появи в папка my_image.jpg файл. Тъй като в този случай не можем да покажем снимки на екрана и след това да изпратите областта заглавната ясно не е необходимо.

Ето някои практически примери за използване библиотека библиотека GD

Можете да създадете полигон (полигон) С imagepolygon (функция).

булев imagepolygon (изображение на ресурсите, точки масив, Int NUM_POINTS, цвят вътр)

imagepolygon () създава полигон в изображението.

изображение - сочи към един образ, на който да се направи полигон

точки - това PHP-масив, съдържащ многоъгълника върха, т.е. точки от [0] = Х0, точки [1] = y0, точки [2] = x1, точки [3] = Y1 и т.н.

NUM_POINTS общия брой на върховете.

цвят - цветът на полигон линии посочено imagecolorallocate () функция

Също така, ние трябва да използваме imagecreate (функция), за да се създаде един образ, създаден координатите на полигона като масив, броят на координати и цвета на линиите на полигон.

Php и GD библиотека - работа с графики - PHP

Използване GD библиотека библиотека с помощта на изображението може да се завърта от функция на предварително определен ъгъл imagerotate ().

ресурс imagerotate (ресурс src_im, ъгъл поплавък, Int bgd_color)

Извършва завъртане на ъгъл на изображението ъгъл src_im.

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

Конвертиране на изображения към сиво (нива на сивото)

Php и GD библиотека - работа с графики - PHP

Php и GD библиотека - работа с графики - PHP

Някои теория, че бяха ясни алгоритми за преобразуване на изображения от един цвят (RGB) в сиво (YIQ):

YIQ цветови модел (YIQ цвят модел)

Всеки цвят в модела на YIQ се дава чрез определяне на стойностите на три параметъра: Y - интензитет (яркост,) и две цветности I и Q, заедно позволява създаването на цвят контрол използване зелено, синьо, жълто и пурпурно цветове.

Така че определянето на минималните стойности I и Q (0, 0) резултати в зелен цвят, а определянето на техните максимални стойности (255.255) даде лилав цвят. Всяка от модела на компонент YIQ може да варира 0-255.

Първата част от сценария изпълнява функциите на подготовката на изображения за цвят конвертиране:

Генериране на черно-бели снимки

Кодът е подарък за два цикъла, за да се заобиколят цялото изображение и координатите Y X.

С imagecolorat () връща индекса на цветовете на пикселите в цветова палитра, която е по-голям (променлива източник $) на координатите х. Y (променлива $ х. $ у).

Освен това, има функция предизвикателство yiq (), за да конвертирате изображението цвят в сиви тонове. На функцията на крайната използва imagesetpixel () е за съставяне определен цвят на пикселите при координати х. у едно изображение към друго.

Надявам се, че след като прочетете тази статия, ще стане ясно на някои аспекти на графики в PHP. Въпреки, че статията, и предоставя само основни функции, но е ясно, че PHP разполага с голям набор от функции за генериране и редактиране на графики.

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

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