国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

canvas繪圖不清晰的解決方案

2019-11-19 17:23:57
字體:
來源:轉載
供稿:網友

現象描述

  同樣大小的圖片(60x60px)用canvas和DOM繪制,結果發現canvas的畫面質量要差很多。結果如下圖所示。

  上圖中,左側紅框中的金幣采用DOM繪制,右側和下方的金幣和文字等使用canvas繪制,結果canvas繪制的圖片模糊不清。

原因分析

  假設dpr = 2;圖片大小為60x60px;對dpr有一定的了解基礎。

  1.DOM呈現圖片過程

  圖片――》瀏覽器css像素(顯示尺寸)――》屏幕實際像素

  60x60              30x30                              60x60

  圖片像素――》實際像素

  1: 1

  2.canvas繪制過程

  圖片像素――》canvas像素(畫布尺寸)――》css像素(顯示尺寸)――》屏幕實際像素

  60x60               30x30                              30x30                          60x60

  圖片像素――》畫布像素――》實際像素

  4:                    1:                  4

  也就是說,canvas的繪制過程中圖片到畫布的過程中進行了像素的抽稀,畫布到屏幕像素時又進行了插值,所以造成圖片質量下降。

解決方案

  放大畫布的尺寸,但是canvas顯示尺寸不變;

  圖片像素――》canvas像素(畫布尺寸)――》css像素(顯示尺寸)――》屏幕實際像素

  60x60               60x60                                           30x30            60x60

  圖片像素――》實際像素

  1:                1 

而canvas的設計的時候正好有對象的屬性來分別管理畫布尺寸和顯示尺寸;canvas的width、height屬性用于管理畫布尺寸;canvas的style屬性中的width、height正好是顯示尺寸。

也就是說解決方案就是設置舞臺的尺寸和圖片像素的尺寸一致,顯示尺寸為正常顯示尺寸;假設canvas的顯示尺寸為窗口寬度,創建canvas的時候指定canvas的width屬性為2 * body.clientHeight;style.widht為body.clientHeight + 'px';

改變后的效果圖如下:

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永新县| 农安县| 茌平县| 耒阳市| 旺苍县| 潼南县| 宝清县| 湄潭县| 卓资县| 天门市| 兴安盟| 城市| 克山县| 安达市| 静安区| 黄冈市| 海口市| 沾益县| 昌都县| 宁远县| 夏津县| 临西县| 黄陵县| 荔波县| 汉川市| 盘锦市| 竹北市| 嘉峪关市| 汝南县| 扶风县| 东兰县| 长阳| 上杭县| 吉木乃县| 仪陇县| 新竹县| 甘泉县| 怀远县| 巴马| 南昌市| 镇江市|