PHP 8.1.0 Beta 1 available for testing

imageopenpolygon

(PHP 7 >= 7.2.0, PHP 8)

imageopenpolygonAçık çokgen çizer

Açıklama

imageopenpolygon(
    GdImage $görüntü,
    array $noktalar,
    int $nokta_sayısı,
    int $renk
): bool

Diğer sözdizimi (PHP 8.0.0 ve sonrası)

imageopenpolygon(GdImage $görüntü, array $noktalar, int $renk): bool

imageopenpolygon() belirtilen görüntünün üzerine açık bir çokgen çizer. Contrary to imagepolygon() işlevinin aksine, ilk ve son nokta arasına çizgi çizilmez.

Değiştirgeler

görüntü

imagecreatetruecolor() gibi bir görüntü oluşturma işlevinden dönen bir GdImage nesnesi.

noktalar

Çokgenin köşelerini içeren bir dizi, örn:

points[0] = x0
points[1] = y0
points[2] = x1
points[3] = y1

nokta_sayısı

Toplam nokta (köşe) sayısı, en az 3 olmalıdır.

İkinci sözdizimindeki gibi bu değiştirgenin yokluğunda noktalar dizisi çift sayıda eleman içermelidir. Bu durumda, nokta_sayısının count($noktalar)/2 olduğu varsayılır.
renk

imagecolorallocate() işlevi le oluşturulmuş bir renk tanıtıcı.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 görüntü değiştirgesinde artık bir GdImage nesnesi aktarmak gerekiyor; evvelce resource türünde bir değer gerekirdi.

Örnekler

Örnek 1 - imageopenpolygon() örneği

<?php
// Boş bir görüntü oluştur
$image imagecreatetruecolor(400300);

// Çokgen için bir renk ayır
$renk imagecolorallocate($image255255255);

// Çokgeni çiz
imageopenpolygon($image, array(
        
0,   0,
        
100200,
        
300200
    
),
    
3,
    
$renk);

// Görüntüyü tarayıcıya aktar
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Örnek çıktısı: imageopenpolygon()

Ayrıca Bakınız

add a note add a note

User Contributed Notes 1 note

up
-1
marco at oostende dot nl
2 years ago
In case you want to use an open polygon but are stuck with a PHP version prior to 7.2, a solution may be to 'backplot' your array to its original start. Say you have an array of pixels (below seperated by commas)

<?php
$arr
= array();
for (
$i = 0; $i < count($pixels); $i++) {
   
$pixel = explode(',', $pixels[$i]);
    if ((
$pixel[0] > 0) && ($pixel[1] > 0)) {
       
$arr[] = $pixel[0];
       
$arr[] = $pixel[1];
    }
}
imagepolygon($im, $arr, (count($arr) / 2), $otcolor);
?>

you can replace this by something like

<?php
$arr
= array();
for (
$i = 0; $i < count($pixels); $i++) {
   
$pixel = explode(',', $pixels[$i]);
   
$arr[] = $pixel[0];
   
$arr[] = $pixel[1];
}
// imageopenpolygon($im, $arr, (count($arr) / 2), $otcolor) is not possible, so...
for ($i = (count($pixels)-1); $i >= 0; $i--) {
   
$pixel = explode(',', $pixels[$i]);
   
$arr[] = $pixel[0];
   
$arr[] = $pixel[1];
}
imagepolygon($im, $arr, (count($arr) / 2), $otcolor);
?>
To Top