HTML5画布(图像)

news2024/9/20 10:47:34

案例1:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script>
     window.onload=function(){
            var c=document.getElementById("myCanvas");
            var cxt= c.getContext("2d");
            var image= new Image();
            image.src="shanchu.png";
            cxt.drawImage(image,0,0);
        }
    </script>
</head>
<body>
<canvas id="myCanvas" width="450" height="350" style="border: 1px solid #dddddd">您的浏览器不支持
</canvas>
 
</body>
</html>
 

注释:

(1)绘制图像时,需要使用drawImage方法:

方法1:cxt.drawImage(image,x,y);

image是一个Image对象,用该对象来装载图像文件。x与y为绘制时该图像在画布中的起始坐标。

方法2:cxt.drawImage(image,x,y,w,h);

前三个参数同上,w,h是指绘制时的图像的宽度与高度。

方法3:cxt.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);

sx与sy分别表示源图像的被复制区域在画布中的起始横坐标与起始纵坐标,sw与sh表示被复制区域的宽度与高度,dx与dy表示复制后的目标图像在画布中的起始横坐标与起始纵坐标,dw与dh表示复制后的目标图像的宽度与高度。该方法可以只复制图像的局部,只要将sx与sy设为局部区域的起始点坐标,将sw与sh设为局部区域的宽度与高度就可以了。

案例2​​​​​​:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script>
     window.onload=function(){
            var c=document.getElementById("myCanvas");
            var cxt= c.getContext("2d");
            var image= new Image();
            image.src="shanchu.png";
            cxt.drawImage(image,0,0,200,200);
            cxt.drawImage(image,0,0,100,100,210,0,200,200);
        }
    </script>
</head>
<body>
<canvas id="myCanvas" width="450" height="350" style="border: 1px solid #dddddd">您的浏览器不支持
</canvas>
 
</body>
</html>
  1. 效果图:

  2. 案例3:
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script>
         window.onload=function(){
                var c=document.getElementById("myCanvas");
                var cxt= c.getContext("2d");
                var image= new Image();
                image.src="shanchu.png";
                drawImage(cxt,image);
            }
         function drawImage(cxt,image)
         {
             var i=0;
             for(i=0;i<5;i++)
             {
                 cxt.drawImage(image,0+i*50,0+i*30,100,100);
             }
          }
        </script>
    </head>
    <body>
    <canvas id="myCanvas" width="450" height="350" style="border: 1px solid #dddddd">您的浏览器不支持
    </canvas>
     
    </body>
    </html>
     
    效果图:

 

  1. 图像平铺

    案例1:
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script>
         window.onload=function(){
                var c=document.getElementById("myCanvas");
                var cxt= c.getContext("2d");
                var image= new Image();
                image.src="shanchu.png";
                var ptrn=cxt.createPattern(image,'repeat');
                cxt.fillStyle=ptrn;
                cxt.fillRect(0,0,450,350);
            }
        </script>
    </head>
    <body>
    <canvas id="myCanvas" width="450" height="350" style="border: 1px solid #dddddd">您的浏览器不支持
    </canvas>
     
    </body>
    </html>

 效果图:

注释:
(1)cxt.createPattern(image,type);
         该方法使用两个参数,image参数为要平铺的图像,type参数的值必须是下面的字符串值之一:
         no-repeat:不平铺
         repeat-x:横方向平铺
         repeat-y:纵方向平铺
         repeat:全方向平铺

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 手把手按需引入 Echarts

背景&#xff1a;新项目采用 Vue3 作为前端项目框架&#xff0c;避免不了要使用 echarts&#xff0c;但是在使用的时候&#xff0c;出现了与 Vue2 使用不一样的地方&#xff0c;所以特别记下来&#xff0c;希望给到有需要的同学一些帮助。 下载Echarts依赖 # 自己使用的yarn y…

《Odoo开发者模式必知必会》—— 缘起

Odoo作为业界优秀的开源商务软件&#xff0c;在全球范围内拥有广泛的使用者。在领英国际&#xff0c;可以搜索到全球很多国家都有大量odoo人才需求的招聘信息。在国内&#xff0c;虽然已经有为数不少的企业&#xff0c;他们或者已经使用odoo&#xff0c;或者正在了解odoo&#…

支付宝异步通知说明

如何设置异步通知地址 不同接口接收异步通知设置方式不同&#xff0c;可查看 哪些接口支持触发异步。 设置 notify_url 接收异步 对于支付产生的交易&#xff0c;支付宝会根据原始支付 API 中传入的异步通知地址 notify_url&#xff0c;通过 POST 请求的形式将支付结果作为参…

从零开始学习CTF的完整指南

前言 想要学习CTF却不知从何开始&#xff1f;本文提供了一份完整的指南&#xff0c;从Linux系统基础、网络协议基础、二进制分析、Web安全、杂项题型以及算法与密码学等方面&#xff0c;为零基础小白提供了学习路线和知识点概述。 网络安全 网络安全是 CTF 的基础&#xff0…

还不知道怎么 Mock ,用这 6款工具

以下是几个常用的国外可以mock测试的工具&#xff0c;供参考&#xff1a; MockServer: MockServer 是一个开源的 API mock 测试工具&#xff0c;提供了强大的模拟服务器和 mock 服务功能。MockServer 支持多种语言和格式&#xff0c;包括 Java、.NET、REST、SOAP 等。 WireMoc…

优思学院|做质量管理有七大工具,都是什么?

质量管理七大工具&#xff08;Seven Basic Quality Tools&#xff09;是由日本质量大师石川馨于20世纪50年代首次提出&#xff0c;这些工具被广泛应用于制造业和服务业的质量管理实践中&#xff0c;优思学院认为这七个工具除了是质量人常用的工具之外&#xff0c;也可作为学习六…

