Обучение в PHP - част 13 (Създаване на изображения)
Графичните форми са неделима част от всеки 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

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

Записване на изображение във файл

Единствената информация, която ви е необходима за записване на изображението във файл, е идентификаторът на изображението. Това е така, защото идентификатора съдържа местоположението на платно в паметта. Можете да използвате една от функциите ImageJPEG(), ImageGIF или ImagePNG(), в зависимост от това във какъв формат искате да съхраните изображението. Можете да зададете още два параметъра на тези функции. Първият от рях е името на файла, а вторият е нивото на качеството на изображението. Тази стойност може да бъде от -1 до 100. Стойността 0 ще доведе до запазване на изображението с възможно най-ниска стойност.

От друга страна файла, създаден със стойност 100, ще има страхотно качество, но няма да е подходящо за използване в Web поради големите си размери. Поради тази причина определянето на качеството на едно изображение е балансиране между размера на файла и качеството на изображението.

Функцията ImageGIF()

Тази функция, може да покаже изображение във браузъра, или да го запише в gif файл. Функцията има следния синтаксис:

$intvar = ImageGIF( int изображение [, string име на файл ] )

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

Форматът по подразбиране на изображението е GIF87a, освен, ако сте направили изображението прозрачно чрез функцията ImageColorTransparent(), в който случай, изображението ще се запише във формата GIF89a.

Функцията ImagePNG()

Тази функция, може да покаже изображение във браузъра, или да го запише в png файл. Функцията има следния синтаксис:

$intvar = ImagePNG( int изображение [, string име на файл ] )

Подобно на функцията ImageGIF(), тази функция създава PNG изображение от идентификатора на изображение, предадено като първи параметър. Функцията записва изображението във файл с име, предадено, чрез незадължителния параметър име на файл. Ако този параметър не е зададен, PNG изображението, се изобразява направо в браузъра.

Функцията ImageJPG()

Тази функция, може да покаже изображение във браузъра, или да го запише в jpgфайл. Функцията има следния синтаксис:

$intvar = ImageJPG( int изображение [, string име на файл ] )

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

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

Унищожаване на изображение

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

$intvar = ImageDestroy( int изображение )

Параметърът изображение е идентификатор на изображение, върнат от функцията ImageCreate().

Функцията ImageCopy()

Тази функция се изоплзва за копиране на част от изображението. Функцията има следния синтаксис:

$intvar = ImageCopy ( resourse изображение цел, resource изображение източник, int цел x, int цел y, int източник х, int източник у, int източник ширина, int източник височина )

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

Функцията GetImageSize()

Можете да използвате тази функция за да определите размера на изображението във файл. Функцията, също така връща типа на файла, който може да е JPEG, GIF, SWF или PNG. Можете също така да извлечете ширината и височината на изображението, който могат да бъдат използвани по-късно в HTML етикета IMG. Синтаксисът на функцията е:

$arrvariable = getimagesize ( string име на файл [, array информация ] )

Функцията връща информацията под формата на масив с четири елемента. Елементите съдържат6 информация в следната последователност: ширина, височина, тип на изображението и низ. Ширината и височината се изчисляват в пиксели. Типът на изображението е 1 за GIF, 2 – за JPG, 3 – за PNG и 4 – за SWF. Низът съдържа ширина и височина, форматирани подходящо за използване на етикета IMG.

SWF е формата, използван за Flash файлове.

Работа с пиксели

Пикселът е единица за измерване на разделителната способност на изображението. Той също така е най-малкото парче от изображението, което може да бъде обработено. Можете да променяте цвета на конкретен пиксел.

Функцията imageSetPixel()

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

$intvar = ImageSetPixel ( int иображение, int X, Int Y, int цвят)

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


<html>
<body>
<?php
$img = ImageCrate ( 200, 200 );
$bgcolor = ImageColorAllocate ( $img, 200, 200, 200 ) ;
$pixelcolor = ImagecolorAllocate ( $img, 255, 0, 0);
ImagePng ( $img, „ pic.png „ );
ImageDestroy ( $img ) ;
?>
<img src=“pic.png“ border=“0“ >
</body>
</html>


Функцията ImageColorAt()

Тази функция се използва за получаване на индекса на цвета на даден пиксел. Синтаксисът на функцията е следния:

$intvar = ImageColorAt ( int иображение, int X, int Y )

Трябва да използвате функцията ImageColorAt(), ако искате да разберете индекса на цвета за пиксела с координати X и Y в изображението с идентификатор изображение.

