我现在遇到了一个非常棘手的问题:我的数据库中保存了一个 blob-Picture。现在,我想把它分成 9 个部分(比如井字棋网格),然后我想把那个隐藏在右边。现在我想以随机顺序显示这 8 个部分,以便您可以移动它们并解决难题(移动可以用 javascript 解决)。
如何制作 php 功能?是否有现有的功能?
谢谢帮助;)
我现在遇到了一个非常棘手的问题:我的数据库中保存了一个 blob-Picture。现在,我想把它分成 9 个部分(比如井字棋网格),然后我想把那个隐藏在右边。现在我想以随机顺序显示这 8 个部分,以便您可以移动它们并解决难题(移动可以用 javascript 解决)。
如何制作 php 功能?是否有现有的功能?
谢谢帮助;)
您可以使用 GD 库。有一个函数imagecopy()
http://www.php.net/manual/en/function.imagecopy.php,您可以在其中复制图像的各个部分。例如,如果您有 90x90 像素的图像,则必须使用 0,0,30,30 来调用它,以便获得第一个正方形。将这些部分保存为单独的图像或直接放入浏览器中,然后您只需要以适当的方式操作它们 [这里:拼图求解器]。
好的,这将是 JavaScript 和 PHP 的组合,能够在 PHP 中拆分图像并不难,但您必须记住,您需要对文件进行一些组织,以便 JavaScript 知道它们应该进入的顺序成为一个完整的谜题。
与其分割图像本身,不如使用数学方法对其进行切片。
1 2 3
-------------------
1 | | | |
-------------------
2 | | | |
-------------------
3 | | | |
-------------------
好的,所以图像是 300 x 300 像素,您需要将宽度和高度除以所需的图像数量除以 2,例如:
$ImagesRequired = 9;
$GlobalImageWidth = 900;
$GlobalImageHeight = 900;
$EachImageWidth = $GlobalImageWidth / ($ImagesRequired / 2);
$EachImageHeight = $GlobalImageHeight / ($ImagesRequired / 2);
这两个值都应该是 66~ 像素,然后您将在图像周围移动,使用裁剪来获取图像的块。
for($x=0;$x<=$GlobalImageWidth;$x = $x+=$EachImageWidth)
{
}
查看上面的图表,您是否会按增量顺序拍摄图像,以便累积以下尺寸。
所以现在您已经计算了每个图像应该被裁剪的尺寸,您将使用 GD 或 Imagik 库对图像进行切片,创建一个图像数组,然后您可以将其存储在缓存中。
上述内容可能不是 100% 正确,因为它已经很晚了,我不是数学或图像处理方面的专家,但希望这能让你开始,也看到在 Imagik 和图像处理中完成的一些伟大的工作,请参阅以下链接,它应该会有所帮助启发你。