解决canvas在移动端上绘制模糊的问题

在移动端上,使用canvas绘制图片或者是文字等东西都会莫名其妙的产生模糊或者锯齿出现,对于比较讲究的人来说,这是不可容忍的,下面介绍如何解决绘制模糊的问题

这是未经模糊处理前的代码

<div id="parent">

     <canvas id="canvas" width="180" heihgt="180"></canvas>

</div>

 <script>

         //画文字

         var canvas=doucument.getElementById("canvas");

        var ctx=canvas.getContext("2d");

        ctx.beginPath();

        ctx.font="12px normal";

        ctx.fillStyle="#999";

        ctx.fillText("我是不是模糊的",10,20);

</script>


这样画出来的文字,在电脑上看大多没有问题,但是放到移动端一看,就会出现模糊的情况,至于为何会出现模糊,这里不做深究。

下面是解决方案

1 首先设置canvas的宽度和高度是原来的2倍

2 使用ctx.scale(2,2)设置绘制的东西也放大2倍

3 在canvas的父元素上使用缩放,使用css3的 transform:scale(0.5,0.5)即可,意思为缩放到原来的2倍大小,和canvas放大两倍刚好抵消掉。

<style>

      #parent{

                transform:scale(0.5,0.5);//父元素缩小两倍

                 zoom:0.5;

   }

</style>

<div id="parent">

       <canvas id="canvas" width="360" height="360"></canvas>   //设置大小为原来的2倍

</div>

//画文字

var canvas=doucument.getElementById("canvas");

var ctx=canvas.getContext("2d");

ctx.scale(2,2);//绘制也放大两倍

ctx.beginPath();

ctx.font="12px normal";

ctx.fillStyle="#999";

ctx.fillText("我是不是模糊的",10,20);




这样经过三个步骤之后,基本上就可以解决在移动端上模糊的问题了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,195评论 2 32
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 9,369评论 3 40
  • 啥是canvas? HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript)。不过, 元素本身...
    kiaizi阅读 4,172评论 0 4
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 5,473评论 0 4
  • 正“清纯”的我十六岁。和很多人一样,想象着第一次和自己爱的那个人会是怎样相遇,会是怎样说第一句话,但让没想到的...
    哎哟妈呀没事阅读 1,499评论 0 0

友情链接更多精彩内容