灰度化
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
canvas {
border:1px solid #ececf1;
}
</style>
<script type="text/javascript">
window.onload = function () {
var imageObj = new Image();
imageObj.onload = function () {
DrawImage(this);
};
imageObj.src = "../Images/2.jpg";
}
function DrawImage(imageObj) {
var canvas = document.getElementById("canvas1");
var context = canvas.getContext("2d");
var desX = 100;
var desY = 100;
var sourceWidth = imageObj.width;
var sourceHeight = imageObj.height;
context.drawImage(imageObj, desX, desY);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;
// 遍历像素
for (var i = 0; i < data.length; i += 4) {
// var brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
var brightness = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];
data[i] = brightness;
data[i + 1] = brightness;
data[i + 2] = brightness;
}
context.putImageData(imageData,0,0);
}
</script>
</head>
<body>
<canvas id="canvas1" width="580" height="500" />
</body>
</html>
toDataURL
<html>
<head>
<title>toDataURL example</title>
<script type="text/javascript">
function draw() {
// Create some graphics.
var canvas = document.getElementById("MyCanvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
ctx.fillStyle = "white";
ctx.beginPath();
ctx.rect(5, 5, 300, 250);
ctx.fill();
ctx.stroke();
ctx.arc(150, 150, 100, 0, Math.PI, false);
ctx.stroke();
}
}
function putImage() {
var canvas1 = document.getElementById("MyCanvas");
if (canvas1.getContext) {
var ctx = canvas1.getContext("2d"); // Get the context for the canvas.
var myImage = canvas1.toDataURL("image/png"); // Get the data as an image.
}
var imageElement = document.getElementById("MyPix"); // Get the img object.
imageElement.src = myImage; // Set the src to data from the canvas.
}
</script>
</head>
<body onload="draw()" >
<div>
<button onclick="putImage()">Copy graphic using toDataURL</button>
</div>
<div>
<canvas id="MyCanvas" width="400" height="400" >This browser or document mode doesn't support canvas</canvas>
<img id="MyPix" />
</div>
</body>
</html>
<html>
<head>
<script>
window.onload = function () {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
// 画云
context.beginPath(); // 开始用户定义图形
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80);
context.closePath(); // 完成用户定义图形
context.lineWidth = 5;
context.fillStyle = "#8ED6FF";
context.fill();
context.strokeStyle = "#0000ff";
context.stroke();
// 将canvas图像保存为数据url
var dataURL = canvas.toDataURL();
// 将数据 url 作为 canvasImg 的图像源
// 这样就可以保存到客户机器上了
document.getElementById("canvasImg").src = dataURL;
};
</script>
</head>
<body onmousedown="return false;">
<canvas id="myCanvas" width="578" height="200" style="display: none;"></canvas>
<img id="canvasImg" alt="Right click to save me!">
</body>
</html>