LoopRun Barcelona 2020

imagecolorallocatealpha

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

imagecolorallocatealphaBir resim için alfa kanallı bir renk ayırır

Açıklama

imagecolorallocatealpha ( resource $resim , int $kırmızı , int $yeşil , int $mavi , int $alfa ) : int

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

Değiştirgeler

resim

imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.

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.

red, green ve blue 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 edinmek için Mantıksal Değerler bölümüne bakabilirsiniz. Bu işlevden dönen değeri sınamak için === işlecini kullanınız.

Sürüm Bilgisi

Sürüm: Açıklama
5.1.3 Renk ayrılamazsa FALSE döner. Evvelce -1 dönerdi.

Örnekler

Örnek 1 - imagecolorallocatealpha() örneği

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

// Siyah kenar çizgili beyaz artalan
$back imagecolorallocate($image255255255);
$border imagecolorallocate($image000);
imagefilledrectangle($image00$size 1$size 1$back);
imagerectangle($image00$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($image255255075);
$red    imagecolorallocatealpha($image2550075);
$blue   imagecolorallocatealpha($image0025575);

// Ü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

Ayrıca Bakınız

add a note add a note

User Contributed Notes 3 notes

up
7
eric (at) junioronline.us
14 years ago
If you only wish to extract the alpha value for a color, you can simply extract it like so:

<?php

    $color
= imagecolorat($im, 50, 50);
   
$alpha = $color >> 24;

?>

It actually shifts off the first 24 bits (where 8x3 are used for each color), and returns the remaining 7 allocated bits (commonly used for alpha)
up
1
fjoggen at gmail dot com
12 years ago
If you need to calculate the integer representation of a color with an alpha channel, without initialising an image and using the imagecolorallocatealpha function. Then this function might be of some help:

<?php
function alphaColor($hexColor,$alpha)
{
        return
bindec(decbin($alpha).decbin(hexdec($hexColor));
}

echo
alphaColor("FFFFFF",127);
?>
up
0
Brett G
4 years ago
When working with transparency, avoid imagecreate() and use imagecreatetruecolor() instead. Transparency effects may not work as expected within a palette-based image.
To Top