0

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

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

例子

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

4

2 回答 2

2

这是一个使用标签的示例,看起来它可能会让您走上正确的道路:

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

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

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

于 2011-02-23T02:39:35.557 回答
1

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

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

于 2011-02-23T02:39:36.393 回答