canvas学习 一

canvas 坐标转换

1 //把页面上的坐标转换为canvas坐标
2 function windowToCanvas(canvas,x,y){
3     var bbox = canvas.getBoundingClientRect();
4     return {
5         x: x - bbox.left * (context.canvas.width / bbox.width),
6         y: y - bbox.top * (context.canvas.height / bbox.height)
7     }
8 }
9        
canvas画grid
 1 function drawGrid( color, stepx, stepy){
 2     context.strokeStyle = color;
 3     context.lineWidth = 0.5;
 4     for(var i = stepx + 0.5;i < canvas.width;i += stepx){
 5         context.beginPath();
 6         context.moveTo(i,0);
 7         context.lineTo(i,context.canvas.height);
 8         context.stroke();
 9     }
10     for(var i = stepx + 0.5;i < context.canvas.height;i += stepx){
11         context.beginPath();
12         context.moveTo(0,i);
13         context.lineTo(context.canvas.width,i);
14         context.stroke();
15     }
16 }

canvas图片放大

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         body{
  8             background: rgba(100,145,250,0.3);
  9         }
 10         #canvas{
 11             border:1px solid cornflowerblue;
 12             position: absolute;
 13             left:250px;
 14             top:10px;
 15             background: #eee;
 16             border: thin solid #aaa;
 17             cursor: pointer;
 18             box-shadow: rgba(200,200,255,0.9) 5px 5px 10px;
 19         }
 20         #scaleSlider{
 21             vertical-align: center;
 22             width:100px;
 23             margin-left: 90px;
 24         }
 25         #controls{
 26             margin-left:15px;
 27             padding:0;
 28         }
 29         #scaleOutput{
 30             position: absolute;
 31             width:60px;
 32             height: 30px;
 33             margin-left:10px;
 34             vertical-align: center;
 35             text-align: center;
 36             color: blue;
 37             text-shadow:  2px 2px 4px rgba(100,140,250,0.8);
 38         }
 39     </style>
 40 </head>
 41 <body>
 42 <div id="controls">
 43     <output id="scaleOutput">1.0</output>
 44     <input type="range" id="scaleSlider" min="1" max="3.0" step="0.01" value="1.0">
 45 </div>
 46
 47 <canvas id="canvas" width="800" height="520"></canvas>
 48
 49     <script>
 50         var canvas = document.getElementById(‘canvas‘),
 51                 context = canvas.getContext(‘2d‘),
 52                 selectElement = document.getElementById(‘compositingSelect‘),
 53                 scaleSlider = document.getElementById(‘scaleSlider‘),
 54                 scaleOutput = document.getElementById(‘scaleOutput‘),
 55                 scale = 1.0,
 56                 MINIMUM_SCALE = 1.0,
 57                 MAXIMUM_SCALE = 3.0,
 58                 img = new Image();
 59
 60 //        放大镜
 61         //fUNCTION------------------------
 62         function drawImage(){
 63             var w = canvas.width,
 64                     h = canvas.height,
 65                     sw = w * scale,
 66                     sh = h * scale;
 67             context.clearRect(0,0,w,h);
 68             context.drawImage(img, -sw/2 + w/2, -sh/2 + h/2, sw, sh);
 69         }
 70
 71         function drawScaleText(value){
 72             var text = parseFloat(value).toFixed(2);
 73             var percent = parseFloat(value - MINIMUM_SCALE) / parseFloat(MAXIMUM_SCALE - MINIMUM_SCALE);
 74             scaleOutput.innerText = text;
 75             percent = percent < 0.35 ? 0.35 : percent;
 76             scaleOutput.style.fontSize = percent * MAXIMUM_SCALE/1.5 +‘em‘;
 77         }
 78
 79         scaleSlider.onchange = function(e){
 80             scale = e.target.value;
 81             if(scale < MINIMUM_SCALE){
 82                 scale = MINIMUM_SCALE;
 83             }else if(scale > MAXIMUM_SCALE){
 84                 scale = MAXIMUM_SCALE;
 85             }
 86             drawScaleText(scale);
 87             drawImage();
 88         }
 89
 90         context.fillStyle = ‘cornflowerblue‘;
 91         context.strokeStyle = ‘yellow‘;
 92         context.shadowColor = ‘rgba(50,50,50,1.0)‘;
 93         context.shadowOffsetX = 5;
 94         context.shadowOffsetY =5;
 95         context.shadowBlur = 10;
 96
 97         img.src = ‘1.jpg‘;
 98         img.onload = function(e){
 99             drawImage();
100             drawScaleText(scaleSlider.value);
101         };
102     </script>
103 </body>
104 </html>

 

