先来理解canvas的这几个宽度和高度

canvas.width是画布的大小,而canvas.style.width是浏览器渲染的canvas的尺寸

第一个问题:画布的高度和宽度

画布的宽和高一定要在canvas标签中设置,如果是在css样式中设置,则不起作用,画布会按照默认尺寸width:300px,height:150px显示

//在标签中设置宽和高
<canvas id="canvas" width="324" height="622" >

除了直接在canvas标签设置,还可以在绘制的时候设置,注意画布的宽高不需要单位

canvas.width = 324;
canvas.height = 622;

第二个问题:绘制的图形被放大,图像模糊

这是由于手机的设备独立像素和物理像素不一致,设备像素比=物理像素/设备独立像素,大部分手机的设备像素比为2,这意味着100px的图像要放在200px中才可以正常显示

用devicePixelRatio可以获取到设备像素比,获取到像素比后,我们就可以控制图形的缩放比例

scale = window.devicePixelRatio;

刚刚说了,canvas.style.width是浏览器渲染的canvas的尺寸,那要想你画的图形正确且清楚的显示在画布中,你需要设置正确的style.width和style.height,如下图,注意加上单位。

canvas.style.width = canvas.width / scale + 'px';
canvas.style.height= canvas.height/ scale + 'px';

上面我们设置了画布的宽度为324,如果不设置style.width,则画的图形会被放大到2倍显示。

canvas画图被放大且模糊相关推荐

  1. matlab 显示图像 画布太大,canvas画图被放大且模糊的解决方法

    先来理解canvas的这几个宽度和高度 canvas.width是画布的大小,而canvas.style.width是浏览器渲染的canvas的尺寸 第一个问题:画布的高度和宽度 画布的宽和高一定要在 ...

  2. 解决canvas画图模糊的问题

    canvas 画图经常发现他是模糊的.解决这个问题主要从两个方面下手. 改变canvas渲染的像素 情况:画1像素的线条看起来模糊不清,好像更宽的样子. 解决方案 var ctx = canvas.g ...

  3. canvas 边界模糊_解决canvas画图模糊的问题

    canvas 画图经常发现他是模糊的.解决这个问题主要从两个方面下手. 改变canvas渲染的像素 情况:画1像素的线条看起来模糊不清,好像更宽的样子. 解决方案 var ctx = canvas.g ...

  4. canvas画图模糊问题

    使用canvas画图时,会遇到图片模糊的问题. 1.可以使用hidpi-canvas-polyfill: 举个栗子 var getPixelRatio = function(context) {var ...

  5. canvas画图出现模糊现象

    解决方法 使用canvas进行画图在分辨率高的设备上会出现模糊现象,解决这种问题的思路是: 首先讲画布的大小进行按照设备进行放大devicePixelRatio属性进行相应的调整,设个属性是表示浏览器 ...

  6. HTML5 canvas画图

    HTML5 canvas画图 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript). 不过,<canvas> 元素本身并没有绘制能力(它仅仅 ...

  7. canvas 画图移动端出现锯齿毛边的解决方法

    最近项目中用的canvas 越来越多,但是之前都是在canvas 上画图片, 最近这次是做一个折线图,自己画出来以后发现有锯齿,百度一番后找到了解决办法,记录到博客里. 声明一下,我用的是第二种方法, ...

  8. html5 canvas 画图移动端出现锯齿毛边的解决方法

    html5 canvas 画图移动端出现锯齿毛边的解决方法 参考文章: (1)html5 canvas 画图移动端出现锯齿毛边的解决方法 (2)https://www.cnblogs.com/dear ...

  9. 小程序---canvas画图,生成分享图片,画图文字换行

    小程序目前只支持转发,不支持分享朋友圈,为了能实现分享,很多线上小程序通过生成分享图片,保存到相册来给用户增加分享的可能. 具体思路及简要代码如下: 一:canvas画图drawCanvas:func ...

最新文章

  1. 泊松分布与正太分布在指导武器理论方面的使用
  2. Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
  3. context存放内容_Go语言爱好者周刊:第 58 期—关于 context
  4. eclipse log4j 日志直接定位到source
  5. 2013年7月28日web前端学习笔记-------head相关标签应用
  6. Sublime Text 3103 Crack 破解 注册码(亲测有效)
  7. BZOJ1079 [SCOI2008]着色方案 记忆化搜索
  8. 试验ConcurrentHashmap
  9. 一、MySQL查询学习笔记(基础查询、条件查询、排序查询、常见函数、分组查询 详解)
  10. html中表单的校验的插件,功能强大的jquery.validate表单验证插件
  11. JAVA中获得前一天的时间
  12. MFC开发IM-第二十五篇、往MFC编辑框最后面追加文本
  13. springboot国际化04
  14. 计算机电工电子怎么学,计算机在电子电工课中的应用
  15. arm模拟器手机版_基于ARM的模拟器
  16. 龙芯 python_在UOS20-龙芯(MIPS64EL)上安装 opencv-python
  17. Java 实现数字全排列
  18. Julia:Plots 包的属性汇总
  19. 弘辽科技:如何书写淘宝直通车创意标题才能带来更多的流量?
  20. Android高斯模糊、高斯平滑(Gaussian Blur)【2】

热门文章

  1. 迪拜(五)漫漫大漠 中
  2. python共享汽车管理系统vue
  3. java 繁体转简体_java代码实现简体繁体转换
  4. mp3怎么转换成m4r
  5. Git 创建远程分支与本地分支
  6. PHP数组循环遍历的四种方式
  7. 携程网案例中的图片颜色渐变
  8. Next.js读取本地文件
  9. 在SAP GUI中玩扫雷小游戏
  10. PERT2型热力管的材质及作用