Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 修剪图像背景,但在GraphicsMagck中保留填充_Php_Image Processing_Graphicsmagick - Fatal编程技术网

Php 修剪图像背景,但在GraphicsMagck中保留填充

Php 修剪图像背景,但在GraphicsMagck中保留填充,php,image-processing,graphicsmagick,Php,Image Processing,Graphicsmagick,我在php中汇编Graphicsmagick命令,然后使用exec()调用它们。我需要修剪图像,但保留20像素的填充。因此,我想做以下工作: exec('gm convert input.jpg -trim -bordercolor white -border 20x20 output.jpg'); 但是使用修剪过的颜色,而不是白色。如何做到这一点?GraphicsMagick目前似乎无法做到这一点(在撰写本文时:GM v1.4 beta版) 在ImageMagick中,可以执行此操作,因为I

我在php中汇编Graphicsmagick命令,然后使用exec()调用它们。我需要修剪图像,但保留20像素的填充。因此,我想做以下工作:

exec('gm convert input.jpg -trim -bordercolor white -border 20x20 output.jpg');

但是使用修剪过的颜色,而不是白色。如何做到这一点?

GraphicsMagick目前似乎无法做到这一点(在撰写本文时:GM v1.4 beta版)

在ImageMagick中,可以执行此操作,因为IM提供了一个fx命令来采样给定像素的颜色值:

convert myimage.png -format '%[fx:p{10,20}]' info:
这将返回位置x=10,y=20处像素的颜色值。然后,可以在后续的IM命令中使用输出来添加该颜色的边框。

这对我很有用

gm convert input.jpg -crop 1x1+0+0 corner.txt
color=`sed -e "s/.* #/#/" corner.txt`
gm convert input.jpg -trim -bordercolor $color -border 20x20 output.jpg
GraphicsMagick中的txt格式没有标题(与ImageMagick不同),因此(0,0)像素位于第一行(实际上是1x1图像的唯一一行)。 1x1裁剪图像的corner.txt文件如下所示:

0,0: (255,255,255) #FFFFFF

在我的测试图像中,它碰巧是白色的,但它将是(0,0)像素的任何颜色。

谢谢。还发现该参数非常有用,它允许您修剪边缘,即使您有一个边缘周围有瑕疵的蹩脚jpeg。