【问题标题】:Resizing image with Graphicsmagick in Nodejs generates emty file在 Node Js 中使用 Graphicsmagick 调整图像大小会生成空文件
【发布时间】:2015-04-13 01:29:56
【问题描述】:

我正在尝试调整现有图像的大小,然后将其上传到 Azure 存储,但尚未成功...

gm("https://sinkroon.blob.core.windows.net/sinkroonboilerplate/dakterras1.jpg")
.resize(50, 50)
.stream(function (err, stdout, stderr) {
    var writeStream = blobSvc.createWriteStreamToBlockBlob(
    containerName,
    'test.jpg',
    { contentType: 'image/jpg' },
    function (error, result, response) {
         if (error) {
             console.error(error);
         } else {
         }
    });
    stdout.pipe(writeStream);
});

这会生成一个空图像:https://sinkroon.blob.core.windows.net/sinkroonboilerplate/test.jpg

无法弄清楚我做错了什么......有人吗?

【问题讨论】:

  • 可能是写入图像文件的权限问题。

标签: node.js azure imagemagick azure-blob-storage graphicsmagick


【解决方案1】:

对于这种情况,我使用这个:

var request = require('request');
var lwip    = require('lwip');
request({url: url, encoding:null}, function (err, response, imageBuffer) {
    var imageFormat = response.headers["content-type"].match(/(png|jpg|jpeg)/)[0];  
        lwip.open( imageBuffer, imageFormat, function(err, image){
            if (err || !image) throw err;
            image.resize(196, 196, function(err, image){
                if (err || !image) throw err;
                image.toBuffer(imageFormat, function(err, buffer){
                     //here you buffer you can save image in file with FS
                });
            });
        });
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2014-08-09
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多