canvas-绘制矩形-读书笔记

news/2024/7/5 3:44:18

使用<canvas>元素,必须先设置其width和height属性,指定可以绘图的区域大小。

要在画布上绘图,需要取得绘图上下文,也就是要调用getContext()方法并传入上下文的名字。在使用<canvas>元素前,首先要检测下getContext()方法是否存在,不是所有的版本的浏览器都支持的。

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><canvas id="drawing" width=" 200" height="200">A drawing of something.</canvas><script type="text/javascript">var drawing = document.getElementById("drawing");//确定浏览器支持<canvas>元素if(drawing.getContext) {var context = drawing.getContext("2d");//更多代码
            }</script></body></html>

toDataURL()方法,可以导出canvas元素上绘制的图像,这个方法接受一个参数,即图像的MIME类型格式,而且适合用于创建图像的任何上下文。栗如:

var drawing = document.getElementById("drawing");//确定浏览器支持canvas元素
if(drawing.getContext){var imgURI = drawing.toDataURL("image/png");//显示图像  var image = document.createElement("img");image.src = imgURI;document.body.appendChild(image);        
}

2D上下文的两周基本绘图操作是填充和描边。填充,就是用指定的样式(颜色、渐变或图像)填充图形,描边就是只在图形的边缘画线。这两个操作结果取决于两个属性:fillStyle和strokeStyle,这两个属性的值可以是字符串、渐变对象或模式对象,默认值都是“#000000”。

矩形是唯一一种可以直接在2D上下文中绘制的形状。与矩形相关的方法包括fillRect()、strokeRect()和clearRect()。这三个方法都能接收4个参数:矩形的x坐标,矩形的y坐标,矩形宽度和矩形高度,这些参数的单位都是像素。

通过fillRect()方法绘制矩形。举栗:

var drawing = document.getElementById("drawing");//确定浏览器支持<canvas>元素
if(drawing.getContext) {var context = drawing.getContext("2d");//绘制红色矩形context.fillStyle = "#ff0000";context.fillRect(10, 10, 50, 50);//绘制半透明的蓝色矩形context.fillStyle = "rgba(0,0,255,0.5)";context.fillRect(30, 30, 50, 50);
}

通过strokeRect()方法绘制矩形。举栗:

var drawing = document.getElementById("drawing");
//确定浏览器支持<canvas>元素
if (drawing.getContext){var context = drawing.getContext("2d");//绘制红色描边矩形context.strokeStyle = "#ff0000";context.strokeRect(10, 10, 50, 50);//绘制半透明的蓝色描边矩形context.strokeStyle = "rgba(0,0,255,0.5)";context.strokeRect(30, 30, 50, 50);
}

 

参考资料

《javascript高级程序设计(第3版)》第15章 使用Canvas 绘图

转载于:https://www.cnblogs.com/winteronlyme/p/6727682.html


http://lihuaxi.xjx100.cn/news/281775.html

相关文章

抽象工厂与工厂模式例子

NativeFactory。java package com;//定义 人有杀日本人 和 杀美国人两个方法interface NativePerson{ public void killAmeria(); public void killJapan();}//中国人实现了人的接口 class NativeChinese implements NativePerson{ //中国人杀美国人 public void killAmeria() …

腾讯拥抱开源:首次公布开源路线图,技术研发向共享、复用和开源迈进

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;去年&#xff0c;知乎上一篇讨论腾讯技术的帖子异常火爆&#xff0c;讨论的主题是当下&#xff08;2018 年&#xff09;腾讯的技术建设是否处于落后同体量公司的状态&#xff0c;这篇帖子得…

一键生成人脸像素图,还能上传到动森!这个项目很好玩

机器之心报道参与&#xff1a;魔王、Jamin日本独立开发者 Sato 曾因阿斯伯格综合征辍学离职&#xff0c;后来自学 AI 开发 AI Gahaku 项目&#xff08;AI 大师级画家&#xff09;&#xff0c;在日美引起轰动&#xff0c;10 天覆盖百万用户。此外&#xff0c;她还做了另一个有趣…

使用Python+OpenCV+dlib为人脸生成口罩

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达推荐阅读 42个pycharm使用技巧&#xff0c;瞬间从黑铁变王者Google C项目编程风格指南 (中文版) 分享转自|深度学习与计算机视觉本文使用OpenCV dlib库生成口罩口罩已经被…

企业的云服务选择:SaaS、PaaS、IaaS的对比分析

如今&#xff0c;云服务更为重要。几乎每个企业都需要使用云计算服务。管理大量敏感和机密数据变得困难。因此&#xff0c;在任何类型的企业中使用云服务都是不可避免的。 首先以相对简单的方式进行对比。 如今&#xff0c;云服务更为重要。几乎每个企业都需要使用云计算服务。…

html 常用方法,jquery的常用方法有哪些?

jquery的常用方法有哪些&#xff1f;下面本篇文章给大家介绍一下jQuery中的几种常用方法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。jQuery的几个常用方法.bind().unbind().css().hasclass().removeclass.parent().children().ht…

Google Adsense实用防踢技巧总结

我们都知道&#xff0c;对个人草根站长来说&#xff0c;Google AdSense是网站收入的主要来源之一&#xff0c;我在这里介绍一些常用的技巧。 希望通过这些技巧能够增加大家的Google AdSense收入&#xff0c;并防止自己的帐号被删除。大家喜欢的话就顶下吧&#xff01; 广告的位…

全国 12 所发展势头迅猛的大学,你的学校上榜了吗?

来源 | 高中学习资料库&#xff08;gzxxzlk&#xff09;、中财蹦豆等转自 | 学术志编辑 | 学妹【导读】全国优秀的大学&#xff0c;在1981年以前&#xff0c;被确定为全国重点大学的学校&#xff0c;在当时都是属于实力一流的大学。后来国家实行了211工程。有一大批原来不是全…