Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ PHPΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 48

Автор white cat

imageColorClosest


ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ.

Бинтаксис:

int imageColorClosest(int im, int red, int green, int blue)

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΈΡΠΊΠ°Ρ‚ΡŒ свободноС мСсто Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ², эта функция просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ†Π²Π΅Ρ‚Π°, ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π² рисункС ΠΈ находящСгося Π±Π»ΠΈΠΆΠ΅ всСго ΠΊ Π·Π°Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ Π½Π΅ добавляСтся. Если ΠΏΠ°Π»ΠΈΡ‚Ρ€Π° Π½Π΅ Π²Π΅Π»ΠΈΠΊΠ°, Ρ‚ΠΎ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π΅ совсСм Ρ‚ΠΎΡ‚ Ρ†Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅. НапримСр, Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ² "красный-Π·Π΅Π»Π΅Π½Ρ‹ΠΉ-синий" Π½Π° запрос ΠΆΠ΅Π»Ρ‚ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚, скорСС всСго, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ - ΠΎΠ½ Π±Π»ΠΈΠΆΠ΅ всСго с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния GD соотвСтствуСт ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ "Π·Π΅Π»Π΅Π½Ρ‹ΠΉ".


imageColorTransparent


ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° прозрачности.

Бинтаксис:

int imageColorTransparent(int im [,int color])

Π­Ρ‚Π° функция ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ GD, Ρ‡Ρ‚ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ†Π²Π΅Ρ‚ color (Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ своим ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ imageColorAllocate()) Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ im (im - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ изобраТСния, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ imageCreate()) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ установлСнного Π΄ΠΎ этого ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, Π»ΠΈΠ±ΠΎ false, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Π½Π΅ Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π°Π½Π΅Π΅.

Надо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, JPEG Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ.


imageColorsForIndex


ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ RGB-ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… элСмСнта ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.

Бинтаксис:

array imageColorsForIndex(int im, int index)

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ассоциативный массив с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ red, green, blue (ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ значСния, Ρ€Π°Π²Π½Ρ‹Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ RGB Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Ρ†Π²Π΅Ρ‚Π° index. Но ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ особого внимания Π½Π° ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ список:

<?php

. . .

$color=imageColorAt($im,0,0);

list($r,$g,$b)=array_values(imageColorsForIndex($im,$color));

echo "R=$r, g=$g, b=$b";

. . .

?>


imageColorAt


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс Ρ†Π²Π΅Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠΈ.

Бинтаксис:

int imageColorAt(int im, int x, int y)

Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ, располоТСнной Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… (x, y).Если PHP скомпилирован с GD library 2.0 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° - truecolor, Ρ‚ΠΎ эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ†Π²Π΅Ρ‚Π°, Π° Π½Π΅ Π΅Π³ΠΎ RGB-прСдставлСниС.

<?php

$im = imageCreateFromPng("file.png");

$rgb = ImageColorAt($im, 100, 100);

$r = ($rgb >> 16) & 0xFF;

$g = ($rgb >> 8) & 0xFF;

$b = $rgb & 0xFF;

?>


imageColorsTotal


ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ количСства Ρ†Π²Π΅Ρ‚ΠΎΠ² Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅.

Бинтаксис:

int imageColorsTotal(int im)

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число Ρ†Π²Π΅Ρ‚ΠΎΠ² Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ изобраТСния.


imageColorExact


ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ индСкса Ρ†Π²Π΅Ρ‚Π° ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.

Бинтаксис:

int imageColorExact(int im, int red, int green, int blue)

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° (red, green, blue) Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ изобраТСния im.

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ -1, Ссли ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π½Π΅Ρ‚ Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ изобраТСния.


imageColorResolve


НахоТдСниС ΠΈΠ»ΠΈ созданиС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°.

Бинтаксис:

int imageColorResolve(int im, int red, int green, int blue)

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° (red, green, blue) Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ изобраТСния im.

Π’ случаС, Ссли Ρ‚Π°ΠΊΠΎΠΉ Ρ†Π²Π΅Ρ‚ Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ отсутствуСт, Ρ‚ΠΎ ΠΎΠ½ создаСтся.


imageGammaCorrect


ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³Π°ΠΌΠΌΠ°-ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ рисунка.

Бинтаксис:

int imageGammaCorrect(int im, double inputgamma, double outputgamma)

Π­Ρ‚Π° функция ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ исправлСния Π³Π°ΠΌΠΌΡ‹ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ дСскриптором im.ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ inputgamma Π·Π°Π΄Π°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ Π³Π°ΠΌΠΌΡƒ, Π° outputgamma - Π³Π°ΠΌΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Π°.

ГрафичСскиС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹


imageSetPixel


РисуСт пиксСль.

Бинтаксис:

int imageSetPixel(int im, int x, int y, int color)

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ΄ΠΈΠ½ пиксСль Ρ†Π²Π΅Ρ‚Π° color Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ im, располоТСнный Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x, y).


imageLine


РисуСт ΡΠΏΠ»ΠΎΡˆΠ½ΡƒΡŽ Ρ‚ΠΎΠ½ΠΊΡƒΡŽ линию.

Бинтаксис:

int imageLine(int im, int x1, int y1, int x2, int y2, int color)

Π­Ρ‚Π° функция рисуСт ΡΠΏΠ»ΠΎΡˆΠ½ΡƒΡŽ Ρ‚ΠΎΠ½ΠΊΡƒΡŽ линию Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ im, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΠΈ (x1, y1) ΠΈ (x2, y2), Ρ†Π²Π΅Ρ‚ΠΎΠΌ color. Линия получаСтся слабо связанной.

