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

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

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



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

Можете да създавате изображения от различни типове цветове в 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 title="óðîöè îò uroci.com" src=“pic.png“ border=“0“>
</body>
</html>

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


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

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

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

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


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

Коментари (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