ConFoo 2025

imagecolorexactalpha

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

imagecolorexactalpha取得指定的颜色加透明度的索引值

说明

imagecolorexactalpha(
    GdImage $image,
    int $red,
    int $green,
    int $blue,
    int $alpha
): int

返回图像调色板中指定颜色加透明度的索引值。

参数

image

由图象创建函数(例如imagecreatetruecolor())返回的 GdImage 对象。

red

红色成分的值。

green

绿色成分的值。

blue

蓝色成分的值。

alpha

介于 0127 之间的值。0 表示完全不透明,而 127 表示完全透明。

colors 参数是 0 到 255 之间的整数或 0x00 到 0xFF 之间的十六进制数。

返回值

返回图像调色板中指定颜色加透明度的索引值。 如果颜色不在图像的调色板中,返回 -1。

更新日志

版本 说明
8.0.0 image 现在需要 GdImage 实例;之前需要有效的 gd resource

示例

示例 #1 从 GD logo 中获取颜色

<?php

// Setup an image
$im = imagecreatefrompng('./gdlogo.png');

$colors = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

// Free from memory
imagedestroy($im);
?>

以上示例的输出类似于:

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

参见

添加备注

用户贡献的备注 2 notes

up
1
matt at matt-darby dot com
19 years ago
Note that a color allocated with imagecolorexactalpha won't show alpha (it will be opaque) when used with imageline(). Use imagerectangle() set to your normal start and end points instead.

Ensure that the image is created via imagecreatetruecolor() as well!
up
-1
phpdoc-comment at aditus dot nu
22 years ago
What might be misleading in the docs is that if the specified color + alpha channel does not exist it will be created. So if you like to use an alpha channel in your image enable alpha blending and then create you color using this method.
To Top