我想改变我的图像的颜色,但要保持透明度。我不能使用fill()方法,因为它有一个规则的锐化规则,而且我的图像是不规则的。那么我应该如何处理干预/图像呢?
发布于 2017-07-06 06:16:18
我找到了一种在干预中使用colorize函数来完成此操作的方法。
$image = Image::make($path);
$color = '#abcdef';
$r = round((hexdec(substr($color, 1, 2)) * 200) / 255) - 100;
$g = round((hexdec(substr($color, 3, 2)) * 200) / 255) - 100;
$b = round((hexdec(substr($color, 5, 2)) * 200) / 255) - 100;
// Apply or remove color from a neutral #7F7F7F color image
$image->colorize($r,$g,$b);我将十六进制颜色的每个分量转换为dec,然后将其转换为从-100到100的范围,以便在colorize函数中使用它。这必须在一个完全#7F的图像中完成,这是一个完全中性的灰色,为了得到正确的颜色。
这是一个非常古老的问题,但我希望这对其他遇到同样问题的人有所帮助。
https://stackoverflow.com/questions/38048466
复制相似问题