PHP Conference Nagoya 2025

imageopenpolygon

(PHP 7 >= 7.2.0, PHP 8)

imageopenpolygonAçık çokgen çizer

Açıklama

PHP 8.0.0 ve üstü için sözdizimi (isimli bağımsız değişkenler desteklenmez)

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

Diğer sözdizimi (PHP 8.1.0 ve sonrası için önerilmiyor)

imageopenpolygon(
    GdImage $görüntü,
    array $noktalar,
    int $nokta_sayısı,
    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.

Bağımsız Değişkenler

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 bağımsız değişkenin 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.1.0 nokta_sayısı bağımsız değişkeninin kullanımı artık önerilmiyor.
8.0.0 görüntü bağımsız değişkeninde artık bir GdImage nesnesi aktarmak gerekiyor; evvelce resource türünde geçerli bir gd değeri gerekirdi.

Örnekler

Örnek 1 - imageopenpolygon() örneği

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

// Çokgen için bir renk ayır
$renk = imagecolorallocate($image, 255, 255, 255);

// Çokgeni çiz
imageopenpolygon($image, array(
0, 0,
100, 200,
300, 200
),
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

User Contributed Notes 1 note

up
0
marco at oostende dot nl
5 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