图像背景为纯红色,前景为纯灰色。在前景的边缘有一些从灰色到白色的抗锯齿。
我需要做的是将前景色更改为用户指定的颜色,将红色更改为透明。使用imagecolorcloset + imagecolorset / imagecolortransparent很容易。问题是反诽谤部分。
我相信我需要遍历图像中的像素。这似乎有效:http://www.php.net/manual/en/book.image.php#98153
我相信我现在需要确定前景色和抗锯齿色之间的色差。
因此...
前景色= rgb(153,153,153)
Anti-Alias Pixel = rgb(173,173,173)
新颜色= rgb(0,0,255)
如何确定AA Pixel和Foreground Color之间的颜色差异,然后将其应用于新颜色?
答案 0 :(得分:0)
编辑:结果是因为
反别名值应该是相同的因素,所以
<?
//old foreground colour
$of = array (220, 220, 220);
//old anti alias colour
$oaa = array (110, 110, 110);
//factors
$factors = array ($of[0]/$oaa[0], $of[1]/$oaa[1], $of[2]/$oaa[2]);
//new foreground
$nf = array (156, 34, 34);
//new anti alias
$naa = array($nf[0]/$factors[0], $nf[1]/$factors[1], $nf[2]/$factors[2]);
?>