gpt4 book ai didi

php - 如何选择一种颜色使图像透明?

转载 作者:搜寻专家 更新时间:2023-10-31 20:56:30 24 4
gpt4 key购买 nike

第一个问题,请轻点;-)

我写了一个图像类,它使简单的东西(矩形、文本)变得更容易一些,基本上是一堆 PHP 图像函数的包装器方法。
我现在想做的是允许用户定义一个选择,并且让下面的图像操作只影响所选区域。我想我会通过将图像复制到 imgTwo 并从中删除选定区域来做到这一点,像往常一样对原始图像执行以下图像操作,然后在调用 $img->deselect() 时,将 imgTwo 复制回原始图像, 并销毁副本。

  • 这是最好的方法吗?显然,在选定区域内定义取消选定的区域会很棘手,但我现在可以接受 :)

然后,我从副本中删除选区的方法是绘制一个透明颜色的矩形,这很有效 - 但我不知道如何选择那种颜色确保它不会出现在图像的其余部分。此应用程序中的输入图像是真彩色 PNG,因此没有带有颜色索引的调色板(我认为?)。

  • 必须有比收集每个单独像素的颜色然后找到 $existing_colours 数组中没有出现的颜色更好的方法..对吗?

最佳答案

PNG 透明度与 GIF 透明度的工作方式不同 - 您不需要将特定颜色定义为透明。只需使用 imagecolorallocatealpha()并确保您已设置 imagealphablending()false:

// "0, 0, 0" can be anything; 127 = completely transparent
$c = imagecolorallocatealpha($img, 0, 0, 0, 127);

// Set this to be false to overwrite the rectangle instead of drawing on top of it
imagealphablending($img, false);

imagefilledrectangle($img, $x, $y, $width - 1, $height - 1, $c);

关于php - 如何选择一种颜色使图像透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1048731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com