Преди да започнете да създавате изображение, трябва първо да зададете цвета на изображението.

Задаване на цветове на изображения

Можете да създавате изображения от различни типове цветове в PHP. Но тези цветове не съществуват по подразбиране в PHP. Това, което имам предвид, е, че тези цветове не са предварително дефинирани, вместо това трябва да създадете цвета, преди да можете да го използвате. За целта трябва да използвате функцията ImageColorAllocate(). В следващите редове, ще видите как може да създадете основните цветове – червен, зелен и син. Тези цветове са основни в цветовия модел RGB и всички други цветове са техни комбинации.

// Червено

$red = ImageColorAllocate($imgcord, 255, 0, 0);

// Зелено

$green= ImageColorAllocate($imgcord, 0, 255, 0);

// Синьо

$blue = ImageColorAllocate($imgcord, 0, 0, 255);

// Бяло

$blue = ImageColorAllocate($imgcord, 255, 255, 255);

// Черно

$blue = ImageColorAllocate($imgcord, 0, 0, 0);

RGB моделът е стандарт за създаване на цветове. Цветът се състои от комбинация на трите основни цвята- червено, зелено и синьо. Всеки от тези цветове съдържа стойности в интервала от 0 до 255.

Първият параметър на функцията е идентификатор на изображението. Следващите три параметъра са цветовата комбинация. Ако всички три параметъра имат стойности 255, създавате бял цвят, а ако всички стойности са 0 – черен. Както можете да видите, всеки създаден цвят се съхранява в отделна променлива. Можете да използвате тези променливи, за да създадете изображение с конкретен цвят.

Функцията ImageFill()

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

$intvar = ImageFill( int изображение, int X, int Y, int цвят)

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

<?php
$imgcord = imagecreate ( 255, 255 );
$blue = ImageColorAllocate($imgcord, 255, 255, 255);
$red = ImageColorAllocate($imgcord, 255, 0, 0);
ImageRectangle ( $imgcord, 175, 165, 200, 255, $blue );
ImageFill( $imgcord, 0, 0, $red );
Imagestring ( $imgcord, 3, 170, 220, „Добре дошли в
www4u.search.bg „, $blue);
$imagePng ( $imgcord );
ImageDestroy ($imgcord);
?>


Функцията ImageColorDeAllocate()

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

$intvar = ImageColorDeAllocate( int изображение, int индекс );

Тази функция се използва, ако искате да унищожите създаден преди това цвят.

Функцията ImageSet()

Можете да използвате тази функция, за да зададете цвета на определен индекс в палитрата. Синтаксисът на тази функция е следния:

$boolvar = ImageSet ( int изображение, int индекс, int червено, int синьо );

Функцията ImageColorsForlndex()

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

$arrvar = ImageColorsForlndex( int изображение, int индекс);

Функцията върща като стойност асоциативен масив с RGB комбинацията на цвета.

Функцията ImageFillToBorder()

Функцията ImageFillToBorder() се използва за задаване на цвета на рамката. Синтаксисът на тази функция е следния:

$intvar = ImageFillToBorder(int изображение, int X, int Y, int рамка, int цвят );

Вече видяхте, как можете да създавате платно и да създавате цветове за него. Освен графика, платното може да включва и текст. В следващата секция ще ви покажа как става.

Рисуване на текст

PHP не предоставя само функции за създаване на изображение – можете също така да покажете текст в изображението. Можете да използвате функцията ImageString(), за да покажете текст на зададено място в изображението. Функцията има шест параметъра. Първият параметър е идентификаторът на изображението, след който са номерът на шрифта, координатите на текста, самият текст и накрая цвета, с който да се изчертае текста. Шрифтът, който се използва за изчертаване на текста, може да е един от пете предврително дефинирани шрифта в PHP. Нека да създадем скрипт, който използва функцията ImageString().

<html>
<body>
<?php
$img = ImageCreate ( 300, 300 );
$bgcolor = ImageColorAllocate ( $img, 200, 200, 200 );
$red = ImageColorAllocate ( $img, 255, 0, 0 );
$green = ImageColorAllocate ( $img, 0, 255, 0 );
$blue = ImageColorAllocate ( $img, 0, 0, 255 );
$grey = ImageColorAllocate ( $img, 50, 50, 50 );
$black = ImageColorAllocate ( $img, 0, 0, 0 );


