iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >HTML5 Canvas切片Slicing的示例分析
  • 491
分享到

HTML5 Canvas切片Slicing的示例分析

2024-04-02 19:04:59 491人浏览 八月长安
摘要

小编给大家分享一下HTML5 canvas切片Slicing的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! draw

小编给大家分享一下HTML5 canvas切片Slicing的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

drawImage 方法的第三个也是最后一个变种有8个新参数,用于控制做切片显示的。

drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)

第一个参数和其它的是相同的,都是一个图像或者另一个 canvas 的引用。其它8个参数最好是参照右边的图解,前4个是定义图像源的切片位置和大小,后4个则是定义切片的目标显示位置和大小。

切片是个做图像合成的强大工具。假设有一张包含了所有元素的图像,那么你可以用这个方法来合成一个完整图像。例如,你想画一张图表,而手上有一个包含所有必需的文字的 PNG 文件,那么你可以很轻易的根据实际数据的需要来改变最终显示的图表。这方法的另一个好处就是你不需要单独装载每一个图像。

说明

代码 

<html>

  <head>

  <meta Http-equiv="Content-Type" content="text/html;charset=utf-8" /> 

<script type="text/javascript">

function draw() {

         var canvas = document.getElementById('canvas');

        var ctx = canvas.getContext('2d');

 var image = new Image();

 image.onload = function(){

            //将图片从0,0开始截取100x50的大小在canvas中的0,0位置显示,大小为200x100

           ctx.drawImage(image,0,0,100,50,0,0,200,100);

 }

        image.src = '../image/a.jpg';

}

    script>

    <title>测试图像3title>

  head>

  <body onload="draw();" > 

      <canvas id="canvas" width="400" height="300">

      </canvas>

  body>

html>

效果

说明

鼠标移动到图片上,canvas中显示放大的部分图片,并且可以手动设置放大倍数,兼容IE和FF。重写event的代码是为了兼容FF,重写后使用event可以得到FF的事件对象。getAbsoluteTop方法获取某个控件距离body的上边距,这样再结合鼠标点击事件的坐标就可以得到点击事件相对于图片的坐标了,另外IE中还需要另外考虑滚动条的位置,可以用document.body.scrollTop获取。另外还有一个BUG,图片如果没有按照正常比例显示,则会出错,如过强制设定width和height,ctx.drawImage还是会按照坐标在原图片中对应的位置来计算。

代码

<html>

  <head>

  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 

  <script>

//重写event事件

function __firefox(){

    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);

    window.constructor.prototype.__defineGetter__("event", __window_event);

    Event.prototype.__defineGetter__("srcElement", __event_srcElement);

}

function __element_style(){

    return this.style;

}

function __window_event(){

    return __window_event_constructor();

}

function __event_srcElement(){

    return this.target;

}

function __window_event_constructor(){

    if(document.all){

        return window.event;

    }

    var _caller = __window_event_constructor.caller;

    while(_caller!=null){

        var _argument = _caller.arguments[0];

        if(_argument){

            var _temp = _argument.constructor;

            if(_temp.toString().indexOf("Event")!=-1){

                return _argument;

            }

        }

        _caller = _caller.caller;

    }

    return null;

}

if(window.addEventListener){

    __firefox();

}

script>

