Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Node.js 如何强制nodejs的imagemagick模块只输出一个图像?_Node.js_Imagemagick_Imagemagick Convert_Node Imagemagick - Fatal编程技术网

Node.js 如何强制nodejs的imagemagick模块只输出一个图像?

Node.js 如何强制nodejs的imagemagick模块只输出一个图像?,node.js,imagemagick,imagemagick-convert,node-imagemagick,Node.js,Imagemagick,Imagemagick Convert,Node Imagemagick,我将imagemagick模块与Nodejs一起使用 im = require('imagemagick'); imagemagick模块使用imagemagick命令行工具。 我使用convert方法裁剪图像 im.convert([image_path, '-crop', '200x150', '-gravity', 'center', target_path], function(err, stdout){} ); 这将产生两个图像。一个是裁剪过的图像区域,第二个是我试图清除的图

我将imagemagick模块与Nodejs一起使用

im  = require('imagemagick');
imagemagick模块使用imagemagick命令行工具。 我使用convert方法裁剪图像

im.convert([image_path, '-crop', '200x150', '-gravity', 'center', target_path],
  function(err, stdout){}
);
这将产生两个图像。一个是裁剪过的图像区域,第二个是我试图清除的图像垃圾


如何强制imagemagick仅输出一个图像文件?

我必须使用
+delete
参数从图像序列中删除最后一个图像

im.convert([image_file.path, '-crop', geometry, '+delete', thumb_path], ...
根据关于裁剪的描述,这是公认的有点迟钝的(重点补充):

“几何体”参数的“宽度”和“高度”给出了剪切后剩余图像的大小,偏移量中的x和y(如果存在)给出了剪切图像左上角相对于原始图像的位置

如果存在x和y偏移,则生成一幅图像,由裁剪区域的像素组成

如果省略了x和y偏移,将生成一组指定几何体的平铺,覆盖整个输入图像。

。。。因此,您只需要指定
x
y
偏移作为几何参数的一部分,就像这样:
200x150-100-75


请注意,我为裁剪区域的左上角指定了
-100
-75
,这是因为您将
重力设置为
中心
,但imagemagick似乎试图根据重力智能地确定适当的距离目标,当你选择
center
时,我看不到它的具体行为。因此,您可能需要稍微处理一下这一点,或者您可以忽略重力,使用原始图像左上角的实际偏移量。

+1作为引用。我认为重心会使图像居中并从图像的中间裁剪区域是的,看起来他们对
裁剪
命令有点满意,大多数人希望它自动丢弃不在指定区域的任何东西,除非你指定偏移量,否则他们会保留它。