Помогни ни да направим Uroci.net по - богат! Добави урок

PHP - част 13 (Създаване на изображения)

PHP » PHP
fix3d   трудност:    видян: 12300


Графичните форми са неделима част от всеки Web сайт. Графиките могат да се използват подходящо, за да илюстрират текста. PHP, предоставя много функции, който може да използвате, за да създадете и да използвате графики в Web страницата си. Използването им предлага огромно количество възможности. Можете да използвате прости изображения, а може и да използвате и динамични изображения който да се променят, когато потребителя постави курсора на мишката си върху тях, или пък да използвате анимации, за да подобрите изгледа на Web страницата си. Въпреки, че всичко това е възможно чрез HTML, можете да постигнете този ефект и още много други с помощта на PHP.

[*]Ето и няколко идеи за използването на динамични изображения в Web:

[*]Илюстриране на информацията на чужди езици и някой формуляри, който не може да се изобразява със стандартните шрифтове.

[*]Показване на важна информация, като например потребителско име и парола на новорегистрирания потребител в изображения, така че да не могат да бъдат прихванати по време на предаване.

[*]Динамично създаване на заглавия за информация, извлечена от централна база данни.

[*]Динамично създаване на графики и отчети на базата на заявка от потребителя.

[*]Динамично показване на реклами и препратки към информация и персонализирането на тази препратка на базата на потребителските извиквания.

PHP предоставя много начини, по който можете да реализирате горната функционалност. Процесът е прост. Ще използвате един и същи етикет IMG с този, който се използва в HTML за създаване на изображения. В този случай, вместо да използвате статично изображение, ще предоставите връзка към PHP функция. Изображението, ще се създава по време на изпълнението на скрипта.

Формата на изображенията, който можете да променяте, зависи от версията на библиотеката GD, която е инсталирана на сървъра. Освен библиотеката GD, трябва да инсталирате още няколко библиотеки, за да можете да създавате изображения в PHP. Нека да видим как се инсталира библиотека GD и всичките други необходими библиотеки.

Инсталиране на необходимите графични библиотеки

Библиотеката GD е най-важния компонент, който трябва да се инсталира преди да можете да създадете изображения в PHP. Ако вече сте инсталирали тази библиотека на компютъра си, можете да мините към следващата секция.

Можете да проверите, дали тя е инсталирана, като отворите файла phpinfo.php и проверете дали съществува частта gd. Ако тази секция съществува в Web страницата, тогава може да сте сигурни, че библиотеката е инсталирана на системата. В противен случай, трябва да я свалите от Web сайта на PHP. На сайта ще намерите подробни инструкции за инсталацията й.

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

./configure
make
make install

Библиотеката GD, предоставя множество функции, който можете да използвате в PHP, за да генерирате графични обекти, да променяте цветовете и да създавате обекти, запълнени с цветове. Библиотеката zlib и PNG, също могат да се свалят от Web сайта на PHP, а библиотеката FreeType е достъпна на адрес http://freetype.sourceforge.net

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

Създаване на заглавна информация.

По подразбиране всеки код, написан на PHP, ще съдържа заглавен файл, който ще предоставя информация за изображението, което ще се съхранява с помощта на кода. Заглавния файл съдържа заглавието Content-type, което съхранява тази информация. Можете да изпратите информацията за изображението във HTML страница, като зададете това в заглавието. Следния код задава, че резултата трябва да се покаже във Web страница.

header ( „Content-type: text/html“);

Можете да използвате функцията header(), за да укажете, че резултатния файл трябва да бъде JPG, GIF или PNG в зависимост от желанието ви. Така можете да използвате различни заглавни части, за да зададете различните типове изображения, които ще създавате с програмата си. Следващия код показва как можете да зададете тези инструкции във кода си.

header („Content-type: text/html“ );
header („Content-type: text/html“ );


Стъпки при създаването на изображения

Преди да започнете процеса на създаване на изображения, трябва да се запознаете със стъпките за създаване на изображения в PHP и показването му в браузъра. Създаването на изображения включва първо създаването на изображението в паметта на компютъра, преди да се покаже в браузъра.

