js核心程式碼
/*
*canvasid:html canvas標籤id
*imageid:html img 標籤id
*gridcountX:x軸圖片分割個數
*gridcountY:y軸圖片分割個數
*gridspace:宮格空隙
*offsetX:x*y宮格相對canvas(0,0)X座標偏移量
**offsetX:x*y宮格相對canvas(0,0)Y座標偏移量
*isanimat:是否啟用動畫顯示
*/
function ImageGrid(canvasid, imageid, gridcountX, gridcountY, gridspace, offsetX, offsetY, isanimat) {
var image = new Image();
var g = document.getElementById(canvasid).getContext("2d");
var img=document.getElementById(imageid);
image.src=img.getAttribute("src");
g.drawImage(image, 0, 0);
var imagedata = g.getImageData(0, 0, image.width, image.height);
var grid_width = imagedata.width / gridcountX;
var grid_height = imagedata.height / gridcountY;
//動畫
if (isanimat) {
var x = 0,
y = 0;
var inter = setInterval(function() {
g.putImageData(imagedata, gridspace * x offsetX, gridspace * y offsetY, grid_width * x, grid_height * y, grid_width, grid_width * x, grid_height * y, grid_width, grid_height);
x
if (x == 0) {
y
}
}, 200);
y == gridcountY ? clearInterval(inter) : null;
} else { //非動畫
for (var y = 0; y
for (var x = 0; x
g.putImageData(imagedata, gridspace * x offsetX, gridspace * y offsetY, grid_width * x, grid_height * y,, grid_width)
}
}
}
}
html代碼
使用方法:
//eg...
ImageGrid("canvas1", "image1", 3, 3, 2, 220, 0, true); //3*3
ImageGrid("canvas1", "image1", 4, 4, 2, 440, 0, true); //4*4
ImageGrid("canvas1", "image1", 3, 4, 2, 660, 0, false); //3*4
程式碼很簡潔,效果卻非常酷,朋友們學會了嗎?