【问题标题】:Node.js Resize ImageNode.js 调整图像大小
【发布时间】:2015-06-21 21:22:05
【问题描述】:

我无法调整图像大小。我正在使用 multer 获取文件,但是如何调整此图像的大小?我尝试了 imagestick,但 fs 没有保存它们。

  router.post('/uploadAvatar', 
    multer({
      dest: './public/uploads/images/avatars',
      rename: function (fieldname, filename) {
        return 'avatar'+Date.now();
      }
    }), function(req, res) {
      // resize image
      res.json(newPath);
  });

【问题讨论】:

    标签: node.js


    【解决方案1】:

    我喜欢 Sharp 模块在 Node.js 中玩图像:

       router.post('/uploadAvatar', 
        multer({
          dest: './public/uploads/images/avatars',
          rename: function (fieldname, filename) {
            return 'avatar'+Date.now();
          }
        }), function(req, res) {
          // resize image
          sharp(newPath).resize(300, 200).toFile(newPath, function(err) {
             if (err) {
               throw err;
             }
             // output.jpg is a 300 pixels wide and 200 pixels high image
             // containing a scaled and cropped version of input.jpg
             res.json(newPath);
          });
      });
    

    【讨论】:

    • 我可以完美地调整图像大小。但是,我只想保留调整大小的文件。每次调整大小后,我都必须删除旧文件并保留调整大小的文件。如果我将newpath 设置为相同(相同的起点和终点),那么它将显示错误。总之,我想知道有没有解决方案,可以通过覆盖上传的原文件来调整上传的图片大小。?
    • 我在使用 php.ini 时遇到了同样的问题。我所做的只是给原始图像一个名称,例如 orginal.jpg,然后剥离绑定点扩展名(.jpg),将其重写为另一个不可执行的文件扩展名,例如。原来的。这样做是任何用户上传的任何图像并调整大小。原始图像将命名为 original.me,因此它们将相互替换。最后,您将只有 original.me 和无限量的基于图像上传数量的调整大小的文件
    猜你喜欢
    • 2021-08-15
    • 1970-01-01
    • 2017-03-25
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2010-11-20
    相关资源
    最近更新 更多