Ето стъпките, които трябва да направите за да създадете изображение.

[list=1]
[*]Първо трябва да създадете платно ( canvas ) за изображението, в което ще създадете истинското изображение. Платното на изображението е област в паметта на компютъра, където изображението ще се изчертае, преди да се покаже в браузъра или да се запише във файл.

[*]Следващата стъпка е да създадете самото изображение в платното. Можете да създадете изображението, като използвате различните функции, предоставени от PHP. Ще се запознаете накратко с тези функции.

[*]След конструирането на изображението, трябва да изпратите изображението към браузъра, за да се покаже на потребителя.

[*]Последното действие е да освободите ресурсите. Не е необходимо изображението да се съхранява в платното, след изпращането му към браузъра. Поради тази причина трябва да освободите паметта, като изтриете платното.


Деклариране на координатите за изображение

Може би си спомняте как са ви учили да чертаете. Първо се учи, че всяка картинка се състои от обекти. Всеки обект съдържа определен брой линии. Линията се създава между две точки или координати. Това е основата на чертането и същата теория се използва при създаването на изображението. Координатите са комбинация от две стойности x и y. Стойността x задава хоризонталната позиция, а стойността y задава вертикалната позиция. При чертане в PHP, тези координати започват от горния ляв ъгъл на платното.

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

Използване на основните функции за създаване на изображение

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


Създаване на платно на изображение

Както споменах по-рано първата стъпка е да създадете празно платно, в което да се създаде изображението. Можете да създадете платно, като използвате функцията ImageCreate(). Тази функция приема два параметъра височина и ширина на изображението. Функцията връща стойност, известна под името идентификатор на изображение, което може да се използва в остатъка от кода, за да се адресира областта в паметта, заделено за изображението. Ето един пример за използването на функцията.

$imgcord = ImageCreate( 250, 500 ) ;

Горния код ще създаде в паметта платно, което ще е широко 250 пиксела и високо 500 пиксела. Идентификатора на изображение, върнат от функцията, се запазва в променлива $imgcord

Можете или да покажете изображението, или да го съхраните във файл. Нека видим как можете да го запишете във файл.


Страници: 1 2 3 4 »

Коментари (3)

nasko84 на 05.05 2007 в 17:28ч.
Не знам точно какво трябва да поправя, но въобще не ги възприема като кирилица.
Явно mysql_query("SET NAMES cp1251",$db); тук не действа :(

Ето какво правя аз:
//изчертавам правоъгълник с окръжности в края
imagefilledpolygon($image,$massiv,4,$farbe);
drawPoint($image,$pix,$x1,$y1,$farbe);

//функцията drawPoint не съм я писал аз
function drawPoint($img, $radius, $origo_x, $origo_y, $pointColor)
{
for ($i=0;$i в променливата $ulica е името на дадена улица взето от базата данни

Хайде, ако има някой, който може да ми каже как да изписвам на кирилица текст чрез тази библиотека да ми каже.
Използвал съм imagettftext тъй като ми трябва да го изпиша под ъгъл, отделен въпрос е, че не мога да си настроя и това под какъв ъгъл и спрямо коя точка да изписвам.

Пишете ми pls, спешно ми е ...
nasko84 на 05.05 2007 в 19:40ч.
хе-хе
реших си проблема
$ulica=iconv('cp1251','UTF-8',$ulica);
и готово
:)
nasko84 на 08.05 2007 в 22:17ч.
Здравейте, пак!
Имам следният въпрос: Искам да изчертая текст, с imagettftext($image,8,0,...
и съответно искам да го изпиша на равни растояния от $x (симетрично), обаче как да разбера колко пиксела ширина е шрифта, щото явно това 8 не е, а за функцията $intvar = ImageFontWidth ( int шрифт ), обаче откъде да знам шрифта кой номер е, аз използвам Verdana.ttf, или Arial.ttf
pls ако някой се сети, да пише :Р

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com