如何使用alpha渐变动态生成图像?

时间:2011-02-23 01:09:13

标签: php javascript gd gradient alpha-transparency

我正在寻找一种动态创建带有羽毛边缘的椭圆的方法(并且能够控制羽化的程度)。理想情况下,这可以通过Javascript实现,因为预期用途是在可以离线使用的应用程序中,但为了简单起见,我同时对PHP解决方案感到满意。

我确实尝试过使用GD的解决方案,但是在处理alpha时我发现它非常有限。主要问题是使用填充的椭圆和分层将抵消透明效果,并且仅使用逐渐变小的椭圆绘制边框会导致椭圆没有完美排列的问题(参见下图)。

Example

我可以使用哪种解决方案可以消除这些问题,而不会过于复杂?我知道我可以逐像素地创建一个图像,但这似乎是一个非常复杂的方法,应该是一个相对容易的任务。

2 个答案:

答案 0 :(得分:2)

这是一个使用标签的示例,看起来它可能会在正确的路径上启动您:

http://nixtu.blogspot.com/2010/07/html5-canvas-gradients-radial-gradient.html

这是一个小提琴,显示了我认为你可能在寻找的东西:

http://jsfiddle.net/hgZt7/2/

答案 1 :(得分:1)

ImageMagick是完成任务的最简单方法。完整的功能列表是:http://us3.php.net/manual/en/book.imagick.php

用于创建Alpha频道:http://us3.php.net/manual/en/function.imagick-getimagealphachannel.php