簡體   English   中英

node-o3-canvas 與 node-canvas?

[英]node-o3-canvas vs. node-canvas?

有沒有人對這些 node.js 庫中的一個或兩個有經驗? 好奇地聽到每個人的成功或困難。

LearnBoost是社區中最多產的節點模塊開發人員之一,因此我選擇了 node-canvas 而不是 node-o3-canvas。

我使用 node-canvas 將圖像分割成服務器上的圖塊並將它們發送回客戶端。 一切都如您所願。 以下是您可能編寫的代碼示例:

helper = function(x, y, canvas) {
    return function(err, str) {
        if (!tiles[x]) {
            tiles[x] = [];
        }

        tiles[x][y] = { 
            data: str
            , buffer: canvas.toBuffer()
            , covered: true 
        };
    };
};  

for (y = 0; y < tilesPerColumn; y += 1) {
    for (x = 0; x < tilesPerRow; x += 1) {
        //Create a new tile canvas each time so they don't run over each other
        tCanvas = new Canvas(chunkSize, chunkSize);
        tCtx = tCanvas.getContext('2d');

        xOffSet = chunkSize * x;
        yOffSet = chunkSize * y;

        //Save a set of uncovered tiles to store in memory
        tCtx.drawImage(img, xOffSet, yOffSet, chunkSize, chunkSize, 0, 0, chunkSize, chunkSize);
        tCanvas.toDataURL(helper(x, y, tCanvas));        
    }
}

我唯一的問題是:

  • 如果您在節點畫布中使用異步方法,則需要小心分配新的畫布/上下文實例,以免中斷可能正在書寫/繪圖的實例。
  • 由於某種原因,在使用服務器端 base64 編碼圖像時,我無法讓 node-canvas 的 Image() object 正常工作。 我的問題是,當為 src 屬性分配 base64 字符串時,不會觸發 onLoad 事件。 我沒有花太多時間來解決這個問題,而是將圖像寫入臨時文件以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM