簡體   English   中英

HTML5畫布更快fillText()vs drawImage()

[英]HTML5 canvas faster fillText() vs drawImage()

我有一個正在運行的數字時鍾,每10毫秒更新一次。 在每個抽獎電話中,我使用這個:

    var gradient = clockContext.createLinearGradient(0, 0, 0, this.digitWidth);
    gradient.addColorStop(0.15, "rgb(255, 252, 52)");
    gradient.addColorStop(0.15, "rgb(245, 127, 26)");
    gradient.addColorStop(1, "rgb(248, 159, 52)");
    clockContext.fillStyle = gradient;
    clockContext.lineWidth = 1;
    clockContext.lineStyle = "#000000";
    clockContext.fillText(time, (this.digitWidth * i) + e + s, 46);
    clockContext.strokeText(time, (this.digitWidth * i) + e + s, 46);

現在這比創建數字0 - 9的PNG更快還是慢,緩存每個PNG然后在每次繪制調用時使用drawImage()

drawImage是永遠, 永遠快於fillText 它可以快100倍以上,具體取決於文本的構造方式。

我不久前在這里做了一個曲折的分析:

http://simonsarris.com/blog/322-canvas-drawtext-considered-harmful

這是一個簡單的jsperf示例: http ://jsperf.com/image-vs-text

暫無
暫無

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

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