GD颜色替换

时间:2011-04-20 12:53:16

标签: php gd

这是杀了我..

图像背景为纯红色,前景为纯灰色。在前景的边缘有一些从灰色到白色的抗锯齿。

我需要做的是将前景色更改为用户指定的颜色,将红色更改为透明。使用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之间的颜色差异,然后将其应用于新颜色?

1 个答案:

答案 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]);

?>