Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP和Imagick向图像添加网格_Php_Imagick - Fatal编程技术网

如何使用PHP和Imagick向图像添加网格

如何使用PHP和Imagick向图像添加网格,php,imagick,Php,Imagick,我想照一张花的常规照片 并将其转换为类似于下图的内容: 以下代码使用ImageMagick(IM)非常有效。 然而,我希望能够使用PHP做同样的事情 还有一个网站上的Imagick convert ^ in.png ^ -background White ^ -crop 0x6 -splice 0x6 -append -chop 0x6 ^ -crop 6x0 -splice 6x0 +append -chop 6x0 ^ out.png 你是想让图像变得块状还是仅仅添加

我想照一张花的常规照片 并将其转换为类似于下图的内容:

以下代码使用ImageMagick(IM)非常有效。
然而,我希望能够使用PHP做同样的事情 还有一个网站上的Imagick

convert ^
  in.png ^
  -background White ^
  -crop 0x6 -splice 0x6 -append -chop 0x6 ^
  -crop 6x0 -splice 6x0 +append -chop 6x0 ^
  out.png

你是想让图像变得块状还是仅仅添加网格线?如果是前者,则使用scaleImage使图像变小,然后使用scaleImage使图像变大。如果是后者,则创建一个由黑色块和一行/列白色块组成的网格。然后将其平铺并复制到自身的alpha通道。然后将其覆盖到您的图像上。对于PHPImagick,您应该只从中查找相同的命令。他们会有相似的名字。这个论坛不是要告诉你怎么做,而是要纠正你在代码中犯的任何错误。所以你需要先自己尝试一下。虽然可能不是最有效的代码,但我发现可以通过将图像拼接成小块,然后在每个小块周围放置一个边框,然后再将所有小块添加到一起来重新创建网格。例如,下面的代码将图像(宽100像素x高200像素)分成两个网格,并在顶部、左侧、底部、右侧和中心周围放置各种颜色的边框。请参见上面的代码。
$canvas=new Imagick()$画布->新图像(200,5,“绿色”);//顶部边框$stack=new Imagick()$堆栈->新建图像(5100,“橙色”);//左边框$newClone=克隆$image$newClone->cropImage(100100,1,1)$堆栈->添加图像($newClone)$堆栈->新建图像(5100,“蓝色”);//中间边框
$newClone=clone$image
$newClone->cropImage(1001001001)
$stack->addImage($newClone)
$stack->newImage(5100,“紫色”);//右边框
$stack->resetIterator()
$rowImage=$stack->appendImages(FALSE)
$canvas->addImage($rowImage)
$canvas->newImage(200,5,“红色”);//底部边框
$canvas->resetIterator()
$combined=$canvas->appendImages(TRUE)
$combined->setImageFormat(“png”)