2014-10-09 99 views
4

我使用CamanJS爲我的網站添加了一些圖像處理功能,它是一個簡單而優秀的庫,但它的文檔仍然很差。CamanJS:替換圖像

我正在上傳圖片到我的網站,然後我將所有的效果應用到上傳的圖片上(它不保存在服務器上,我在客戶端修改了它)。 官方網站(http://camanjs.com/guides/#BasicUsage)上,如下所示:

function invertColors() { 
    Caman("#original-img", function() { 
     this.invert().render(); 
    }); 
} 

問題是,當我重新上傳新的圖片。顯然CamanJS會保留第一張圖片,並且不會顯示新圖片。 當我讀到這個問題,我發現這個答案的唯一地方是在這裏: CamanJS - change underlying canvas after applying filters/manipulations

,但我很抱歉,答案不是我說清楚。所以我必須再問一遍。 答案建議使用reloadCanvasData()但我不知道如何使用它,我嘗試了很多方法,但都徒勞無功! 我想:

Caman("#original-img", function() { 
    this.reloadCanvasData(); 
}); 

和:

Caman.reloadCanvasData(); 

任何人都可以提供一個工作的例子嗎? 感謝

回答

0

只要打電話給復歸()當您需要將原始圖像:

Caman("#original-img", function() { 
     this.revert(); 
     this.render(); 
    }); 
0

我想我會幫助那些誰來到這裏尋找如何更換像素數據,而不僅僅是一個裝圖像:

   can1 = document.getElementById("MyCanvas1"); 
       ctx1 = can1.getContext("2d"); 
       var c = <do what ever you need and make a new canvas here> 
       ctx1.putImageData(c, 0,0); // <---this replaces the pixeldata 

       Caman("#MyCanvas1", function() { 
        this.render(); 
       }); 

這樣你可以在像素級別處理圖像,然後將其恢復爲camanjs。

0

作爲解決方案,我所做的是清除畫布並再次插入HTML圖像標記。致電前二Image.with camanjs

類似以下

function clearCanvas() { 
    $('#ImageParentDiv').empty(); 

    var htmlTag = '<img src="../images/Loading.gif" id="original-img">'; 
    $('#ImageParentDiv').html(htmlTag); 
}