用于弯曲/扭曲图像的PHP函数

4

我正在使用我的简单PHP验证码算法(http://www.source.ofitall.com/devel/captcha.php),并且一直在努力尝试调整它,使其更具吸引力和易读性,类似于Google风格的验证码。

有没有人知道一个函数,可以接收GD图像引用并弯曲/扭曲它,实现Google风格的效果?


我尝试查看此验证码的源代码:http://www.captcha.ru/en/kcaptcha/,它基本上做到了我想要的,但我在将其扭曲代码放入包含函数时遇到了麻烦。 - Sherri
本来想质疑你为什么要重新发明轮子,但后来意识到这是从'09年的内容。 - Clonkex
1个回答

4

如果您的服务器上安装了ImageMagick,您可能想尝试这个

  convert koala.gif -background Blue  -wave 10x64  wave.jpg

更新:

如果您没有使用某个库,那么您显然必须编写自己的实现。

以下是一些建议,您可以在其中找到有用的信息:

  • 如果您更喜欢实践,请查看此自由可用的Java实现SwimFilterWarpFilter,可以在此下载

  • 然后有一个2样条曲线变形算法的解释,可能会做你想做的事情这里

  • 这里有一个很好的算法概述,可能适合您的需求(Microsoft文档文件)。

您应该知道,这并不是容易实现的事情。但是,如果您对此感兴趣并且非常需要摆脱ImageMagick,那么这是您唯一的机会(据我所知)。

还有GD的性能不佳..

祝你好运! :-)


我喜欢那个,我在其他项目中使用过ImageMagick。然而,这个验证码脚本旨在成为一个可以被人们使用的PHP脚本,我不想将ImageMagick作为必需品。我曾经看到过使用正弦波移动图像中的像素的算法......我想知道是否有相应的函数。 - Sherri
到目前为止,我尝试过的每个主机都支持ImageMagick。我理解你的担忧,但我认为性能与最低要求之间的权衡太大了。我敦促你考虑一下是否真的需要使用GD来完成这个任务。 - André Hoffmann
是的,虽然ImageMagick几乎在所有主机上都有,但我正在尝试将此CAPTCHA脚本作为一个独立的PHP函数分发。因此,虽然您的解决方案很明显和简单,但我正在寻找一个GD函数。 - Sherri
你的解决方案非常出色,所以我会选择你的答案。但是最终我使用了PHP函数来绘制线条和噪声,例如http://ca2.php.net/manual/en/function.imageline.php。没有进行任何扭曲。 - Sherri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接