我在nodejs中使用graphics magick wrapper并使用以下代码创建方形缩略图:
var size = {width: 200, height: 200};
gm(sourcePath)
.resize(size.width * 2, (size.height * 2) + '')
.thumbnail(size.width, size.height + '^')
.gravity('center')
.extent(size.width, size.height)
.profile('*')
.write(outputPath, function (error) {
if (error) console.log('Error - ', error);
});
这很好用,直到我的缩略图的大小比输入图像大。在这种情况下,我希望缩略图是规定的大小,但是要将图像放在它的中心而不是调整大小。
有没有办法用一组命令执行此操作,还是必须编写一些单独的逻辑来确定?
答案 0 :(得分:14)
我最终使用此命令直接使用GM:
gm convert inputPath -resize "200x200>" -gravity center -extent 200x200 outputPath
这将创建一个200x200的图像,输入图像居中,它们 - 大小为200x200> part(注意>)表示只调整它以使其更小而不是更大
在节点中使用gm模块的等效命令是:
var size = {width: 200, height: 200};
gm(sourcePath)
.resize(size.width, size.height + ">")
.gravity('Center')
.extent(size.width, size.height)
.write(outputPath, function (error) {
if (error) console.log('Error - ', error);
});