HTML5 Canvas API中drawImage()方法的使用实例_html5教程技巧

drawimage()是一个很关键的方法,它可以引入图像、画布、视频,并对其进行缩放或裁剪。

一共有三种表现形式:

语法 1

JavaScript Code复制内容到剪贴板context.drawImage(img,dx,dy);  

语法 2

JavaScript Code复制内容到剪贴板context.drawImage(img,dx,dy,dw,dw);  

语法 3

立即学习“前端免费学习笔记(深入)”;

JavaScript Code复制内容到剪贴板context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh);   

来看一下坐标草图:
2016325103525710.png (360×360)

PS: 不要在样式中定义 的宽和高,否则,里面所画的图片会自动放大或者缩小。
三参数的是标准形式,可用于加载图像、画布或视频;五参数的除了可以加载图像还可以对图像进行指定宽高的缩放;九参数的除了缩放,还可以裁剪。各参数意义见下表。

参数 描述

img sx 可选。开始剪切的 x 坐标位置。 sy 可选。开始剪切的 y 坐标位置。 swidth 可选。被剪切图像的宽度。 sheight 可选。被剪切图像的高度。 x 在画布上放置图像的 x 坐标位置。 y 在画布上放置图像的 y 坐标位置。 width 可选。要使用的图像的宽度。(伸展或缩小图像) height 要使用的图像的高度。(伸展或缩小图像)

下面,我们加载一个图片试试。

JavaScript Code复制内容到剪贴板nbsp;html>    “zh”>           “UTF-8”>        drawImage()                 body { background: url(“./images/bg3.jpg”) repeat; }           #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }                  “canvas-warp”>        “canvas”>            你的浏览器居然不支持Canvas?!赶快换一个吧!!                      window.onload = function(){            var canvas = document.getElementById(“canvas”);            canvas.width = 800;            canvas.height = 600;            var context = canvas.getContext(“2d”);            context.fillStyle = “#FFF”;            context.fillRect(0,0,800,600);               var img = new Image();            img.src = “./images/20-1.jpg”;            img.onload = function(){                context.drawImage(img,200,50);            }        };            

运行结果:
2016325103645161.jpg (850×500)

创建相框:
这里,我们结合clip()和drawImage()以及三次贝塞尔曲线bezierCurveTo(),来为上面一个案例,加上一个心形的相框~

JavaScript Code复制内容到剪贴板nbsp;html>    “zh”>           “UTF-8”>        绘制心形相框                 body { background: url(“./images/bg3.jpg”) repeat; }           #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }                  “canvas-warp”>        “canvas”>            你的浏览器居然不支持Canvas?!赶快换一个吧!!                      window.onload = function(){            var canvas = document.getElementById(“canvas”);            canvas.width = 800;            canvas.height = 600;            var context = canvas.getContext(“2d”);            context.fillStyle = “#FFF”;            context.fillRect(0,0,800,600);               context.beginPath();            context.moveTo(400,260);            context.bezierCurveTo(450,220,450,300,400,315);            context.bezierCurveTo(350,300,350,220,400,260);            context.clip();            context.closePath();               var img = new Image();            img.src = “./images/20-1.jpg”;            img.onload = function(){                context.drawImage(img,348,240,100,100);            }        };            

运行结果:
2016325103713253.jpg (300×286)

是不是美美的?好啦,至此最关键的遮罩和图像裁剪以及说完了,其实在java.awt中,drawImage()也是一个至关重要的方法。有人说制作Java游戏界面,只要会用drawImage()就可以一招打遍天下~在Canvas里也是一样的。美工提供的素材基本都是图片,这个时候drawImage()对图片的处理就很重要了。即使基本功,也是对图片最重要的处理方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3127714.html

(0)
上一篇 2025年3月29日 20:59:34
下一篇 2025年3月29日 20:59:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用html5的FormData对象,通过 Ajax表单异步提交文件数据

    每次在向服务器提交文件对象数据是,总是需要借助各种三方插件来实现表单异步提交功能,还要为不同的界面去定制不同的插件css,相当繁琐。xmlhttprequest level 2 添加了一个新的接口——formdata。利用 formdata…

    编程技术 2025年4月4日
    100
  • html5的八大技术特征简介

    html5的八大技术特征简介:   HTML5 这个词获得了它自己的生命。无论是在开发者还是公众社区中,这个词的指代对象早已超过了简简单单一个标准的范畴,以至于来带了诸多的不解和争论。这套标准 需要一个标准。那就是,HTML5需要一组一致的…

    编程技术 2025年4月4日
    200
  • HTML5 Canvas 起步(1) – 基本概念

    什么是canvas  是一个新的 HTML 元素,这个元素在 HTML5 中被定义。这个元素通常可以被用来在 HTML 页面中通过 JavaScript 进行绘制图形、合成图像等等操作,也可以用来做一些动画。当然,目前 HTML5 规范还在…

    编程技术 2025年4月4日
    200
  • html5 worker 实例(一) 为什么测试不到效果

    很多人在测试worker api的时候,总是会出现异常,根本测试不到效果。 在使用worker的时候有个必须注意的地方,就是单纯的文本文件是实现不了worker的,你写的实际代码 必须部署到服务器(tomcat.jboss等)才能运行wor…

    编程技术 2025年4月4日
    200
  • html5 worker 实例(二) 图片变换效果

    worker的js代码img.js  onmessage = function(e) { postMessage(filter(e.data)) }; function filter(imgd) { var pix = imgd.pixel…

    编程技术 2025年4月4日
    200
  • 关于HTML5和CSS替换使用

    听到html5的都知道它的强大,如更多的描述性标记、较少依赖于插件的多媒体支持、跨文档消息通信、web sockets、客户端存储、更强大的表单、提升可访问性、先进的选择器、强大的视觉效果。费话不多说,细细说来 被废弃的标签和属性 废弃的标…

    编程技术 2025年4月4日
    100
  • 利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖

    摇一摇js脚本逻辑:接下来是移动端js脚本逻辑的实现,摇一摇的实现需借助html5新增的devicemotion事件,获取设备在位置和方向上的改变速度的相关信息,该事件的基本使用如下: if (window.DeviceMotionEven…

    编程技术 2025年4月4日
    100
  • H5的video标签操作摄像头

    这次给大家带来H5的video标签操作摄像头,H5的video标签操作摄像头注意事项有哪些,下面就是实战案例,一起来看一下。 详解HTML5 使用video标签实现选择摄像头功能 1. html // jquery reference //…

    编程技术 2025年4月4日
    100
  • H5的文本格式化使用方法

    这次给大家带来H5的文本格式化使用方法,H5文本格式化使用的注意事项有哪些,下面就是实战案例,一起来看一下。 注意事项对于我们编写注意事项也是非常重要的,各种各样的样式都需要使用到文本格式化,具体什么效果呢? 加粗文本斜体文本电脑自动输出这…

    编程技术 2025年4月4日
    100
  • HTML5离线应用与客户端存储的实现

    这篇文章主要介绍了html5离线应用与客户端存储的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 支持离线 Web 应用开发是 HTML5 的另一个重点。所谓离线 Web 应用,就是在设备不能上网…

    编程技术 2025年4月4日
    200

发表回复

登录后才能评论