ImageString = ( $img, 0, 20, 20, „ Line 1“, $red );
ImageString = ( $img, 0, 20, 40, „ Line 2“, $green );
ImageString = ( $img, 0, 20, 60, „ Line 3“, $blue );
ImageString = ( $img, 0, 20, 80, „ Line 4“, $grey );
ImageString = ( $img, 0, 20, 100, „ Line 5“, $black );
ImageString = ( $img, 0, 20, 120, „ Line 6“, $red );


ImageStringUp = ( $img, 0, 50, 200, „ Line 1“, $red );
ImageStringUp = ( $img, 1, 100, 200, „ Line 2“, $green
);
ImageStringUp = ( $img, 2, 150, 200, „ Line 3“, $blue
);
ImageStringUp = ( $img, 3, 200, 200, „ Line 4“, $grey
);
ImageStringUp = ( $img, 4, 250, 200, „ Line 5“, $black
);
ImageStringUp = ( $img, 5, 300, 200, „ Line 6“, $red
);


ImageSetPixel ( $img, 50, 50, $pixelcolor );
ImagePNG ( $img, „pic.png“ );
ImageDestroy ( $img );
?>
<img src=“pic.png“ border=“0“>
</body>
</html>


Нека да видим, как можете да манипулирате символите чрез код.

Функцията ImageChar()

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

Синтаксисът на функцията е следният:

$intvar = ImageChar ( int изображение, int шрифт, int X, int Y, string символ, int цвят );

Функцията ImageLoadFont()

Тази функция се използва за зареждане на нов шрифт. Функцията има един параметър, който е името на файла, в който се съхранява шрифтът. Синтаксисът на функцията е следният:

$intvar = ImageLoadFont ( string име на файл );

Ако искате да заредите дефиниран от вас битмап шрифт, може да използвате функцията ImageLoadFont(). Функцията връща уникален идентификатор, който може да се използва от програмата като номер на шрифт. Този идентификатор, трябва да е по-голям от 5, тъй като номерата от 1 до 5 са резервирани за стандартните шрифтове.

Функцията ImageFontHeight()

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

$intvar = ImageFontHeight( int шрифт );

Функцията ImageFontWidth()

Можете да използвате тази функция за да узнаете ширината на шрифта. След това можете да я използвате в програмата си. Ширината се измерва в пиксели. Синтаксисът на функцията е следния.

$intvar = ImageFontWidth ( int шрифт ) ;





Нека да видим един пример за използването на функциите ImageFontHeight() и ImageFontWidth() в програма, която извлича стойностите им и ги показва на екрана.

<html>
<body>
<?php
$img = ImageCerate ( 300, 300 );
$bgcolor = ImageColorAllocate ( $img, 200, 200, 020 );
$red = ImageColorAllocate ( $img, 255, 0, 0);
$green = ImageColorAllocate ( $img, 0, 255, 0);
$blue= ImageColorAllocate ( $img, 0, 0, 255);
$grey= ImageColorAllocate ( $img, 50, 50, 50);
$black = ImageColorAllocate ( $img, 0, 0, 0);
for ( $i = 0; $i < 6; $i ++ )
{
ImageChar ( $img, 20, 20 + ($i * 20 ), „ S “ , $red);
$height[] = ImageFontHeight ( $i );
$width[] = ImageFontWidth ( $i );
}
ImageSetPixel ( $img, 50, 50, $pixelcolor );
ImagePNG ( $img, „pic.png“ );
ImageDestroy ( $img );
for ( $i = 0; $i < 6; $i ++ )
{
echo „Шрифт „.$i.“ височина =
„.$height[$i].“<br>“;
}
?>
<img src=“pic.png“ border=“0“>
</body>
</html>


Функцията ImageCharUp()

Можете да използвате тази функция, ако искате да покажете вертикален текст в платното. Функцията е сходна с функцията ImageChar(). Първият параметър е идентификаторът на изображение, вторият е номерът на шрифта. Следващите два параметъра са координатите, на които да се изрисува символът, следвани от символа и накрая от цвета на символа.

$intvar = ImageCharUp ( int изображение, int шрифт, int X, int Y, string символ, int цвят );

До сега ви показах шест функции за работа с текст. Нека да направим една програма за работа и със шестте

<html>
<body>
<?php
$img = ImageCerate ( 300, 300 );
$bgcolor = ImageColorAllocate ( $img, 200, 200, 020 );
$red = ImageColorAllocate ( $img, 255, 0, 0);
$green = ImageColorAllocate ( $img, 0, 255, 0);
$blue= ImageColorAllocate ( $img, 0, 0, 255);
$grey= ImageColorAllocate ( $img, 50, 50, 50);
$black = ImageColorAllocate ( $img, 0, 0, 0);

