欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 關于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繪制模糊問題的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日本黄色特级片| 国产视频一区二区在线| 亚洲欧美成aⅴ人在线观看| 国产乱人伦精品一区二区在线观看| 中文成人无字幕乱码精品区| 欧美日韩一区二区三区在线| 亚洲美女免费视频| 91美女在线观看| 在线免费观看不卡av| 亚洲美女免费视频| 国产人妻精品久久久久野外| 在线观看区一区二| 一区二区在线观看免费| 91首页免费视频| 欧美性一二三区| 一区二区三区在线观看动漫| 国产嫩草影院久久久久| 精品一区二区成人精品| 欧美激情 一区| 国产日韩高清在线| 风间由美一区二区av101| 国产激情无码一区二区三区| 中文字幕av在线一区二区三区| 国产99久久精品| 日韩欧美123区| 亚洲欧美色综合| 国产无套精品一区二区三区| 911精品国产一区二区在线| 日本成人在线电影网| 五月婷六月丁香| 中文字幕av一区 二区| gogo大胆日本视频一区| 欧美色视频在线| 日韩av在线发布| 免费在线观看a视频| 中文字幕不卡的av| 宇都宫紫苑在线播放| 91精品国产91久久久久久一区二区| 日本美女一区二区三区视频| 日本高清黄色片| 中文字幕一区二区三区蜜月| 欧美xxxx黑人| 日韩欧美国产综合一区| 国产精品综合网| 欧美专区亚洲专区| 日本视频一区二区三区| 成人信息集中地| 亚洲精品国产品国语在线app| 91精品又粗又猛又爽| 久久综合狠狠综合久久综合88| 国产suv精品一区二区6| 精品视频在线视频| 精品一区二区免费看| 一本色道久久综合亚洲精品按摩| 亚洲成av人综合在线观看| 国产在线综合视频| 尤物视频一区二区| 精品无人区无码乱码毛片国产| 国产精品美女久久久久高潮 | 欧美体内she精高潮| 日韩中文欧美在线| 成人免费精品动漫网站| 午夜视频一区二区三区| 日韩av网站在线播放| 亚洲午夜激情网站| 99精品全国免费观看| 亚洲在线观看免费| 夫妇露脸对白88av| 亚洲一区二区视频在线观看| 特级西西www444人体聚色| 伊人一区二区三区| 国产精品无码无卡无需播放器| 伊人一区二区三区| 任你操精品视频| 亚洲成人动漫在线观看| 永久免费看片直接| 热久久免费视频| 在线一区二区三区四区五区 | 一区二区三区四区精品在线视频 | 九九**精品视频免费播放| 91成人网在线| 久久黄色级2电影| 欧美性感一类影片在线播放| 韩国v欧美v亚洲v日本v| 欧美精选午夜久久久乱码6080| 国产成人一区二区精品非洲| 欧美一区二区日韩| 91丝袜美女网| 国产女主播视频一区二区| 丰满大乳奶做爰ⅹxx视频 | 成人爱爱电影网址| 精品国产露脸精彩对白| 在线播放第一页| 成人免费一区二区三区视频| 久久日免费视频| 日韩在线一区二区三区| 欧美午夜精品久久久久久孕妇| 国产精品影音先锋| 精品国产sm最大网站免费看| 好吊色视频一区二区三区| 一区二区三区 在线观看视频| 97在线观看免费高| 精东粉嫩av免费一区二区三区| 91精品在线麻豆| 日本成人在线免费| 亚洲日本成人在线观看| 多男操一女视频| 国内精品自线一区二区三区视频| 日韩一区二区三区电影| 久久久久国产免费| 一区二区三区在线看| 色综合天天综合给合国产| 国产91精品露脸国语对白| 久久老女人爱爱| av男人的天堂av| 日韩av高清在线观看| 欧美精品日日鲁夜夜添| 精品人妻一区二区三| 亚洲天堂免费在线观看视频| 黄色一级片中国| 成人三级伦理片| 国产精品美女久久久久高潮| av资源在线免费观看| 国产乱色国产精品免费视频| 久久免费偷拍视频| 精品一区二区6| 国产麻豆成人传媒免费观看| 久久久精品中文字幕麻豆发布| av永久免费观看| 国产精品一级在线| 欧美—级在线免费片| 国产又粗又硬又长又爽| 成人精品在线视频观看| 中文字幕一区二区三区在线观看 | 三级欧美在线一区| 9191久久久久久久久久久| 国产精品扒开腿做爽爽爽a片唱戏| 亚洲国产精品一区二区www在线| 欧美猛男男办公室激情| 污污污www精品国产网站| 日韩影院在线观看| 精品88久久久久88久久久| 五月婷六月丁香| 成人深夜福利app| 一区二区三区精密机械公司| 欧美猛男超大videosgay| 一级做a爰片毛片| 黄色资源网久久资源365| 欧美激情在线一区二区三区| 免费成年人视频在线观看| av电影天堂一区二区在线| 亚洲一区二区三区视频在线播放 | 成av人片一区二区| 亚洲精品乱码久久久久久久久| 欧美性感一类影片在线播放| 久久久午夜精品福利内容| 麻豆一区二区三| 国产精品素人一区二区| 91精品1区2区| 逼特逼视频在线观看| 六月丁香婷婷久久| 国产精品每日更新在线播放网址 | 日本美女视频网站| 日本成人在线网站| 欧美激情在线一区二区| 在线亚洲人成电影网站色www| 国产婷婷在线观看| 国产中文一区二区三区| 亚洲视频一区二区在线| 欧美夫妻性生活| 国产三级在线观看完整版| 99精品偷自拍| 免费在线视频一区| 国产精品国产精品国产专区不片| 欧美色图片你懂的| 日本欧美一区二区三区不卡视频| 成人av免费观看| 日本美女一区二区| 国产精品国产三级国产aⅴ中文 | 99久久综合精品| 日本va欧美va精品发布| 国产精品成人一区二区艾草 | 中文字幕永久免费| 国内精品在线播放| 亚洲午夜三级在线| 国产女人18水真多18精品一级做| 欧美日韩一级大片网址| 国产精品无码无卡无需播放器| 最好看的中文字幕| 国产麻豆精品在线观看| 亚瑟在线精品视频| 国产精品久久久久久妇女6080| 欧美一区二区三区不卡| 高h视频免费观看| 欧美成人午夜精品免费| 91一区一区三区| 国内精品在线播放| 日韩精品一级中文字幕精品视频免费观看 | 亚洲一区视频在线| 国产欧美日本一区视频|