校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 關于canvas繪制模糊問題的解決方法

關于canvas繪制模糊問題的解決方法

熱門標簽:惡搞電話機器人 智能電銷機器人被禁用了么 ok電銷機器人 高德地圖標注商戶怎么標 電話機器人技術 黃石ai電銷機器人呼叫中心 如何查看地圖標注 地圖標注軟件打印出來 欣鼎電銷機器人 效果

模糊原因

首先,需要理解canvas的展示機制。

<canvas id="map" width="375" height="667"></canvas>

我繪制了一張375px的canvas,iphone6的寬度也是375px,ok,canvas鋪滿了整個屏幕。

那么canvas的大小就是375px,canvas類似于圖片,一張375px的圖片,我們就把它當做是圖片來看就好了。我,尖沙咀段坤說的。

如果遇到了屏幕寬度400px的手機,那么圖片會 拉伸,canvas也會拉伸,拉伸則必然會模糊。

那么iphone6確實是375px寬度的手機,還是會出現模糊問題,為什么呢?手機端會存在高清屏的問題。也就是我們說的2倍屏或者3倍屏,也叫作屏幕的DPI。高清屏在繪制界面時,會把2px的寬度渲染成1px,也就達到了高清的效果。也就是說,我們在高清屏下看到的375px其實是750個像素點繪制出來的,canvas其實是375px被拉伸到了750px再展示出來的,拉伸則必然會模糊。

好了,模糊的原因知道了,其實就是高清屏所帶來的麻煩,怎么解決呢?

解決方法

如果是2倍屏,我們把設計圖上375px的canvas畫成750px不就解決了?

設置canvas樣式

這里我們不寫width和height,而直接寫style。把它看成是圖片,我們先不管圖片原寬高是多少,不管拉伸還是壓縮,直接讓他鋪滿整個屏幕。style里寫的寬高不是圖片的原寬高,也就是style里寫的寬高并不是canvas的真實寬高

<canvas id="map" style="width: 375px;height:330px;"></canvas>

設置canvas寬高

上面的style并不是canvas的真實寬高,那么我們如何設置它的寬高呢?

普通屏,2倍屏,3倍屏如果分別適配?

<canvas id="map" style="width: 375px;height:330px;"></canvas>

<script>
let canvas = document.querySelector('#map');
// 獲取到屏幕倒是是幾倍屏。
let getPixelRatio = function(context) {
  var backingStore = context.backingStorePixelRatio ||
    context.webkitBackingStorePixelRatio ||
    context.mozBackingStorePixelRatio ||
    context.msBackingStorePixelRatio ||
    context.oBackingStorePixelRatio ||
    context.backingStorePixelRatio || 1;
   return (window.devicePixelRatio || 1) / backingStore;
};
 // iphone6下得到是2 
const pixelRatio = getPixelRatio(canvas);
// 設置canvas的真實寬高
canvas.width = pixelRatio * canvas.offsetWidth; // 想當于 2 * 375 = 750 
canvas.height = pixelRatio * canvas.offsetHeight;
</script>

那么canvas的寬高就變成了下圖這樣,750寬度的canvas,如果你是2倍屏我就剛好能夠適應?。?!

設置后的寬高

開始畫點

比如,375的設計圖上,有一個半徑為2px的圓點,點的位置是x:100,y:100。

那么我們現在canvas的寬度是750,寬高變成了之前的2倍。為了視覺上位置保持不變,我們畫點的位置就應該是x:100*pixelRatio,y:100*pixelRatio。

完整代碼如下:

<canvas id="map" style="width: 375px;height:330px;"></canvas>

<script>
let canvas = document.querySelector('#map');
// 獲取到屏幕倒是是幾倍屏。
let getPixelRatio = function(context) {
  var backingStore = context.backingStorePixelRatio ||
    context.webkitBackingStorePixelRatio ||
    context.mozBackingStorePixelRatio ||
    context.msBackingStorePixelRatio ||
    context.oBackingStorePixelRatio ||
    context.backingStorePixelRatio || 1;
   return (window.devicePixelRatio || 1) / backingStore;
};
 // iphone6下得到是2 
