【问题标题】:ImageMagic crop size is incorrect using node.jsImageMagick 裁剪大小使用 node.js 不正确
【发布时间】:2015-06-30 11:57:40
【问题描述】:

我正在使用 imageMagic 模块来裁剪图像,这是我的代码:-

var imageMagick = require('imagemagick');
 imageMagick.resize({
    width: 50,
    height: 50,
    strip: false,
    srcPath: options.uploadDir + '/' + fileInfo.name,
    dstPath: options.uploadDir + '/' + version + '/' + fileInfo.name
}, finish);

它工作正常并裁剪图像但问题是当我将尺寸设置为 50x50 但是当图像被裁剪时,我得到了 50x38 的图像尺寸。我不知道是什么问题。 请帮我解决这个问题。 谢谢

【问题讨论】:

  • 原图尺寸是多少?
  • @Michelem 它的 1024x768
  • 所以你不能在保持纵横比的情况下将其调整为 50x50
  • @Michelem 有什么方法可以在任何其他库等中执行此操作吗?

标签: javascript node.js image imagemagick


【解决方案1】:

编辑:

还有一种更好的方法可以用一条语句完成所有事情:

imageMagick.resize({
    srcData: img,
    strip: false,
    width: 50,
    height: "50^",
    customArgs: [
        "-gravity", "center", "-extent", "50x50"
    ]
}, finish);

如果您需要矩形中的正方形,您首先应该将图像裁剪为最小边的大小。

例如,如果您有一个 1024x768 的图像,找到宽度和高度,然后找到最小边(768),然后像这样进行裁剪:

imageMagick.crop({
    width: 768,
    height: 768,
    srcPath: options.uploadDir + '/' + fileInfo.name,
    dstPath: options.uploadDir + '/' + version + '/' + fileInfo.name
}, finish);

然后你可以将其调整为 50x50 之类的正方形:

imageMagick.resize({
    width: 50,
    height: 50,
    srcPath: options.uploadDir + '/' + fileInfo.name,
    dstPath: options.uploadDir + '/' + version + '/' + fileInfo.name
}, finish);

我认为您可以将resizecrop 链接在一个独特的声明中

【讨论】:

猜你喜欢
  • 2012-11-08
  • 2023-03-19
  • 2012-05-19
  • 2015-12-04
  • 2015-03-02
  • 2017-03-06
  • 1970-01-01
  • 2016-11-29
  • 2019-12-20
相关资源
最近更新 更多