OpenGL光照:光照基础

引言 现实世界的光照是极其复杂的&#xff0c;而且会受到诸多因素的影响&#xff0c;这是以目前我们所拥有的处理能力无法模拟的。因此OpenGL的光照仅仅使用了简化的模型并基于对现实的估计来进行模拟&#xff0c;这样处理起来会更容易一些&#xff0c;而且看起来也差不多一样。…

Windows环境下运行StableDiffusion常见问题

目录 常见问题 一、问题1&#xff1a;22.2.2➡23.1.1 Torch is not able to use GPU 解决方案 二、问题2&#xff1a;exit code:128 CLIP did not run sucessfully 解决方案 三、问题3&#xff1a;exit code:128 open-clip did not run sucessfully 解决方案 四、问题4…

工业数字智能化常用系统简介

文章目录 QMS1&#xff0c;IPQC&#xff08;过程检&#xff09;2&#xff0c;OQC&#xff08;出货检&#xff09;3&#xff0c;SPC&#xff08;统计工序控制&#xff09;4&#xff0c;Andon&#xff08;安灯&#xff09;5&#xff0c;其他 MDMMES QMS 质量管理体系&#xff0c;…

【虚拟机】在Windows11上下载安装VMware虚拟机以及Ubuntu(Linux)详细操作

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

获取速卖通aliexpress分类详情 API接口

aliexpress分类详情API接口是速卖通提供的一种产品数据接口&#xff0c;可以帮助速卖通卖家快速地将产品分类、属性、价格等信息&#xff0c;通过 aliexpress API接口来快速生成产品描述、图片、视频等产品信息&#xff0c;让卖家可以更方便地管理自己的产品&#xff0c;快速获…

凌波微课讲师文章|福建农林大学周顺桂团队ISME J:首次发现嗜热病毒参与超高温堆肥过程中碳氮养分转化过程

第一作者&#xff1a;廖汉鹏 通讯作者&#xff1a;周顺桂&#xff0c;Ville-Petri Friman 在线发表时间&#xff1a;2023.04.08 论文网页&#xff1a;https://doi.org/10.1038/s41396-023-01404-1 DOI号&#xff1a;10.1038/s41396-023-01404-1 图片摘要 成果简介 近日&a…

《程序员面试金典(第6版)》面试题 16.05. 阶乘尾数

题目描述 设计一个算法&#xff0c;算出 n 阶乘有多少个尾随零。 示例 1: 输入: 3输出: 0解释: 3! 6, 尾数中没有零。 示例 2: 输入: 5输出: 1解释: 5! 120, 尾数中有 1 个零 说明: 你算法的时间复杂度应为 O(log n) 。 解题思路与代码 这道题&#xff0c;乍一看很简单…

大数据之Hadoop分布式计算框架MapReduce

这里写目录标题 一、MapReduce概述二、MapReduce编程模型简述三、MapReduce词频统计案例mvn clean package 四、词频统计案例进阶之Combiner五、词频统计案例进阶之Partitioner六、案例二介绍 一、MapReduce概述 Hadoop MapReduce 是一个分布式计算框架&#xff0c;用于编写批处…

p69 内网安全-域横向 CobaltStrikeSPNRDP

数据来源 SPN&#xff08;Secret Private Network缩写&#xff09;_百度百科 (baidu.com) 演示案例 域横向移动RDP传递-Mimikatz域横向移动SPN服务-探针&#xff0c;请求&#xff0c;导出&#xff0c;破解&#xff0c;重写域横向移动测试流程一把梭哈-CobaltStrike初体验 案例…

python+nodejs+php+springboot+vue 企业员工健康体检预约管理系统

目 录 1 引言 1 1.1 研究的目的及意义 2 1.2 研究的主要内容 2 1.3 本文的组织结构 2 2 平台开发相关技术 3 2.1python技术的简介 3 2.2 django框架 4 2.3 MYSQL数据库 4 2.4 MySQL环境配置 5 2.5 B/S架构 5 3 软件系统需求及可行性分析 …

SpringCould+vue3项目的后台用户管理的CURD【VegePig教育平台】

文章目录 一.SpringCouldvue3项目的后台用户管理的CURD【VegePig教育平台】1.1 背景 二.用户列表&#xff08;分页查询&#xff09;2.1 前端Vue3 &#xff08;Vue3-Element-Admin&#xff09;2.2 后端SpringCould 处理 三. 用户信息删除3.1 前端Vue3 &#xff08;Vue3-Element-…

斐波那契数列、卡特兰数

一、斐波那契数列&#xff08;兔子序列&#xff09; 1, 1, 2, 3, 5, 8, 13, 21, ... 递推公式&#xff1a;f(1)f(2)1; f(n)f(n-1)f(n-2) (n>3) 快速求f(n)&#xff1a;矩阵快速幂&#xff08;logn&#xff09; 二、卡特兰数 1, 2, 5, 14, 42, 132, 429, 1430, 4862, ...…

selenium自动化环境搭建(Windows)

一、selenium介绍 selenium主要用于web应用程序的自动化测试&#xff0c;还支持所有基于web的管理任务自动化。 selenium经历了2个版本&#xff0c;selenium1.0和selenium2.0&#xff1b;selenium不是一个单独的工具&#xff0c;而是由一些插件、类库构成&#xff0c;每个组成…

__pycache__文件夹是什么,是缓存文件吗,可以删除吗

1.什么是__pycache__文件 用python编写好一个工程&#xff0c;在第一次运行后&#xff0c;总会发现工程根目录下生成了一个__pycache__文件夹&#xff0c;里面是和py文件同名的各种*.pyc或者*.pyo文件。名字上看应该是相应的缓存文件。 那为什么会出现__pycache__文件&#x…