ImageChar ( $img, 0, 20, 20, „S“, $red );
ImageChar ( $img, 1, 20, 40, „S“, $green );
ImageChar ( $img, 2, 20, 60, „S“, $rblue );
ImageChar ( $img, 3, 20, 80, „S“, $grey);
ImageChar ( $img, 4, 20, 100, „S“, $black );
ImageChar ( $img, 5, 20, 120, „S“, $red );

ImageCharUp ( $img, 0, 20, 160, „S“, $red );
ImageCharUp ( $img, 1, 40, 160, „S“, $green );
ImageCharUp ( $img, 2, 60, 160, „S“, $rblue );
ImageCharUp ( $img, 3, 80, 160, „S“, $grey);
ImageCharUp( $img, 4, 100, 160, „S“, $black );
ImageCharUp ( $img, 5, 120, 160, „S“, $red );

ImageSetPixel ( $img, 50, 50, $pixelcolor );
ImagePNG ($img „pic.png“);
ImageDestroy ( $img );
?>
<img src=“pic.png“ border=“0“>
</body>
</html>


Рисуване на сложни обекти

Както можете да създавате прости обекти, така можете да създавате и сложни обекти като окръжности и дъги. Вече споменах по-рано, че дъгата е част от окръжност. За да създадете окръжност или дъга, използвайте функцията ImageArc(). Функцията приема осем параметъра. Първият е идентификаторът на изображението, следващите два са координатите на центъра на окръжността. Следващите два параметъра задават височината и ширината на окръжността. Параметрите начало и край се използват при рисуването на дъга, за да се зададат точките, в които започва и свършва дъгата., те представляват градуси. Точките начало и край се обхождат по посока на часовниковата стрелка. Последният параметър е цветът, с който трябва да се изрисува дъгата. Нека сега да изрисуваме окръжност и да я запазим като PNG файл.

<?php
$imgcord = ImageCreate ( 250, 500 );
$red = ImageColorAllocate ( $imgcord, 255, 0, 0 );
$green = ImageColorAllocate ( $imgcord, 0, 255, 0 );
$blue = ImageColorAllocate ( $imgcord, 0, 0, 255 );
ImageLine ( $imgcord, 5, 5, 125, 50, $red );
ImageArc ( $imgcord, 100, 25, 120, 125, 0, 180, $green );
ImagePNG ( $imagecord );
ImageDestroy ( $imgcord );
?>


В горния код първо се създава платно с размери 250х500 пиксела. След това се създават трите цвята – червен, зелен и син – и се присвояват на три променливи. След това се изрисува линия, започваща от координати 5, 5 до координати 125,150. Накрая се рисува полуокръжност, свързваща двата края на линията. Центърът на дъгата е с координати 100, 25. Ширината и височината на дъгата са съответно 120 и 125.

Можете да създавате сложни обекти само ако използвате GD версия 2.0 или по-голяма.

Функцията ImageFilledArc()

Можете да използвате тази функция за да изрисувате сектор от елипса и да го запълните с цвят. Синтаксисът на функцията е :

$intvar = imageFilledArc ( int изображение, int C1, int C2, int ширина, int височина, int начало, int край, int цвят, int стил );

Изображението се центрира в точката C1, C2. Параметърът изображение е идентификаторът на изображението. Параметрите ширина и височина задават ширината и височината на изображението, координатите на началната и крайната точка се задават от параметрите начало и край. Параметърът стил, може да бъде комбинация от следните стойности:


[*]IMG_ARC_PIE

[*]IMG_ARC_CHORD

[*]IMG_ARC_NOFILL

[*]IMG_ARC_EDGED


Стиловете IMG_ARC_PIE и IMG_ARC_CHORD се използват за различни цели. Стилът IMG_ARC_CHORD се използва ако искате да свържете началния и крайния ъгъл с права линия, докато IMG_ARC_PIE рисува сектор. Ако просто искате да изчертаете контур на дъга, без да я запълвате, използвайте стила IMG_ARC_NOFILL. Накрая стила IMG_ARC_EDGED се използва със комбинация със стила IMG_ARC_NOFILL, за да се свържат началната и крайната точка на центъра.

Нека сега да разгледаме скрипт, който ще създава дъги и ще ги записва във файл в PNG формат, а файлът ще се показва в браузъра.