时间: 2024-10-22 13:43:59

canvas学习 一的相关文章

html5 canvas 学习笔记(一)

一.canvas元素API canvas元素并未提供很多API,实际上他只提供了两个属性与三个方法: 1.canvas元素属性 width 属性:与 height 属性: canvas元素绘图表面的宽度,在默认状况下,浏览器会将canvas元素大小设定成与绘图表面大小一致,然而如果在css中覆写了元素大小,那么浏览器则会将绘图表面进行缩放,使之符合元素尺寸.其值为非负整数,默认值为300. 2.canvas元素方法 getContext()方法: 返回与该canvas元素相关的绘图环境对象,每个

[HTML5 Canvas学习]使用颜色和透明度

在canvas中使用颜色和透明度,通过context的strokeStyle和fillStyle属性设置,strokeStyle和fillStyle的值可以是任意有效的css颜色字串.可以用RGB.RGBA.HSL.HSLA以及十六进制RGB标注来指定颜色,也可以通过 "yellow"."silver"."teal"这样的颜色名称来指定.除此之外,还可以使用SVG1.0规范中的颜色名称,比如"goldenrod"."

[HTML5 Canvas学习]绘制矩形

1.使用strokeRect和fillRect方法绘制矩形 a.strokeRect是绘制一个不填充的矩形 b.fillRect是绘制一个填充的矩形 代码: <script> var canvas = document.getElementById('canvas'), context = canvas.getContext('2d'); context.lineJoin = 'round'; context.lineWidth = 20; context.strokeRect(10, 10,

[转载]Android Bitmap和Canvas学习笔记

http://blog.chinaunix.net/uid-20771867-id-3053339.html [转载]Android Bitmap和Canvas学习笔记,布布扣,bubuko.com

Canvas 学习笔记1

#Canvas 学习笔记1 @[Canvas,Nunn,HTML5,javascript] ##前言 相信大家多多少少都有了解过`Canvas`,这里我就不多做解释了,网上也充斥了这方面的知识,很多人看了之后,其实发现作用非常小,因为似乎这些东西什么也做不了,本着学习提升自己,造福大家,我打算把我学习`Canvas`的历程记录在这里. 首先推荐大家先看看阮一峰大大写的这个[Canvas API](http://javascript.ruanyifeng.com/htmlapi/canvas.ht

canvas学习绘制渐变色

1.createLinearGradient() 创建线性渐变 //Linear adj. 直线的 线性的 //Gradient n. 梯度 变化率 createLinearGradient(x1,y1,x2,y2)--颜色渐变的起始坐标和终点坐标 addColorStop(位置,"颜色值")--0表示起点...插入点...1表示终点,配置颜色停止点 <!DOCTYPE html><html lang="en"><head> &l

canvas学习日记一

由于工作的需求,促进我学习html5 canvas技术,canvas是html5最强大的元素之一.使用它可以在浏览器中做一番奇妙的事情.大家或多或少都听过canvas的强大用处,我这里就不再赘述了. canvas的强大功能是通过canvas的context对象表现出来的,该环境变量是可以从canvas元素身上获取. 下面先看一个canvas的例子方便讲解:在canvas上显示一个字符串,该字符串大致与canvas水平垂直居中.代码如下: <!DOCTYPE HTML> <html lan

[Canvas学习]样式与颜色

学习目的:学会使用色彩,透明度,线型,渐变,图案和阴影绘制更加吸引人的内容 色彩Color fillStyle = color 设置图形的填充颜色 strokeStyle = color 设置图形的轮廓颜色 color的值可以是字符串,渐变对象或者图案对象,默认情况下,两者都是黑色#000 var cvs = document.getElementById("canvas"); if(cvs.getContext){ var ctx = cvs.getContext("2d&

canvas学习笔记

学习网址:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API <canvas> 是 HTML5 新增的元素,可使用JavaScript脚本来绘制图形. canvas可以用来做下面的事:

【HTML】【学习】 Canvas学习笔记【上】

Canvas是HTML新增的开发跨平台动画和游戏的标准解决方案,能够实现对图像和视频进行像素级操作. 一.在页面中添加canvas元素 就像添加一个普通div一样,canvas的添加方式为: <canvas id = "myCanvas" width = "200px" height = "100px">不支持时显示的部分</canvas> 可以用对div添加样式的方法使用CSS对Canvas添加样式 二.使用Canvas