保存用caman.js处理过的图像

saving an image that has been manipulated with caman.js

本文关键字:图像 处理 js caman 保存      更新时间:2023-09-26

伙计们,我真的很难解决这个问题。我已经尝试了好几天,但没有成功,我用camanjs处理了一个图像,然后用canvas将其保存到磁盘上。toblob(),这是代码

Caman("#theCanvas", "images/1.jpg", function () {
    this.greyscale()
        .noise(33.3)
        .render(function(){
            for(i=1;i<=3;i++){
                draw(2);
                draw(3);
                draw(4);
                draw(8);
            }
            for(i=1;i<=29;i++){
                draw(1);
                draw(5);
                draw(6);
                draw(7);
            }
            var canvas = document.getElementById("theCanvas");
            canvas.toBlob(function(blob) {
                saveAs(blob, "image.jpg");
            });
        });
});

当图像被保存时,它被保存为.grayscale效果和.noise()效果,但我在render()函数中对图像所做的更改不在图像中,我不确定如何克服这一点,我尝试过使用.reloadCanvasData(),但它不起作用。我认为我没有正确使用它,有人能解决这个问题吗?

也许你可以试试

.render(function(){
  var base64 = this.toBase64()
  download(base64, 'image.jpg', 'image/jpeg')
})

下载功能来自http://danml.com/download.html

我用下面的技巧解决了这个问题。你可以使用

 Caman("#canvas", function() {
          //console.log(this.toBase64());
        let a  = document.createElement('a');
            a.href = this.toBase64();
            a.download = Date() +'_image.png';
            a.click();
        });