<html>
<body>
<?php
$img = ImageCreate ( 500, 500 );
$bgcolor = ImageColorAllcotes ( $img, 200, 200, 200 );
$red = ImageColorAllocate ( $imgcord, 255, 0, 0 );


for ( $=0; $i<20; $i++ )
{
ImageArc ( $img, 50, 50, 20 + ($i*5), 50, 180, 270, $red );
}


for ( $=0; $i<20; $i++ )
{
ImageFilledArc ( $img, 50, 200, 50, 50, $i*2, $i*2+40, $red );
ImageFilledArc ( $img, 50, 250, 50, 50, 180, 270, $red, IMG_PIE);
ImageFilledArc ( $img, 100, 300, 50, 50, 180, 270, $red, IMG_NOFIL);
ImageFilledArc ( $img, 150, 350, 50, 50, $180, 270 , $red, IMG_CHORD);
ImageFilledArc ( $img, 200, 400, 50, 50, 180, 270, $red, IMG_EDGED);
ImagePNG ( $img, „pic.png“ );
ImageDestroy ( $img );
}
?>
<img src=“pic.png“ borer=“0“ >
</body>
</html>


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

Функцията ImagePloygon()

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

$intvar = ImagePolygon ( int изображение, array точки, int брой точки, int цвят );

Тази функция е сходна с функцията ImageRectangle(). Горния код създава полигон в изображението, като масивът точки съдържа върховете на полигиона. Например, елементът точки [0] ще съдържа стойността х0, точки [1] = у0, точки [2] = x1, точки [3] = y1, и т.н. Общия брой върхове на полигона е зададен с параметъра брой точки.

Функцията ImageFilledPolygon()

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

$intvar = ImageFillPolygon ( int изображение, array точки, int брой точки, int цвят );

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

Функцията ImageCreateFromJPЕG()

Тази функция се използва за създаване на ново изображение от JPG файл. Функцията има следния синтаксиси.

$intvar = ImageCreateFromJPЕG ( string име на файл ) ;

В горния код функцията ImageCreateFromJPЕG() създава JPEG изображение, от изображението, съхранено във файла име на файл.

Функцията ImageCreateFromPNG()

Тази функция се използва за създаване на ново изображение от PNG файл. Функцията има следния синтаксиси.

$intvar = ImageCreateFromPNG ( string име на файл ) ;

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

<html>
<body>
<?php
$pic = ImagesCreate ( 600, 600 );
$col1 = ImageColorAllocate ( $pic, 200, 200, 200 );
$col2 = ImageColorAllocate ( $pic, 0, 0, 255 );
ImageFilledRectangle ( $pic, 1, 1, 100, 100, $col2 );
ImagePNG ( $pic, „pic.png“);
ImageDestroy( $pic );
?>
<img src=“pic.png“ border=“0“ >
</body>
</html>


Други полезни функции
Има още няколко полезни функции, които можете да използвате в PHP за обработване на приложения. Нека да разгледаме всяка от тях в подробности

Функцията ImageInterlace()

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

$intvar = ImageInterlace ( int изображение, [, int преплитане] );

Ако искате да включите или изключите преплитането, трябва да използвате параметъра преплитане. Този параметър не е задължителен. Ако стойността на параметъра е 1, тогава изображението ще бъде преплетено с фона.

Функцията ImageColorClosest()

Тази функция се използва за получаване на индекса на най-близкия цвят до зададения. Синтаксисът на функцията е следния:

$intvar = ImageColorClosest ( int изображение, int червено, int зелено, int соньо);

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

Функцията ImageColorClosestAlpha()

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

Функцията ImageColorExact()

Тази функция се използва за получаване на точния индекс на зададен цвят.

Функцията ImageColorExactAlpha()

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

$intvar = ImageColorExactAlpha ( int изображение, int червено, int зелено, int соньо );

Функцията връща стойност -1, ако цвета не съществува.

Функцията ImageColorResolve()

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

$intvar = ImageColorResolve ( int изображение, int червено, int зелено, int соньо );

Ако искате сигурен резултат за индекса на цвета, трябва да използвате функцията $intvar = ImageColorResovle (). Тази функция ще върне или индекса на точния цвят, или индекса на най-доброто му преложение.

Функцията ImageColorResolveAlpha()

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

$intvar = ImageColorResolveAlpha ( int изображение, int червено, int зелено, int синьо );


/ Трябва да сте регистриран за да напишете коментар /