我需要将变量大小的图像剪裁成拼图形状,类似于这样(不是正方形):http://www.fernando.com.ar/jquery-puzzle/
我考虑使用像Cairo或GD这样的PHP库来完成此操作,但我对这些库几乎没有经验,并且没有立即解决为不同大小的图像创建动态可缩放的剪切蒙版的方法。
我正在寻找关于使用哪种服务器端编程语言来完成此任务以及最好的解决方法的指导/提示。
我正在寻找关于使用哪种服务器端编程语言来完成此任务以及最好的解决方法的指导/提示。
您可以使用GD创建一个大小为拼图块的图像,然后使用正确的裁剪将完整图像复制到该图像上以获取图像的正确部分。
然后,您可以使用不同颜色(例如#0f0)动态着色要删除的每个部分,然后使用imagecolorallocatealpha使该颜色透明。对于每个拼图块都这样做,就可以得到服务器端的图像块。
但是,如果我是您,我会提前创建每个拼图块的剪辑蒙版,并使用不同颜色进行标识。这将使每个连接有两个图像(一个带有“圆形”连接器突出,另一个是此圆形连接器适合的图像)。这样,您就可以将这些蒙版复制到图像上,快速创建漂亮的边缘。
GD相当复杂,我听说Image Magick非常好用,有PHP版本和php.net上的大量文档。然而,并非所有的Web服务器都会默认安装它。
http://php.amnuts.com/index.php?do=view&id=15&file=class.imagemask.php
使用GD的基本操作是从特定大小开始创建一个掩码,然后使用imagecopyresampled
函数将掩码图像资源复制到更大或更小的尺寸。要了解我的意思,请查看上面网址中显示的_getMaskImage
方法类。输出的工作示例可在以下网址中查看:
http://php.amnuts.com/demos/image-mask/
使用GD的问题在于,如果您想实现不同的不透明度级别,那么您需要一次一个像素地进行处理,因此处理大型图像可能需要几秒钟的时间。但是使用ImageMagick可能不会出现这种情况。