- 1
- 0
- 约5.46千字
- 约 12页
- 2024-04-23 发布于上海
- 举报
Html5中图像的绘制与操作
canvas更有意思的一项特性就是图像操作能力。可以用于动态的图像合成或者作为图
形的背景,以及游戏界面(Sprites)等等。浏览器支持的任意格式的外部图片都可以使用,
比如NG、GIF或者JEG。你甚至可以将同一个页面中其他canvas元素生成的图片作
为图片源。
引入图像到canvas里需要以下两步基本操作:
1、获得一个指向HTMLImageElement的对象或者另一个canvas元素的引用作为源,
也可以通过提供一个URL的方式来使用图片
2、使用drawImage()函数将图片绘制到画布上
获得需要绘制的图片
canvas的AI可以使用下面这些类型中的一种作为图片的源:
HTMLImageElement
这些图片是由Image()函数构造出来的,或者任何的img元素
HTMLVideoElement
用一个HTML的video元素作为你的图片源,可以从视频中抓取当前帧作为一个
图像
HTMLCanvasElement
可以使用另一个canvas元素作为你的图片源。
ImageBitmap
这是一个高性能的位图,可以低延迟地绘制,它可以从上述的所有源以及其它几种源
中生成。
这些源统一由CanvasImageSorce类型来引用。
有几种方式可以获取到我们需要在canvas上使用的图片。
使用相同页面内的图片
我们可以通过下列方法的一种来获得与canvas相同页面内的图片的引用:
docment.images集合
docment.getElementsByTagName()方法
如果你知道你想使用的指定图片的ID,你可以用docment.getElementById()获得
这个图片
使用其它域名下的图片
在HTMLImageElement上使用crossrigin属性,你可以请求加载其它域名上的图
片。如果图片的服务器允许跨域访问这个图片,那么你可以使用这个图片而不污染canvas,
否则,使用这个图片将会污染canvas。
使用其它canvas元素和引用页面内的图片类似地,用
docment.getElementsByTagName或docment.getElementById方法来获取其它
canvas元素。但你引入的应该是已经准备好的canvas。
一个常用的应用就是将第二个canvas作为另一个大的canvas的缩略图。
由零开始创建图像
或者我们可以用脚本创建一个新的HTMLImageElement对象。要实现这个方法,
我们可以使用很方便的Image()构造函数。
varimg=newImage();//创建一个img元素
img.src=myImage.png;//设置图片源地址
当脚本执行后,图片开始装载。
若调用drawImage时,图片没装载完,那什么都不会发生(在一些旧的浏览器中可
能会抛出异常)。因此你应该用load事件来保证不会在加载完毕之前使用这个图片:
varimg=newImage();//创建img元素
img.onload=fnction(){
//执行drawImage语句
}
img.src=myImage.png;//设置图片源地址
如果你只用到一张图片的话,这已经够了。但一旦需要不止一张图片,那就需要更加
复杂的处理方法。
通过data:url方式嵌入图像
我们还可以通过data:rl方式来引用图像。Datarls允许用一串Base64编码的
字符串的方式来定义一个图片。
img.src=
data:image/gif;base64,R0lGDlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAAL
AAsA
您可能关注的文档
- CANOpen编码器说明书.pdf
- 中文CorelDraw入门(第1--8课时).pdf
- (完整word版)胜任素质模型的建立步骤.pdf
- (整理)空调统一设计规范和要求.pdf
- (完整word版)新概念英语第3册课文word版.pdf
- (完整word版)中央空调系统运行管理制度.pdf
- 人力资源管理师(二级):招聘与配置考试题库.pdf
- 2002版医疗器械分类目录全解.pdf
- 2024届福建省各市区数学九上期末经典试题含解析.pdf
- 2013年高考真题(福建卷)--英语(解析版).pdf
- (2026)教师招聘考试题库(附答案).docx
- (2026)教师招聘义务教育道德与法治课程方案(2022版)必考题库及答案.docx
- 2026部编版三年级语文下册全册教案.pdf
- (2026)部编版小学二年级语文下册全册教案.docx
- 高温合金行业研究报告:AI算力与航空航天共振,驱动需求加速释放2026.2.pdf
- 2025年酒店业人工智能(AI)革命研究报告(英).pdf
- 山东省菏泽市郓城县2025-2026学年度第一学期期末教学质量监测八年级英语试题(无答案).pdf
- 内蒙古自治区锡林郭勒盟2026届高三上学期期末测试政治试卷(含答案).pdf
- 贵州省贵阳市南明区2025-2026学年八年级上学期期末地理试题(无答案).pdf
- 山东烟台市栖霞市2025-2026学年八年级上学期期末道德与法治试题(无答案).pdf
原创力文档

文档评论(0)