【问题标题】:Get GraphicsMagick to open file from a https url?让 GraphicsMagick 从 https url 打开文件?
【发布时间】:2012-10-30 22:32:30
【问题描述】:

我可以使用 GraphicsMagick 下载给定 URL 的图像,但是当 URL 以 https 开头时,我收到以下错误(https://example.com/image.png):

Unable to open file (//example.com/image.png) [No such file or directory].

我正在使用 node.js 的 gm 驱动程序,代码如下:

gm = require('gm');
gm(url).write(name);

但也直接从命令行尝试了gm,但同样的问题。

如前所述,它适用于 http URL,我可以让它适用于 https 吗?

【问题讨论】:

    标签: https graphicsmagick


    【解决方案1】:

    GraphicsMagick 使用 libxml2 的 HTTP 支持,目前不支持 HTTPS。尝试使用诸如“wget”或“curl”(使用 OpenSSL 支持 HTTPS)之类的外部程序来检索文件。然后您可以将返回的文件传递给 GraphicsMagick。

    【讨论】:

      【解决方案2】:

      正如 Bob 所说,HTTPS 仍然不受支持,但是:

      使用 https 模块,您可以创建一个缓冲区并将其直接输入到 GraphicsMagick。

      https.get('https://www.eff.org/files/https-everywhere2.jpg', function(response) {
      
          gm(response, 'image.jpg')
              .write('test.jpg', function(err) {
                  if (err) return handle(err);
                  console.log('Created an image from a Buffer!');
              });
      });
      

      【讨论】:

      • 我似乎无法让它工作。我正在尝试调整图像大小。但它不是管道任何东西。我正在做类似gm(response).resize(x,y).stream().pipe(someStream) 的事情。有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多