如果我在imagecolorallocatealpha中更改alpha计算,则会出现问题 是不对的。
1 - 3的照片放在一起,看起来像这样:
如果添加了图片4和5,它看起来像这样:
你现在可以看到身体上的金色鳞片和灰度,但那是错的。身体上的灰度不应该存在。
实际上,龙应该是这样的:
身体上的灰度应该是明亮的,金色的鳞片应该保持不变。
@Syscall已经帮助了this thread中的“alpha”功能,它运行良好,但现在我们认为“blendmode”函数是错误的。
function blendmode($dst, $src)
{
$w = imagesx($src);
$h = imagesy($src);
for ($x = 0; $x < $w; $x++) {
for ($y = 0; $y < $h; $y++) {
$rgbDst = imagecolorsforindex($dst, imagecolorat($dst, $x, $y));
$rgbSrc = imagecolorsforindex($src, imagecolorat($src, $x, $y));
$r = min($rgbSrc['red'] + $rgbDst['red'], 255);
$g = min($rgbSrc['green'] + $rgbDst['green'], 255);
$b = min($rgbSrc['blue'] + $rgbDst['blue'], 255);
imagesetpixel($src, $x, $y, imagecolorallocatealpha($src, $r, $g, $b, 204 / 255 * 105));
}
}
return $src;
}
这就是龙与“混合模式”功能有关的样子:
答案 0 :(得分:-1)
首先,我建议你不要坚持内置的图形库for php。
我会向你推荐ImageMagik(Imagick)或Intervention(http://image.intervention.io/)。
他们是更强大的图书馆。