我需要像这样(不是正方形)将可变大小的图像裁剪成拼图形状的小块:http://www.fernando.com.ar/jquery-puzzle/
我已经考虑过使用Cairo或GD这样的php库来做这件事的可能性,但我几乎没有使用这些库的经验,也没有看到为不同大小的图像创建动态可伸缩的剪切蒙版的即时解决方案。
发布于 2011-09-27 19:34:39
您可以使用GD创建具有拼图块大小的图像。然后复制该图像上的完整图像,并进行正确的裁剪,以获得图像的正确部分。
然后你可以用一种不同的颜色(例如#0f0)动态地给你想要移除的每一部分上色,然后使用imagecolorallocatealpha使颜色变得透明。对每一块都这样做,你就有了你的服务器端图像块。
但是,如果我在你所在的地方,我会提前在不同的颜色中创建每个拼图和平的剪切蒙版。这将使每个连接有两个图像(一个带有突出的“圆形”连接器,另一个适合此圆形连接器的位置)。这样,您就可以将这些蒙版复制到图像上,以快速创建漂亮的边缘。
发布于 2011-08-06 00:09:07
GD相当复杂,我听说过Image Magick非常好的东西,它有一个PHP版本和很多关于php.net的文档。但是,并非所有web服务器都会默认安装此软件。
http://www.php.net/manual/en/book.imagick.php
发布于 2011-09-14 07:20:02
如果您选择在GD中使用PHP,那么这里的代码可能会有所帮助:
http://php.amnuts.com/index.php?do=view&id=15&file=class.imagemask.php
基本上,您需要对GD做的是从特定大小的蒙版开始,然后使用imagecopyresampled函数将蒙版图像资源复制到更大或更小的大小。要理解我的意思,请查看上面的url所示的_getMaskImage方法类。输出的工作示例可在以下位置查看:
http://php.amnuts.com/demos/image-mask/
据我所知,通过GD做这件事的问题是,如果你想实现不同的不透明度水平,你需要一次做一个像素,所以处理一个大图像可能需要几秒钟。对于ImageMagick,情况可能并非如此。
https://stackoverflow.com/questions/6958826
复制相似问题