<script type="text/javascript">

     var power = 2;

     getAbsoluteTop = function(obj){

//获取指定元素左上角的纵坐标(相对于body)

 var selfTop = 0;

 var element = obj;

 if(document.body.scrollTop){//在ie下有值,FF没有

  selfTop = 0 - document.body.scrollTop;//消除IE下的滚动条的影响

 }

 while(element){

  selfTop = selfTop + element.offsetTop;

  element = element.offsetParent;

 };

 return selfTop;

 getAbsoluteLeft = function(obj){

//获取指定元素左上角的纵坐标(相对于body)

 var selfLeft = 0;

 var element = obj;

 if(document.body.scrollLeft){

  selfLeft = 0 - document.body.scrollLeft;

 }

 while(element){

  selfLeft = selfLeft + element.offsetLeft;

  element = element.offsetParent;

 };

 return selfLeft;

}

function mouseover(e) {

   document.getElementById("img1").onmousemove = function(e){}

}

以上是“HTML5 Canvas切片Slicing的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: HTML5 Canvas切片Slicing的示例分析

本文链接: https://www.lsjlt.com/news/92218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5 Canvas切片Slicing的示例分析
    小编给大家分享一下HTML5 Canvas切片Slicing的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! draw...
    99+
    2024-04-02
  • HTML5 Canvas像素操作的示例分析
    这篇文章给大家分享的是有关HTML5 Canvas像素操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 注意 由于人们可以直接操纵像素数据,因此出现了某些人利用从C...
    99+
    2024-04-02
  • HTML5 Canvas坐标转换的示例分析
    这篇文章给大家分享的是有关HTML5 Canvas坐标转换的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在Canvas绘图过程中,坐标始终是从左上角的起始位置开始的...
    99+
    2024-04-02
  • HTML5中Canvas图像模糊的示例分析
    这篇文章给大家分享的是有关HTML5中Canvas图像模糊的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在用h6的canvas画动画,发现图像特别模糊。后来终于找到罪魁祸首是<meta nam...
    99+
    2023-06-09
  • HTML5中Canvas画线技巧的示例分析
    这篇文章主要为大家展示了“HTML5中Canvas画线技巧的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5中Canvas画线技巧的示例分析”这...
    99+
    2024-04-02
  • html5中canvas微信海报分享的示例分析
    小编给大家分享一下html5中canvas微信海报分享的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!随机产生一张图片拿到微信用户的头像和称呢(自己调后端...
    99+
    2023-06-09
  • canvas导出图片跨域的示例分析
    这篇文章将为大家详细讲解有关canvas导出图片跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:Uncaught DOMException: Failed to execute &#...
    99+
    2023-06-09
  • 图片上传及canvas压缩的示例分析
    小编给大家分享一下图片上传及canvas压缩的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们通常在做图片上传的时候都会遇上这样的情况,一是后端接口限制...
    99+
    2023-06-09
  • HTML5中Canvas实现图片缩放、翻转、颜色渐变的示例分析
    这篇文章将为大家详细讲解有关HTML5中Canvas实现图片缩放、翻转、颜色渐变的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。翻转、移动、平移、放大、缩小XML/HTML Code复制内容到剪贴...
    99+
    2023-06-09
  • HTML5 Canvas字符串,路径,背景,图片的实例分析
    本文小编为大家详细介绍“HTML5 Canvas字符串,路径,背景,图片的实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5 Canvas字符串,路径,背景,图片的实例分析”文章能帮助大家解...
    99+
    2024-04-02
  • HTML5新特性与Canvas常用属性的示例分析
    这篇文章主要介绍HTML5新特性与Canvas常用属性的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1.HTML5的内容类型 内容类型 描述 内嵌 向文档中添加其他...
    99+
    2024-04-02
  • HTML5 Canvas鼠标与键盘事件demo的示例分析
    本篇文章给大家分享的是有关HTML5 Canvas鼠标与键盘事件demo的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2024-04-02
  • python列表的切片与复制示例分析
    大家可以先参考python切片复制列表的知识点详解这篇内容,对知识点用法有个了解 切片,即处理一个完整列表中部分数据。 语法 变量[起始索引:终止索引:步长] 首先创建一个字符串...
    99+
    2024-04-02
  • html5的section示例分析
    这篇文章主要介绍“html5的section示例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“html5的section示例分析”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • HTML5中Canvas如何实现商场监控的示例分析
    这篇文章主要介绍了HTML5中Canvas如何实现商场监控的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。伴随国内经济的高速发展,人们对安全的要求越来越高。为了防止下...
    99+
    2023-06-09
  • Html5之webcoekt播放JPEG图片流的示例分析
    这篇文章给大家分享的是有关Html5之webcoekt播放JPEG图片流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、简介既然webcoekt是基于tcp连接的,理论上讲所有的浏览器是可以私有协议处...
    99+
    2023-06-09
  • Go切片slice实例分析
    本文小编为大家详细介绍“Go切片slice实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go切片slice实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。slice表示切片(分片),例如对一个数组...
    99+
    2023-06-30
  • html5中图片抛物线运动的示例分析
    这篇文章主要介绍html5中图片抛物线运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!常见的, 物体/图片做抛物线或者更准确的说是沿贝塞尔曲线运动是H5开发中常见的需求,...
    99+
    2024-04-02
  • HTML5中Canvas的用法示例
    这篇文章将为大家详细讲解有关HTML5中Canvas的用法示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   moveTo(x,y) 定义线条开始坐标   lin...
    99+
    2024-04-02
  • HTML5标签的示例分析
    这篇文章给大家分享的是有关HTML5标签的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可以进行省略的标签不允许写结束标记的标签:area(定义图像映射中的区域)、bas...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作