如何使用PHP和Imagick向图像添加网格
我想照一张花的常规照片 并将其转换为类似于下图的内容: 以下代码使用ImageMagick(IM)非常有效。如何使用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 你是想让图像变得块状还是仅仅添加
然而,我希望能够使用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”)代码>