如何在图片上获取像素的透明度值?
'imagecolorat'仅选取图像中指定位置的像素颜色的索引。使用该索引,我可以获得RGB值,但不能获得透明值。
希望你理解,并提前感谢你。
答案 0 :(得分:12)
解决方案可能如下:
$colorIndex = imagecolorat($img, $x, $y);
$colorInfo = imagecolorsforindex($img, $colorIndex);
print_r($colorInfo);
将打印如下内容:
Array
(
[red] => 226
[green] => 222
[blue] => 252
[alpha] => 0
)
其中[alpha]是你的透明度值...(从0到127,其中0是完全不透明的,127是完全透明的)
享受!
答案 1 :(得分:10)
据我所知,透明度值由函数imagecolorat
返回。你能尝试一下:
$color = imagecolorat($image, $x, $y);
$transparency = ($color >> 24) & 0x7F;
透明度是0到127之间的整数,因此我们需要屏蔽32位颜色整数的前8位。
答案 2 :(得分:1)
根据PHP手册imagecolorat返回指定X / Y坐标处的颜色索引(我假设这是用于GIF和/或PNG-8)。
如果您知道索引,则问题是确定文件中的哪个索引是透明索引。
imagecolortransparent可能值得一看,imagecolorsforindex也可能有所帮助。