Gunakan kanvas untuk mencapai kesan penapis imej dengan kemahiran tutorial demonstration_html5

WBOY
Lepaskan: 2016-05-16 15:48:46
asal
1806 orang telah melayarinya

Ini ialah kesan khas yang sangat menarik, mensimulasikan kesan berbutir seperti titik yang muncul apabila kamera menangkap skrin TV. Saiz zarah direalisasikan melalui matriks transformasi dan boleh diselaraskan dengan sewenang-wenangnya.

1. Dapatkan data imej

Salin kod
Kod adalah sebagai berikut:

img.src = 'http://bloglaotou.duapp.com/wp-content/themes/frontopen2/tools/filter/image2.jpg';
canvas.width = img.width ;
canvas.height = img.height;
var context = canvas.getContext(“2d”); context.getImageData (0, 0, canvas.width, canvas.height);


2.
Salin kod

Kod adalah seperti berikut:
var m_VideoType=0; var pattern=new Array(); >tukar (m_VideoType) { kes0://VIDEO_TYPE.VIDEO_STAGGERED:
{
corak = [
0, 1,
0, 2,
1, 2 ,
1, 0 ,
2, 0,
2, 1,
]; {
corak = [
0,
1,
2,
]; {
corak =
[
0, 1, 2,
2, 0, 1,
1, 2, 0,
]; }
lalai:
{
corak =
[
0, 1, 2, 0, 0,
1, 1, 1, 2, 0,
0, 1, 2, 2, 2 ,
0, 0, 1, 2, 0,
0, 1, 1, 1, 2,
2, 0, 1, 2, 2,
0, 0, 0, 1 , 2,
2, 0, 1, 1, 1,
2, 2, 0, 1, 2,
2, 0, 0, 0, 1,
1, 2, 0 , 1, 1,
2, 2, 2, 0, 1,
1, 2, 0, 0, 0,
1, 1, 2, 0, 1 ,
1, 2 , 2, 2, 0,
];
pecah; >var pattern_height = [6, 3, 3, 15 ]; 🎜>Salin kod


Kod adalah seperti berikut:


untuk ( var x = 0; x < canvasData.width; x ) {
untuk ( var y = 0; y < canvasData y ) {
// Indeks piksel dalam susunan
var idx = (x y * canvasData.width) * 4; .data[idx 0];
var g = canvasData.data[idx 1]; nTinggi = pattern_height[m_VideoType];
var indeks = nWidth * (y % nTinggi) (x % nWidth); r = fclamp0255(2 * r); 2 * b);
// tetapkan nilai skala kelabu
canvasData.data[idx 0] = r; // saluran merah
canvasData.data[idx 1] = // Saluran hijau
canvasData.data[idx 2] = b ; // Saluran biru
canvasData.data[idx 3] = 255; // Saluran alfa
// Tambahkan sempadan hitam
jika(x < 8 | |. y < 8 ||. x > (canvasData.width - 8) || canvasData.data[idx 1] = 0;
canvasData.data[idx 2] = 0;
}
}
}

4 data yang ditapis

Salin kod
Kod adalah seperti berikut:

konteks .putImageData(canvasData, 0, 0 );
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan