满意答案
function onStart() {
var canvas = document.getElementByIdx_x_x_x_x_x_x("lesson01");
if(canvas.getContext)
{
var context = canvas.getContext("2d");
var pic = new Image();
pic.οnlοad=function(){
context.drawImage(pic,0, 0);
}
pic.src = "https://gss0.baidu.com/70cFfyinKgQFm2e88IuM_a/forum/pic/item/e6b14bc2a4561b1fe4dd3b24.jpg";
}
}
下面写一个例子关于利用canvas实现图片变灰的code.
window.onload = function () {
var canvas = document.getElementByIdx_x_x_x("myCanvas");
var image = document.getElementByIdx_x_x_x("imageSource");
// 将图片的高宽赋值给画布
canvas.width = image.width;
canvas.height = image.height;
// 获得二维渲染上下文
if (canvas.getContext) {//为了安全起见,先判断浏览器是否支持canvas
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0);//将得到的image图像绘制在canvas对象中
var canvasData = context.getImageData(0, 0, canvas.width, canvas.height);//返回ImageData对象
alert(canvasData.width.toString());
alert(canvasData.height.toString());
// 填充灰色【读取像素值和实现灰度计算】
for (var x = 0; x < canvasData.width; x++) {
for (var y = 0; y < canvasData.height; y++) {
// Index of the pixel in the array
var idx = (x + y * canvasData.width) * 4;
var r = canvasData.data[idx + 0];
var g = canvasData.data[idx + 1];
var b = canvasData.data[idx + 2];
// 灰度的计算
var gray = .299 * r + .587 * g + .114 * b;
// assign gray scale value
canvasData.data[idx + 0] = gray; // Red channel
canvasData.data[idx + 1] = gray; // Green channel
canvasData.data[idx + 2] = gray; // Blue channel
canvasData.data[idx + 3] = 255; // Alpha channel
// 新增黑色边框
if (x < 8 || y < 8 || x > (canvasData.width - 8) || y > (canvasData.height - 8)) {
canvasData.data[idx + 0] = 0;
canvasData.data[idx + 1] = 0;
canvasData.data[idx + 2] = 0;
}
}
}
context.putImageData(canvasData, 0, 0); // 处理完成的数据重新载入到canvas二维对象中
} else {
alert("your browser does not support canvas!");
}
}
Hello World!
Gray Filter
00分享举报