PHP Conference Nagoya 2025

imagefilltoborder

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilltoborderBelli bir bölgeyi belli bir renge boyar

Açıklama

imagefilltoborder(
    GdImage $görüntü,
    int $x,
    int $y,
    int $kenar_rengi,
    int $dolgu
): bool

imagefilltoborder() işlevi sınırları kenar_rengi ile tanımlanmış bir bölgeyi dolgu renginde boyar. Doldurma işleminin başlangıç noktası x ve y ile belirtilir. Resmin sol üst köşesinin koordinatları 0,0'dır.

Bağımsız Değişkenler

görüntü

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

x

Başlangıç noktasının X konumu.

y

Başlangıç noktasının Y konumu.

kenar_rengi

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

dolgu

Dolgu rengi. 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ü 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 - Bir elipsi belli bir renge boyamak

<?php
// Tuvalimizi oluşturup artalan rengini beyaz yapalım
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// Siyah kalemle bir elips çizelim
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// Kenar ve dolgu renklerini belirleyelim
$kenar = imagecolorallocate($im, 0, 0, 0);
$dolgu = imagecolorallocate($im, 255, 0, 0);

// Kenar rengine göre belirlenen kapalı alanı boyayalım
imagefilltoborder($im, 50, 50, $kenar, $dolgu);

// Görüntüyü çıktılayıp belleği serbest bırakalım
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

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

Örnek çıktısı: Bir elipsi belli bir renge boyamak

Notlar

Algoritma, hangi piksellerin önceden ayarlandığını açıkça hatırlamaz, bunun yerine pikselin renginden bunu çıkarır, bu nedenle yeni ayarlanmış pikseller ile zaten orada olan pikseller arasında ayrım yapamaz. Bu, görüntüde halihazırda kullanılan herhangi bir dolgu renginin seçilmesinin istenmeyen sonuçlara yol açabileceği anlamına gelir.

add a note

User Contributed Notes 2 notes

up
2
edrad at wanadoo dot fr
21 years ago
Very useful to build a pseudo-sphere with a color gradient...

<?php
$width
= 300;
$center = $width / 2;
$colordivs = 255 / $center;
$im = @imagecreate($width, $width);
$back_color = imagecolorallocate($im, 20, 30, 40);
imagefill($im, 0, 0, $back_color);
for (
$i = 0; $i <= $center; $i++)
{
$diametre = $width - 2 * $i;
$el_color = imagecolorallocate($im, $i * $colordivs, 0, 0);
imagearc($im, $center, $center, $diametre, $diametre, 0, 360, $el_color);
imagefilltoborder($im, $center, $center, $el_color, $el_color);
}
imagepng($im);
?>

Dark Skull Software
http://www.darkskull.net
up
0
admin at worldlanguages dot tk
20 years ago
In the example below, for those with newer GD versions, it makes more sense to replace:

imagearc($im, $center, $center, $diametre, $diametre, 0, 360, $el_color);

with:

imageellipse($im, $center, $center, $diametre, $diametre, $el_color);

This is obviously simpler.
To Top