<?php


function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)

{

/* this way it works well only for orthogonal lines

imagesetthickness($image, $thick);

return imageline($image, $x1, $y1, $x2, $y2, $color);

*/

if ($thick == 1) {

return imageline($image, $x1, $y1, $x2, $y2, $color);

}

$t = $thick / 2 - 0.5;

if ($x1 == $x2 || $y1 == $y2) {

return imagefilledrectangle($image,

round(min($x1, $x2) - $t),

round(min($y1, $y2) - $t),

round(max($x1, $x2) + $t),

round(max($y1, $y2) + $t), $color);

}

$k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q

$a = $t / sqrt(1 + pow($k, 2));

$points = array(

round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),

round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),

round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),

round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),

);

imagefilledpolygon($image, $points, 4, $color);

return imagepolygon($image, $points, 4, $color);

};

?>


imageDashedLine


РисуСт ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΡƒΡŽ линию.

Бинтаксис:

int imageDashedLine(int im, int x1, int y1, int x2, int y2, int color)

Π­Ρ‚Π° функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ imageLine(), Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рисуСт Π½Π΅ ΡΠΏΠ»ΠΎΡˆΠ½ΡƒΡŽ, Π° ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΡƒΡŽ линию. К соТалСнию, Π½ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½ΠΈ шаг ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ² Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ нСльзя, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° Π½ΡƒΠΆΠ½Π° пунктирная линия ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΊΡ‚ΡƒΡ€Ρ‹, придСтся Π·Π°Π½ΡΡ‚ΡŒΡΡ матСматичСскими расчСтами ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ imageLine().


imageRectangle


РисуСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ.

Бинтаксис:

int imageRectangle(int im, int x1, int y1, int x2, int y2, int color)

Π­Ρ‚Π° функция рисуСт Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ im ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½ΠΎΠΉ 1 пиксСль Ρ†Π²Π΅Ρ‚ΠΎΠΌ color.

Π›Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» задаСтся (x1, y1), Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ - (x2, y2).


imageFilledRectangle


Зарисовка ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ области.

Бинтаксис:

int imageFilledRectangle(int im, int x1, int y1, int x2, int y2, int color)

Π­Ρ‚Π° функция рисуСт Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ im, Ρ†Π²Π΅Ρ‚ΠΎΠΌ color (ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ imageColorAllocate()). ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (x1, y1) ΠΈ (x2, y2) Π·Π°Π΄Π°ΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡƒΠ³Π»ΠΎΠ², соотвСтствСнно (отсчСт, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, начинаСтся с Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° ΠΈ ΠΈΠ΄Π΅Ρ‚ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ·).

Π­Ρ‚Π° функция часто примСняСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π·Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданный рисунок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ:

<?php

$im=imageCreate(100,100);

$color=imageColorAllocate($i,0,0,0);

imageColorTransparent($im,$color);

imageFilledRectangle($im,0,0,imageSX($im)-1,imageSY($im)-1,$color);

// дальшС Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ Ρ„ΠΎΠ½ΠΎΠΌ

?>


imageArc


РисованиС части эллипса.

Бинтаксис:

int imageArc(int im, int cx, int cy, int w, int h, int s, int e, int color)

Π­Ρ‚Π° функция рисуСт Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ im Π΄ΡƒΠ³Ρƒ сСктора эллипса ΠΎΡ‚ ΡƒΠ³Π»Π° s Π΄ΠΎ e (ΡƒΠ³Π»Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² градусах ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки, отсчитываСмых ΠΎΡ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ). Эллипс рисуСтся Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (w, h), Π³Π΄Π΅ w ΠΈ h Π·Π°Π΄Π°ΡŽΡ‚ Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту. cx ΠΈ cy - ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° эллипса. Π‘Π°ΠΌΠ° Ρ„ΠΈΠ³ΡƒΡ€Π° Π½Π΅ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ, обводится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€, для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π²Π΅Ρ‚ color.

<?php

// создаСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 200x200

$img = imagecreate(200, 200);

// Π·Π°Π΄Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ окруТности

$white = imagecolorallocate($img, 255, 255, 255);

// рисуСм ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ

imagearc($img, 100, 100, 150, 150, 0, 360, $white);

// Π²Ρ‹Π²ΠΎΠ΄ рисунка Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€

header("Content-type: image/png");

imagepng($img);

// Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ рисунка

imagedestroy($img);

?>


imageFill


Π—Π°Π»ΠΈΠ²ΠΊΠ° Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ области.

Бинтаксис:

int imageFill(int im, int x, int y, int color)

Π­Ρ‚Π° функция выполняСт ΡΠΏΠ»ΠΎΡˆΠ½ΡƒΡŽ Π·Π°Π»ΠΈΠ²ΠΊΡƒ ΠΎΠ΄Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠΉ области, содСрТащСй Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y) Ρ†Π²Π΅Ρ‚ΠΎΠΌ color. НуТно Π·Π°ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ соврСмСнныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ заполнСния Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ довольно эффСктивно, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ стоит особо Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ скорости Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ "ΠΎΠ΄Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹ΠΉ сильно связанный ΠΏΡƒΡ‚ΡŒ" ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠΈ x, y.

Π”Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ связанными сильно, Ссли Ρƒ Π½ΠΈΡ… совпадаСт, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°, Π° ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ Π½Π° 1 Π² Π»ΡŽΠ±ΡƒΡŽ сторону.