【问题标题】:nodejs resize and save image from remote servernodejs从远程服务器调整大小并保存图像
【发布时间】:2018-01-07 23:24:15
【问题描述】:

node js 调整大小并从远程服务器保存图像。

嗨, 如何在不保存本地然后保存的情况下调整图像大小。 当我运行以下代码时,出现错误:“错误:输入缓冲区包含不支持的图像格式” 代码:

var fs = require('fs');
var request = require('request');
var sharp = require('sharp');

function getImage()
{
request('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png', function (err, res, body) {

var binary = Buffer.from(body.toString(), 'base64');   

sharp(binary).resize(198, 110).toFile('test.jpg', (err, info ) => 
  { 
      console.log('err: ', err);
      console.log('info: ', info);

  });      
});
}

【问题讨论】:

    标签: node.js image-processing image-resizing save-image sharp


    【解决方案1】:

    我发现解决了我的问题:

    var resizer = sharp().resize(198, 110).toFile('test.jpg', (err, info) => { 
        console.log('err: ', err);
        console.log('info: ', info);
      });    
      request('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png').pipe(resizer);
    

    【讨论】:

      【解决方案2】:

      如果您可以确保https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png 返回图像,您可以尝试将响应直接通过管道传输到sharp,而不是将响应转换为base64 格式和处理。

      var resize = sharp(binary).resize(198, 110);
      resize.on('error', function() {
        //handle error
      });
      resize.on('finish', function() {
        // done
      });
      request('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png')
      .pipe(process);
      

      更新:

      删除了.toFile('test.jpg'); 部分

      【讨论】:

      • 感谢您的回答,我解决了我的问题,代码:var resizer = sharp().resize(198, 110).toFile('test.jpg', (err, info) => { console.log('err: ', err); console.log('info: ', info); });请求('google.com/images/branding/googlelogo/2x/…;
      • @MichaelFedorov,删除.toFile('test.jpg', (err, info) => { console.log('err: ', err); console.log('info: ', info); })。如果您只打算使用管道,那就没有必要了。
      猜你喜欢
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多