在NodeJS中使用GD库来复制和重新采样图像

时间:2013-07-04 14:40:10

标签: image node.js gd

我试图在PHP GD函数imagecopyresampled的NodeJS中找到一个等价的,但没有成功。

这不是简单地调整图像大小,而是获取图像的一部分然后将其放入另一个图像。

我找到了这个库:

  • 画布
  • ImageMagick的
  • easyimage
  • 节点-GD

但他们没有相应的东西。它与函数imagecreatetruecolor完全相同,它们只是简单地调整大小/裁剪图像而不选择具有偏移和指定宽度/高度选择的图像部分。

有没有人知道NodeJS的等价物?

1 个答案:

答案 0 :(得分:2)

好的,我找到了响应,我使用了node-gd。在之前的搜索中,我找到了一个过时的节点gd库。

这是正确的库:https://github.com/mikesmullin/node-gd

要创建空的行李,请使用此功能:createTrueColor(width, height) 要重新取样或剪切图像,请使用:copyResampled()

这类似于PHP函数,具有相同的参数。维基可在此处获取:https://github.com/taggon/node-gd/wiki

基本的例子:

var fs   = require('fs');
var path = require('path');
var gd   = require('gd');
var source = './test.png';
var target = './test.thumb.png';

if (path.exists(target)) fs.unlink(target);

gd.openPng(
    source,
    function(png, path) {
        if(png) {
            var w = Math.floor(png.width/2), h = Math.floor(png.height/2);
            var target_png = gd.createTrueColor(w, h);

            png.copyResampled(target_png,0,0,0,0,w,h,png.width,png.height);
            target_png.savePng(target, 1, gd.noop);
    }
});