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

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

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



Функцията 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 title="óðîöè îò uroci.com" 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 title="óðîöè îò uroci.com" 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 синьо );


източник на урока: http://www4u.search.bg



Страници: «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