纯JavaScript图像处理

Oli*_*ran 10 javascript png image-manipulation node.js

我有一个用例,我想创建(a)一个Node应用程序,(b)执行基本的图像处理(PNG调整大小和裁剪),但(c)我不能有外部依赖,如本机库,GraphicsMagick,ImageMagick,PhantonJS, Inkscape等

这一切都必须在纯JavaScript中完成.

鉴于我想要做的操作有多简单(只是PNG调整大小和裁剪),这似乎不太可能.但是,我找不到最终没有外部或本机依赖关系的裁剪/调整大小库.

是否存在裁剪/调整大小的真正纯JavaScript库?如果我必须自己做,那么在纯JavaScript中实现它有多难?我应该从哪里开始?

或者,是否有适合的C函数,我可以使用emscripten编译,例如?

Oli*_*ran 48

好的,我最终滚动了我自己,我在这里发布了一个NPM包:https://www.npmjs.org/package/jimp

示例用法是:

var Jimp = require("jimp");

var lenna = new Jimp("lenna.png", function () {
    this.crop(100, 100, 300, 200) // crop
        .resize(220, 220) // resize
        .write("lenna-small-cropped.png"); // save
});
Run Code Online (Sandbox Code Playgroud)

突破是在这里找到一个JavaScript双三次双通缩放算法:https://github.com/grantgalitz/JS-Image-Resizer

感谢Mike'Pomax'Kamermans指出正确的方向,以及Grant Galitz的惊人缩放算法.