Node.js 如何强制nodejs的imagemagick模块只输出一个图像?
我将imagemagick模块与Nodejs一起使用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){} ); 这将产生两个图像。一个是裁剪过的图像区域,第二个是我试图清除的图
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作为引用。我认为重心会使图像居中并从图像的中间裁剪区域是的,看起来他们对裁剪命令有点满意,大多数人希望它自动丢弃不在指定区域的任何东西,除非你指定偏移量,否则他们会保留它。