html5学习 - canvas画图和清除图片

在canvas上画一张图其实很简单,就是用drawImgage函数。

定义

这里先贴上w3c里的定义和用法:

  1. JavaScript 语法 1 (在画布上定位图像:)
context.drawImage(img,x,y);
  1. JavaScript 语法 2 (在画布上定位图像,并规定图像的宽度和高度:)
context.drawImage(img,x,y,width,height);
  1. JavaScript 语法 3 (剪切图像,并在画布上定位被剪切的部分:)
context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);

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

以上内容参考自: w3c

也可以去这个w3c上去测试使用方法。

例子代码

先贴html的代码内容:

<img src="../img/test.jpg" alt="test pic" id="test_img">
    <canvas id="canvasOne"></canvas>

请给canvas设置一下高和宽,然后js代码如下:

$(document).ready(function() { //这里是jquery的ready方法,使用的话请导入jquery,不想用请用document.load()
        var theCanvas = document.getElementById("canvasOne");
        if (!theCanvas || !theCanvas.getContext) {
            alert("false");
        }
        // alert($(document).width());
        // alert($.browser.version)
        ctx = theCanvas.getContext("2d");
        var test_img = document.getElementById("test_img");
        ctx.drawImage(test_img, 20, 20, 300, 300);
    });

清除drawImage内容

现在我找到的就两个办法,一个是fillRect()把内容直接覆盖掉,一个是clearRect()清除掉内容。

fillRect

这个的使用方法很简单:

context.fillRect(x,y,width,height);

例子:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillRect(20,20,150,100);

clearRect

这个的使用方法和fillRect极其相似:

context.clearRect(x,y,width,height);

例子:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(0,0,300,150);
ctx.clearRect(20,20,100,50);

就这些~ 其实我是想实现图片拖动,放大缩小然后剪切的。虽然我已经实现了~ 放到下一篇博客里。

时间: 2024-12-11 18:02:59

html5学习 - canvas画图和清除图片的相关文章

HTML5使用canvas画图时,图片被自动放大模糊的问题

最近在研究canvas技术,发现一个问题,就是所画图像会随着画布大小自动变换大小.原因如下 <canvas id="cxt" style="width: 500px; height: 300px; background: #abcdef;"></canvas> 使用了style属性 或者在页面中引入内嵌样式 <style> #cxt{ width: 500px; height: 300px; } </style> 后来

HTML5的Canvas画图模拟太阳系运转

有一个需求是:在一个图片按钮上点击,在按钮的上方弹出一个弹框,根据弹框的内容页面做不同的显示.这个其实没什么难的,主要是要控制好弹框的显示位置,让弹框显示在图片的正上方的中间. 一开始是用的Popupwindow,但是Popupwindow不能给弹窗之外的页面加一个半透明的蒙层,当然可以在页面上加一个专门的作为蒙层的View,但是很显然,这么做会代码变得很恶心,于是又换成了Dialog,因为Dialog弹出的时候会自动加一个蒙层的,但是这个时候,弹框显示位置的Y坐标不对了,后来一顿查,原来Dia

html5之canvas画图

导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制图像(图片平铺.裁剪.像素处理[不只图像.包括其他绘制图形]) 绘制文字 保存和恢复状态(context) 保存文件 结合setInterval制作动画 结语.demo下载   前言 <canvas></canvas>是html5出现的新标签,像所有的dom对象一样它有自己本身的属性.

html5之canvas画图 1.写字板功能

 写字板事例:       写字板分析:1.点击鼠标開始写字(onmosedown)2.按下鼠标写字(onmousemove)3.松开鼠标,停下写字(撤销onmousemove事件):       代码: <strong><!doctype html> </strong><html> <head> <meta charset="utf-8"> <title>Canvas</title> &l

Html5学习--canvas

canvas元素的实际尺寸(宽度,高度)是由标签上的属性width和height来决定的. 这两个属性不设置时默认值为:宽度=300px,高度=150px. 如果在样式表里设置width和height,则表示在实际宽度和高度的基础上进行缩放,缩放后的尺寸为样式里设置的width和height. 示例代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <me

[转]html5 Canvas画图教程(1)—画图的基本常识

今天看到一个讲Canvas的教程,很通俗移动,所以转载了下. 虽然大家都称Canvas为html5的新标签,看起来好像Canvas属于html语言的新知识,但其实Canvas画图是通过javascript来做的.所以,如果你想学习Canvas画图,你必须要有Javascript基础. 另外,画图嘛,总有一些图像方面的术语和知识点,所以如果你有过做图或美工经验,学习Canvas会更容易. Canvas,意为画布也.而Html5中的Canvas也真的跟现实生活中的画布非常相似.所以,把他看成一块实实

HTML5 学习总结(四)——canvas绘图、WebGL、SVG

HTML5 学习总结(四)--canvas绘图.WebGL.SVG 目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML5游戏开发 2.2.1.Cocos2D-HTML5 2.2.2.Egret(白鹭引擎) 三.SVG 3.1.SVG Hello Wrold 3.2.多种引入SVG的方法 3.3.画直线 3.4.画椭圆 3.5.文本与矩形 3.6.向

html5学习(一)--canvas画时钟

利用空余时间学习一下html5. 1 <!doctype html> 2 <html> 3 <head></head> 4 <body> 5 <canvas id="clock" width="500" height="500"></canvas> 6 <script> 7 var clock=document.getElementById('cloc

[html5] 学习笔记-Canvas标签的使用

Canvas通过JavaScript来绘制2D图形.Canvas是逐像素渲染的.在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果其位置发生变化,那么整个场景也需要重新绘制,包括任何已被图形覆盖的对象. 1.Canvas标签 html5中<canvas>元素用于图形的绘制,通过脚本(通常是JavaScript)来完成 <canvas>标签只是图形容器 可以通过多种方法使用Canvas绘制路径.盒.圆.字符以及添加图像 1.1 直接在html5中创建,这种方式采