imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagecolorallocatealphaBir görüntü için alfa kanallı bir renk ayırır

Açıklama

imagecolorallocatealpha(
    GdImage$görüntü,
    int$kırmızı,
    int$yeşil,
    int$mavi,
    int$alfa
): int|false

imagecolorallocatealpha() işlevi alfa bağımsız değişkeni ile ek olarak şeffaflık belirtilebilmesi dışında imagecolorallocate() işlevine eşdeğerdir.

Bağımsız Değişkenler

görüntü

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

kırmızı

Kırmızı bileşenin değeri.

yeşil

Yeşil bileşenin değeri.

mavi

Mavi bileşenin değeri.

alfa

0-127 arasında belirtilebilir. 0 tamamen mat, 127 ise tamamen şeffaf demektir.

kırmızı, yeşil ve mavi değerleri onluk tabanda 0-255 aralığında, onaltılık tabanda 0x00-0xFF aralığında belirtilebilir.

Dönen Değerler

Renk ayrılamazsa false, aksi takdirde rengin indisini döndürür.

Uyarı

Bu işlev mantıksal false değeriyle dönebileceği gibi false olarak değerlendirilebilecek mantıksal olmayan bir değerle de dönebilir. Bu konuda daha fazla bilgi Mantıksal Değerler bölümünde bulunabilir. Bu işlevden dönen değeri sınamak için === işleci kullanılabilir.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0gö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 - imagecolorallocatealpha() örneği

<?php
$size
= 300;
$image=imagecreatetruecolor($size, $size);

// Siyah kenar çizgili beyaz artalan
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;

// Renkleri alfa değerleriyle ayıralım
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);

// Üst üste üç elips çizelim
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// Başlığı çıktılamayı unutmuyoruz!
header('Content-Type: image/png');

// ve sonucu çıktılıyoruz
imagepng($image);
imagedestroy($image);
?>

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

Örnek çıktısı: imagecolorallocatealpha() kullanım örneği

Örnek 2 - imagecolorallocatealpha() ile kullanmak için alfa değerlerini dönüştürmek

Genelde 0'lık alfa değerleri tamamen şeffaf pikselleri belirtir ve alfa kanalının 8 biti vardır. Bu tür alfa değerlerini imagecolorallocatealpha() ile uyumlu olacak şekilde dönüştürmek için basit aritmetik yeterlidir:

<?php
$alpha8
= 0; // tamamen şeffaf
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // tamamen mat
var_dump(127 - ($alpha8 >> 1));
?>

Yukarıdaki örneğin çıktısı:

int(127) int(0)

Ayrıca Bakınız

To Top