const pixelRatio = getPixelRatio(canvas);
// 設置canvas的真實寬高
canvas.width = pixelRatio * canvas.offsetWidth; // 想當于 2 * 375 = 750 
canvas.height = pixelRatio * canvas.offsetHeight;

// 開始畫點
let ctx = canvas.getContext("2d");
ctx.beginPath();
 // 375設計圖上的位置和尺寸都應該*pixelRatio 因為我們現在的canvas是750
ctx.arc(100*pixelRatio, 100*pixelRatio, 2*pixelRatio, 0, 2 * Math.PI);
ctx.fillStyle = "#fff";
ctx.fill();
ctx.closePath();

// ...你的其他代碼
</script>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:金昌 中山 盤錦 赤峰 聊城 萍鄉 阿壩 綏化

巨人網絡通訊聲明:本文標題《關于canvas繪制模糊問題的解決方法》,本文關鍵詞  關于,canvas,繪制,模糊,問,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于canvas繪制模糊問題的解決方法》相關的同類信息!
  • 本頁收集關于關于canvas繪制模糊問題的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美三级视频在线观看| 日本一二三不卡| 久久亚洲二区三区| 亚洲一级电影视频| 国产成人精品1024| 91麻豆精品国产91久久久资源速度| 久久精子c满五个校花| 日韩高清在线不卡| 欧美性xxxxxxxx| 国产精品初高中害羞小美女文| 天天综合日日夜夜精品| 色综合久久久久综合| 国产网红主播福利一区二区| 日日摸夜夜添夜夜添精品视频| 99久久精品国产观看| 国产精品国产三级国产专播品爱网| 美脚の诱脚舐め脚责91| 欧美日韩国产小视频| 一区二区三区在线观看视频 | 久久精品这里都是精品| 日本视频一区二区三区| 欧美熟乱第一页| 亚洲女爱视频在线| 一本久久a久久精品亚洲| 18成人在线观看| av资源网一区| 中文字幕欧美一区| 91色婷婷久久久久合中文| 亚洲欧美在线另类| 91亚洲男人天堂| 中文字幕一区二区三区四区不卡| 成人国产一区二区三区精品| 国产精品理伦片| 成人av综合一区| 《视频一区视频二区| 成人精品小蝌蚪| 亚洲美女少妇撒尿| 欧美亚洲综合网| 日本免费新一区视频| 日韩视频一区二区| 国产盗摄一区二区三区| 国产精品午夜久久| youjizz久久| 亚洲精品视频观看| 91精品国产综合久久婷婷香蕉 | 久久精品国产免费看久久精品| 日韩欧美国产一区在线观看| 国产一区免费电影| 亚洲欧美偷拍另类a∨色屁股| 91捆绑美女网站| 亚洲3atv精品一区二区三区| 在线91免费看| 国产精品小仙女| 一区二区三区加勒比av| 欧美大片拔萝卜| 成人h精品动漫一区二区三区| 亚洲裸体在线观看| 日韩一区二区三| 成人一区二区三区视频在线观看| 亚洲欧美激情视频在线观看一区二区三区| 欧美在线视频日韩| 久久精品久久精品| 最新久久zyz资源站| 777精品伊人久久久久大香线蕉| 国产在线精品免费| 洋洋成人永久网站入口| 欧美www视频| 91高清在线观看| 国内欧美视频一区二区 | 中文在线资源观看网站视频免费不卡 | 国产99久久精品| 偷拍日韩校园综合在线| 国产精品亲子乱子伦xxxx裸| 欧美美女视频在线观看| 国产成人激情av| 日韩成人伦理电影在线观看| 国产精品日韩成人| 欧美成人vr18sexvr| 色婷婷精品大视频在线蜜桃视频| 美腿丝袜一区二区三区| 一区二区三区精品在线| 国产精品色呦呦| 精品播放一区二区| 在线观看www91| www.一区二区| 国产在线国偷精品免费看| 亚洲第一主播视频| 一区二区在线免费观看| 久久久亚洲国产美女国产盗摄| 欧美精品一二三区| 色猫猫国产区一区二在线视频| 国精产品一区一区三区mba视频| 亚洲国产精品一区二区久久恐怖片| 中文字幕国产精品一区二区| 日韩欧美卡一卡二| 欧美区一区二区三区| 91在线观看一区二区| 国内成人免费视频| 久久se精品一区精品二区| 五月综合激情婷婷六月色窝| 亚洲美女视频在线| 中文字幕亚洲视频| 中文字幕欧美国产| 国产女同互慰高潮91漫画| 精品福利一二区| 欧美成va人片在线观看| 日韩色视频在线观看| 欧美老肥妇做.爰bbww视频| 在线观看免费亚洲| 色先锋aa成人| 日本丰满少妇一区二区三区| 99久久精品免费看国产| 91香蕉视频污| 在线观看免费一区| 欧美日韩五月天| 欧美精品日韩一区| 日韩一区二区三区免费观看| 91精品国产综合久久香蕉麻豆| 欧美乱妇23p| 欧美成人一区二区三区| 欧美电影免费观看完整版| 精品国产一区二区精华| 中文字幕第一区综合| 国产精品久久免费看| 一区二区三区精品视频在线| 亚洲一区二区三区四区在线观看| 亚洲国产成人tv| 久草这里只有精品视频| 国产一区欧美二区| 99视频热这里只有精品免费| 色美美综合视频| 69av一区二区三区| 久久久亚洲精品一区二区三区| 亚洲国产精品成人综合 | 中文字幕一区二区三区视频| 国产精品久久久久婷婷| 亚洲人亚洲人成电影网站色| 亚洲综合色自拍一区| 亚洲国产一二三| 美腿丝袜一区二区三区| 粉嫩久久99精品久久久久久夜| 91在线看国产| 日韩美女天天操| 国产精品免费aⅴ片在线观看| 一区二区三区精品在线| 久久精品国产成人一区二区三区| 国产成人8x视频一区二区| 日本精品免费观看高清观看| 欧美另类变人与禽xxxxx| 国产日韩精品一区二区三区| 最好看的中文字幕久久| 久久精品国产一区二区三| 91香蕉视频黄| 欧美大片一区二区三区| 亚洲激情中文1区| 国产自产高清不卡| 欧美色视频一区| 欧美国产97人人爽人人喊| 日产国产高清一区二区三区| 国产成人精品亚洲日本在线桃色| 欧美吻胸吃奶大尺度电影| 国产欧美视频在线观看| 亚洲第一会所有码转帖| 成人蜜臀av电影| 精品久久久久久久久久久久包黑料 | 日本成人在线不卡视频| av电影天堂一区二区在线观看| 欧美福利一区二区| 亚洲柠檬福利资源导航| 国产精品一二三四区| 欧美福利电影网| 一区二区三区欧美日韩| 国产麻豆精品在线| 日韩一区二区三区高清免费看看| 亚洲日本在线看| 成人免费三级在线| 精品国产髙清在线看国产毛片| 五月婷婷激情综合| 欧美综合欧美视频| 中文字幕一区在线观看视频| 国产一区二区三区四| 欧美一区二区视频在线观看2020| 亚洲色图在线视频| www.在线欧美| 中文文精品字幕一区二区| 六月丁香婷婷久久| 欧美一区二区美女| 婷婷夜色潮精品综合在线| 在线观看国产91| 亚洲一区日韩精品中文字幕| 99re6这里只有精品视频在线观看| 精品国产a毛片| 国产在线看一区| 精品久久久久久最新网址| 麻豆成人免费电影| 日韩欧美你懂的| 国产一区二区三区久久悠悠色av| xnxx国产精品| 国产精品正在播放| 欧美激情一区二区三区四区|