从零绘制图像参考模板范本.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《从零绘制图像参考模板范本.doc》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 绘制 图像 参考 模板 范本
- 资源描述:
-
1、18从零绘制图像这一节我们可以开始制作一些真正漂亮的图像了,例如从创建像素开始制作自己的图像。要创建一些像素,需要调用2D渲染上下文的createImageData方法。通过传入宽度和高度,它会返回一个包含所有常规属性的ImageData对象:width、height和(最重要的)data。data属性所包含的CanvasPixelArray将保存新的像素,此时它们是不可见的,因为它们都被设置为透明黑色。在下一个例子中,我们将创建一个包含200200透明像素区域的ImageData对象,然后将它们全部修改成红色。var imageData = context.createImageData(2
2、00, 200); var pixels = imageData.data; 变量pixels仅用作访问CanvasPixelArray中的像素的快捷方式。修改颜色值与查询颜色值一样简单:都是读写CanvasPixelArray中的颜色值。如果想将所有像素修改为红色,那么需要使用for循环语句遍历每一个像素。var numPixels = imageData.width*imageData.height; for (var i = 0; i numPixels; i+) pixelsi*4 = 255; / Red pixelsi*4+1 = 0; / Green pixelsi*4+2 =
3、0; / Blue pixelsi*4+3 = 255; / Alpha ; 变量numPixels保存了ImageData对象中的像素个数,它就是for循环的执行次数。在每一次循环过程中,我们都使用一个简单算法给每个像素赋予颜色值。每个像素都有4个颜色值,所以将像素个数乘以4就能够得到该像素的红色颜色值在CanvasPixelArray中的索引位置。然后,就可以将红色颜色值设置为255(全色),绿色和蓝色设置为0,而阿尔法值设置为255,这样它就变成不透明的r。非常简单!按照目前情况,我们所做的就是创建一个ImageData,然后将像素修改为红色。现在画布上还看不见任何效果,因为我们还没有将
4、新像素画到上面。为此,我们需要调用2D渲染上下文的putImageData方法。这个方法可以接受3个或7个参数:ImageData对象、绘制像素数据的原点坐标(x,y)、所谓脏矩形(dirty rectangle)的原点坐标(x,y),脏矩形的宽度和高度。在这个例子中,你暂时可以不考虑脏矩形的用途,它的作用只是定义ImageData对象中需要绘制的像素。context.putImageData(imageData, 0, 0); 这样会在画布原点绘制新的红色像素(参见图1)。图1 从零开始创建和绘制像素随机绘制像素只有红色像素似乎太单调,让我们更进一步,绘制一些完全随机的颜色。这也很简单。fo
5、r (var i = 0; i numPixels; i+) pixelsi*4 = Math.floor(Math.random()*255); / Red pixelsi*4+1 = Math.floor(Math.random()*255); / Green pixelsi*4+2 = Math.floor(Math.random()*255); / Blue pixelsi*4+3 = 255; / Alpha ; 通过修改前一个例子中设置颜色值的代码,我们可以插入0至255之间的随机数。我们仍然保持阿尔法值为255,否则有一些像素会变成透明的。注意,我们使用了Math.floor来向
6、下舍入产生的随机数(例如,150.456会变成150)。结果,我们得到一些杂乱的像素点(参见图2)。注意:Math.random可以产生0到1之间的随机小数将它与另一个数字相乘,就可以得到0与该数字(乘数)之间的随机数。例如,Math.random()*2 55将得到0与255之间的一个随机数。图2 随机设置在画布上绘制的像素的颜色创建马赛克效果但是,杂乱的像素并不是画布的最佳用途。那么创建一个马赛克效果呢?肯定更有意思一些。它的实现方法是,创建一个新像素区域,然后将它分割到一个栅格中,并为栅格每个片段设置随机颜色。最复杂的部分是计算出每个像素应该落到哪个片段,这样相同的片段就可以设置相同的颜
展开阅读全文