canvas模糊事件处理

不知道大家项目中有没有用到canvas时还有时候会出现模糊的情况;

具体推测可能是屏幕改变了,然而canvas的渲染对象并没有跟着一起变;

这里简单介绍个对象,window.devicePixelRatio→详细介绍http://www.zhangxinxu.com/wordpress/2012/08/window-devicepixelratio/

window.devicePixelRatio是设备上物理像素和设备独立像素(device-independent pixels (dips))的比例。
公式表示就是:window.devicePixelRatio = 物理像素 / dips

var scale = window.devicePixelRatio;

具体用到canvas里的时候就是所有的长度单位都要乘以这个scale变量就能解决了;

时间: 2024-10-15 11:38:37

canvas模糊事件处理的相关文章

关于Canvas模糊的问题

前言:当我在几个多月前,第一次在移动设备上使用canvas绘制内容的时候,我惊然地发现我绘制的图片以及文字居然都是模糊的!我的内心几乎是崩溃的,因为那是我第一个使用canvas的项目,是一个基于微信端的音乐同步消除文字的HTML5小游戏.由于性能上要过关,所以那次我才决定要把canvas搬上战场的.虽然那次的文字是模糊的,但项目还是上线了.我不甘心,所以那时我一连几周都在抽时间研究解决方案.那么问题来了,为什么canvas绘制的内容会在移动设备(视网膜屏幕)上显示模糊呢?在解答这个问题之前,先提

HTML5 Canvas 的事件处理---转

DOM是Web前端领域非常重要的组成部分,不仅在处理HTML元素时会用到DOM,图形编程也同样会用到.比如SVG绘图,各种图形都是以DOM节点的形式插入到页面中,这就意味着可以使用DOM方法对图形进行操作.比如有一个<path id="p1">元素,可以直接用jquery增加click事件$('#p1').click(function(){…})".然而这种DOM处理方法在HTML5的Canvas里不再适用,Canvas使用的是另外一套机制,无论在Canvas上绘

H5 canvas绘制出现模糊的问题

在之前做移动端小游戏幸运转盘.九宫格转盘,使用到了 canvas ,也是第一次在项目中使用 canvas 来实现. 近期测试人员反应 canvas 绘制的内容太模糊,心想着用 canvas 绘制出来的怎么会模糊,先前也有考虑到适配不同尺寸的移动设备,担心直接使用 img 或者设置 background 会使图片拉伸而变得模糊,所以使用 canvas 来绘制转盘与九宫格,精确的计算每个物体所在的坐标以及尺寸绘制出来的,怎么会模糊. 然而将绘制的内容与页面中的其他文字或者图片作对比后,发现使用 ca

SVG 学习(二)--- 创建组合交互式应用

接着上一节的内容,本次学习主要介绍SVG组合式应用以及js交互式应用! 1.组合式应用 绘制两棵带有投影效果的树! <svg width="400" height="600"> <defs> <pattern id="grap" patternUnits="userSpaceOnUse" x="0" y="0" width="100" h

关于JavaScript中事件的一些重要说明

1,JavaScript异步回调 <script language="javascript"> //注册回调函数loaded到处理函数window.onload上 window.onload = loaded; //把方法window.alert地址传递给show函数 var show = window.alert; function loaded(){ show("success"); } </script> 2,事件对象 下面的js实现当

Canvas绘制线条模糊的解决方案

前段时间,做一个跨平台app项目,需要绘制分时图和K线图.找了很多开源的js的图表库,包括echarts.highcharts等等,都不是很满意,原因有2: 1.太臃肿,我实际上只要一个分时和一个K线图表,最多搭配几个线形图 2.不满足需求.主要就是分时图,国内玩的js图表库,几乎都没有分时图.都是用1分钟线的收盘价线来做的,和中国股民的使用习惯完全不搭界. 多年前有人开源了一个js绘制股票图形的库,叫做html54stock,图像表现上很符合中国人的使用习惯,但是也有问题: 1.封装不好,很多

html5 Canvas画图3:1px线条模糊问题

点击查看原文地址: html5 Canvas画图3:1px线条模糊问题 本文属于<html5 Canvas画图系列教程> 接上一篇canvas画线条教程 上次我们讲到,canvas有时候会出现1像素的线条模糊不清且好像更宽的情况,如下图: 这样的线条显然不是我们想要的. 这篇文章的目的就是弄清楚里面的原理,以及解决它. 大家都知道屏幕上最小的显示尺寸就是1像素,虽然小于1像素的东西可能显示不出来,但计算机可不管,他会试着画一下. 其实像素终究来说也是一个单位,假如我们把画布放大到足够大,足以看

基于HTML5 Canvas实现的图片马赛克模糊特效

效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素把图像转换成像素形式,这基本上是一个为canvas imageData功能的简单演示. 此脚本现存于GitHub上,您可以在那里下载到脚本和示例.在GitHub上查看像素化资源 二.选项此方法接受一个对象数组,每个对象都拥有一组选项.resolution : 渲染像素间的像素距离,必须的.shape

HTML5 Canvas实现的图片马赛克模糊特效

要想让图片像素化,首先调用如下脚本:<script type="text/javascript" src="http://hovertree.com/texiao/html5/1/js/close-pixelate.js"></script>然后调用方法closePixelate,更具体的是:图片dom.closePixelate(选项参数) 此脚本可以应用于各类图片.根据HTML5规范,浏览器禁止任何外部托管图片上使用getImageDat