html5 canvas 像素随机百分之十显示

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload = function ()
{
    var oc = document.getElementById(‘c1‘);
    var ogc = oc.getContext(‘2d‘);
    var ali = document.getElementsByTagName(‘li‘);

    for(var i = 0; i < ali.length; i++)
    {
        ali[i].onclick = function ()
        {
            var str = this.innerHTML;
            var h = 180;

            ogc.clearRect(0,0,oc.width,oc.height);
            ogc.font = h + ‘px impact‘;
            ogc.fillStyle = ‘red‘;
            ogc.textBaseline = ‘top‘;
            var w = ogc.measureText(str).width;
            ogc.fillText(str,(oc.width - w)/2,(oc.height - h)/2);
            var oimg = ogc.getImageData((oc.width - w)/2,(oc.height - h)/2,w,h);
            ogc.clearRect(0,0,oc.width,oc.height);

            var arr = randnum(w*h,w*h/10);
            var newimg = ogc.createImageData(w,h)
            for(var i = 0; i <arr.length; i++)
            {
                newimg.data[arr[i]*4] = oimg.data[arr[i]*4];
                newimg.data[arr[i]*4 + 1] = oimg.data[arr[i]*4 + 1];
                newimg.data[arr[i]*4 + 2 ] = oimg.data[arr[i]*4 + 2];
                newimg.data[arr[i]*4 + 3] = oimg.data[arr[i]*4 + 3];
            }

            ogc.putImageData(newimg,(oc.width - w)/2,(oc.height - h)/2);
        }
    }

    function randnum( iall,inow)
    {
        var arr = [];
        var newarr = [];

        for(var i = 0; i < iall; i++)
        {
            arr.push(i);
        }

        for(var i = 0; i< inow; i++)
        {
            newarr.push(arr.splice(Math.floor(Math.random()*arr.length),1));
        }

        return newarr
    }
}
</script>
<style>
body{
    background:pink;
    }
#c1{
    background:white;
    }
</style>
</head>

<body>
<canvas id="c1" width="400" height="400"></canvas>
<ul style="float:left;font-size:30px;">
    <li>新</li>
    <li>年</li>
    <li>快</li>
    <li>乐</li>
</ul>
</body>
</html>
时间: 2024-11-23 08:29:04

html5 canvas 像素随机百分之十显示的相关文章

[js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)

接着上文[js高手之路] html5 canvas系列教程 - 状态详解(save与restore),相信大家都应该玩过美颜功能,而我们今天要讲的就是canvas强大的像素处理能力,通过像素处理,实现反色,黑白,亮度,复古,蒙版,透明等美颜效果. getImageData:获取一张图片的像素数据 cxt.getImageData( x, y, width, height ) x:图片所在的x坐标 y: 图片所在的y坐标 width,height 要获取的像素区域 返回值是一个对象,对象包括一个d

HTML5 Canvas 获取网页的像素值。

我之前在网上看过一个插件叫做出JScolor   颜色拾取器  说白了就是通过1*1PX的DOM设置颜色值通过JS来获取当前鼠标点击位置DOM的颜色值. 自从HTML5 画布出来之后.就有更好的方法来获取了,比如郭阿里巴巴ICON矢量库 用的SVG和渐变来进行绘制: 我昨天用Canvas来绘制了一下,因为Canvas有现成的方法getImageData(x,y,width,height);这个方法返回一个属性data数组,也就是CanvasPixelArray 1个像素分别有四个值rgba(红,

[转]html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因

上次我们讲到,canvas有时候会出现1像素的线条模糊不清且好像更宽的情况,如下图:  这样的线条显然不是我们想要的. 这篇文章的目的就是弄清楚里面的原理,以及解决它. 大家都知道屏幕上最小的显示尺寸就是1像素,虽然小于1像素的东西可能显示不出来,但计算机可不管,他会试着画一下. 其实像素终究来说也是一个单位,假如我们把画布放大到足够大,足以看清楚每个像素,会是什么情况呢?大概是这个样子: 每个像素都有起止范围,如图所示,他们的范围从左起,跨过1像素,到右止. 如果我们画1像素线条的时候,遵循像

HTML5 Canvas 绘制二十四字真言钟表

代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <head> <title>钟表</title> </head> <body > <canvas id="myCanvu

HTML5 canvas 绘制精美的图形

HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C “工作草案” — 意味着它仍然处于开发阶段 — 它包含丰富的元素和属性,它们都支持现行的 HTML 4.01 版本规范.它还引入了几个新元素和属性,它们适用许多使用 web 页面的领域 — 音频.视频.图形.数据存储.内容呈现,等等.本文主要关注图形方面的增强:canvas. 新的 HTML5 canvas 是一个原生 HTML 绘图簿,用于 JavaScript 代码,不使用第三方工具.跨

html5 canvas 详细使用教程

导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制图像(图片平铺.裁剪.像素处理[不只图像.包括其他绘制图形]) 绘制文字 保存和恢复状态(context) 保存文件 结合setInterval制作动画 结语.demo下载   前言 <canvas></canvas>是html5出现的新标签,像所有的dom对象一样它有自己本身的属性.

html5 canvas 学习笔记(一)

一.canvas元素API canvas元素并未提供很多API,实际上他只提供了两个属性与三个方法: 1.canvas元素属性 width 属性:与 height 属性: canvas元素绘图表面的宽度,在默认状况下,浏览器会将canvas元素大小设定成与绘图表面大小一致,然而如果在css中覆写了元素大小,那么浏览器则会将绘图表面进行缩放,使之符合元素尺寸.其值为非负整数,默认值为300. 2.canvas元素方法 getContext()方法: 返回与该canvas元素相关的绘图环境对象,每个

赠书:HTML5 Canvas 2d 编程必读的两本经典

赠书:HTML5 Canvas 2d 编程必读的两本经典 这两年多一直在和HTML5 Canvas 打交道,也带领团队开发了世界首款基于HTML5 Canvas 的演示文档工具---AxeSlide(斧子演示,www.axeslide.com).在这个领域也积累了一些 经验,希望有机会和大家分享.今天是要给大家推荐两本这方面的书,同时会送一本书给大家. 要介绍的第一本书是我学习Canvas开发的入门书——<HTML5 Canvas核心技术:图形.动画与游戏开发>. 此书作者David Gear

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

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