十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本身他是按像素的方式渲染,所以你就1px的空心圆形,太小了,边缘会出现模糊,如果圆画大一点情况就会消失。或者你可以先平移下坐标,让你的中心坐标点是整数,再试看看。
创新互联建站专注于企业成都全网营销、网站重做改版、天宁网站定制设计、自适应品牌网站建设、H5响应式网站、商城开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为天宁等各大城市提供网站开发制作服务。
不光绘制图片,在高分屏下,绘制文字和线条都会出现模糊的现象,GitHub上有一个hidpi-canvas-polyfill可以很好的解决这个问题,但是没有对图片进行处理。如果你了解了原因,解决这个问题也很容易。
首先,引入上方这个polyfill;
然后,得到devicePixelRatio和backingStorePixelRatio的比例,可以使用下面的方法
var getPixelRatio = function(context) {
var backingStore = context.backingStorePixelRatio ||
context.webkitBackingStorePixelRatio ||
context.mozBackingStorePixelRatio ||
context.msBackingStorePixelRatio ||
context.oBackingStorePixelRatio ||
context.backingStorePixelRatio || 1;
return (window.devicePixelRatio || 1) / backingStore;
};
//调用
var ratio = getPixelRatio(ctx);
之后,在调用ctx.drawImage()的时候,给width和height乘以ratio,如下:
ctx.drawImage(document.querySelector('img'), 10, 10, 300 * ratio, 90 * ratio);
二种方法:CSS3的filter,加一层Canvas实现高斯模糊。
用filter的话,下面很多层总有个父级吧? 在这个父级上加 filter:blur(5px) 不就完了?粗暴点,body下一个半透明遮罩层,再一个wrapper包住所有内容。
用canvas实现高斯模糊,这个本质上就是将背景投影到canvas上,然后再高斯模糊,这个可以找相应插件。合金队也有,不过可能太大了。
第一步,打开HBuilder工具,新建静态页面blur.html,如下图所示:
第二步,在body/body插入一个div/div,再在div元素里插入五个img元素,分别设置为class,如下图所示:
第三步,设置五个img元素的样式,图片高度和宽度为250px,如下图所示:
第四步,预览该静态页面,在浏览器中查看页面效果,如下图所示:
第五步,分别设置class为two、three、four和five的样式,如下图所示:
6
第六步,再次预览该静态页面,利用IE浏览器查看效果,如下图所示:
通过 HTML5 实现 iOS 7 的实时毛玻璃模糊效果
img{ width: 240px; } .filter{ -webkit-filter: blur(5px); -moz-filter: blur(5px); -ms-filter: blur(5px); -o-filter: blur(5px); filter: blur(5px); } body原图: img src=""/ 效果图: img src="" class="filter"//body