In example #1 above, the variable $bg is set but not used. Set the background to anything but black ,and it won't take effect. The example needs
imagefill($image, 0, 0, $bg);
Some other image function examples have the same issue.
imageellipse
(PHP 4 >= 4.0.6, PHP 5)
imageellipse — Bir elips çizer
Açıklama
bool imageellipse
( resource
$resim
, int $mx
, int $my
, int $genişlik
, int $yükseklik
, int $renk
)Belirtilen koordinatlar merkez olmak üzere bir elips çizer.
Değiştirgeler
-
resim -
imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.
-
mx -
Merkezin X konumu.
-
my -
Merkezin Y konumu.
-
genişlik -
Elipsin genişliği.
-
yükseklik -
Elipsin yüksekliği.
-
renk -
Elipsin rengi. imagecolorallocate() tarafından döndürülen bir renk tanıtıcısı.
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnekler
Örnek 1 - imageellipse() örneği
<?php
// Boş bir resim oluşturalım.
$image = imagecreatetruecolor(400, 300);
// Artalan rengini seçelim.
$bg = imagecolorallocate($image, 0, 0, 0);
// Artalanı seçtiğimiz renge boyayalım.
imagefill($image, 0, 0, $bg);
// Elips için bir renk seçelim.
$col_ellipse = imagecolorallocate($image, 255, 255, 255);
// Elipsi çizelim.
imageellipse($image, 200, 150, 300, 200, $col_ellipse);
// Resmi çıktılayalım.
header("Content-type: image/png");
imagepng($image);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Notlar
Bilginize:
Bu işlev GD'nin 2.0.2 veya sonraki bir sürümünü gerektirir.
themountainlion at gmail dot com ¶
4 years ago
simon_nuttall at hotmail dot com ¶
6 years ago
This is an optimised and bug fixed version of nojer at yahoo dot com's rotatedellipse function. I've changed it so that the arguments are compatible with imageellipse. See notes on imagearc for original version.
<?php
function rotatedellipse($im, $cx, $cy, $width, $height, $rotateangle, $colour, $filled=false) {
// modified here from nojer's version
// Rotates from the three o-clock position clockwise with increasing angle.
// Arguments are compatible with imageellipse.
$width=$width/2;
$height=$height/2;
// This affects how coarse the ellipse is drawn.
$step=3;
$cosangle=cos(deg2rad($rotateangle));
$sinangle=sin(deg2rad($rotateangle));
// $px and $py are initialised to values corresponding to $angle=0.
$px=$width * $cosangle;
$py=$width * $sinangle;
for ($angle=$step; $angle<=(180+$step); $angle+=$step) {
$ox = $width * cos(deg2rad($angle));
$oy = $height * sin(deg2rad($angle));
$x = ($ox * $cosangle) - ($oy * $sinangle);
$y = ($ox * $sinangle) + ($oy * $cosangle);
if ($filled) {
triangle($im, $cx, $cy, $cx+$px, $cy+$py, $cx+$x, $cy+$y, $colour);
triangle($im, $cx, $cy, $cx-$px, $cy-$py, $cx-$x, $cy-$y, $colour);
} else {
imageline($im, $cx+$px, $cy+$py, $cx+$x, $cy+$y, $colour);
imageline($im, $cx-$px, $cy-$py, $cx-$x, $cy-$y, $colour);
}
$px=$x;
$py=$y;
}
}
function triangle($im, $x1,$y1, $x2,$y2, $x3,$y3, $colour) {
$coords = array($x1,$y1, $x2,$y2, $x3,$y3);
imagefilledpolygon($im, $coords, 3, $colour);
}
?>
julian ¶
8 years ago
if you want to display an ellipse in the upper left corner of an image, you can easily calculate the corresponding cx and cy values. this example will draw an ellipse having the same width and height as the image.
<?php
$ellipse_width = 100;
$ellipse_height = 200;
$ellipse_cx = ($ellipse_width / 2);
$ellipse_cy = ($ellipse_height / 2);
$img_x = $ellipse_width;
$img_y = $ellipse_height;
$img = imagecreate($img_x, $img_y);
$bg = imagecolorallocate($img, 255,255,255);
$ellipse_color = imagecolorallocate($img, 0, 0, 0);
imageellipse($img, $ellipse_cx, $ellipse_cy, $ellipse_width, $ellipse_height, $ellipse_color);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
agentyoungsoo at hanmail dot net ¶
10 years ago
When you wana use "ImageEllipse" function
in under GD 2.0.2 version, you can use "ImageArc" like bellow
----------------------------------------------------
$file_name = "test.png";
$screen_x = 300;
$screen_y = 200;
$x1 = $screen_x / 2;
$y1 = $screen_y / 2;
$radius = 30;
$image = ImageCreate($screen_x, $screen_y);
$black = ImageColorAllocate($image, 0,0,0);
ImageArc($image, $x1, $y1, $radius , $radius , 0, 360, $black);
ImagePng($image, $file_name);
ImageDestroy($image);
----------------------------------------------------
