HTML5¼¼Êõ

ÀûÓÃHTML5 Canvas×öÔÚÏßͼÏñ´¦Àí

×ÖºÅ+ ×÷Õߣº À´Ô´£ºhtml5ÖÐÎÄÍø    2014-11-17 18:29 ÎÒÒªÆÀÂÛ( )

HTML 5ÖÐµÄ canvas ÔªËØÊÇÏ൱ǿ´óµÄ£¬ÀûÓÃËûµÄ getImageData ·½·¨¿ÉÒÔ¶ÔÔØÈëµÄͼÏñÖ±½Ó½øÐÐλͼ²Ù×÷¡£µ«ÊÇÖ±½Ó¶Ôλͼ½øÐвÙ×÷±È½ÏÂé·³£¬Èç¹ûÀûÓþí»ý¾ØÕóÕâ¸ö¹¤¾ßµÄ»°£¬¿ÉÒÔͨ¹ý¼¸¸ö¼òµ¥µÄ²ÎÊýʵÏÖ¸´ÔÓµÄЧ...

 

HTML 5ÖÐµÄ canvas ÔªËØÊÇÏ൱ǿ´óµÄ£¬ÀûÓÃËûµÄ getImageData ·½·¨¿ÉÒÔ¶ÔÔØÈëµÄͼÏñÖ±½Ó½øÐÐλͼ²Ù×÷¡£µ«ÊÇÖ±½Ó¶Ôλͼ½øÐвÙ×÷±È½ÏÂé·³£¬Èç¹ûÀûÓþí»ý¾ØÕóÕâ¸ö¹¤¾ßµÄ»°£¬¿ÉÒÔͨ¹ý¼¸¸ö¼òµ¥µÄ²ÎÊýʵÏÖ¸´ÔÓµÄЧ¹û¡£

ËùνµÄ¾ØÕóµÄ¾í»ý£¬¾ÍÊÇÈçÏÂͼÏÔʾµÄÄÇÑù£¬µ±¼ÆËãºìÉ«¿òÖеÄÊýÖµµÄʱºò£¬·Ö±ðÏÈÌáÈ¡ÖÜΧÂÌ¿òÖÐ8¸öÊý×Ö£¬È»ºóÓëÊ©¼ÓµÄÄǸö¾ØÕóÖжÔӦλÖÃÏà³Ë£¬È»ºó°Ñ¸÷¸ö³Ë»ý¼ÓÔÚÒ»Æð£¬¾ÍµÃµ½ÁË×îÖÕµÄÖµÁË¡£

\

±ÈÈçÉÏͼÖеÄ42ÊÇÕâôÀ´µÄ:

  (40*0)+(42*1)+(46*0) 
+ (46*0)+(50*0)+(55*0) 
+ (52*0)+(56*0)+(58*0) 
= 42

Õâ¾ÍÊǾí»ýÁË¡£È»ºó£¬ËùνµÄ¶ÔͼÏñµÄ¾í»ý²Ù×÷£¬¾ÍÊÇÖ¸¶ÔͼÏñÉϵÄÿһµãµÄÏñËØÖµ£¬ÓÃÕâ¸ö¾ØÕó½øÐÐÔËË㣬µÃµ½Ò»¸öеÄÖµ¡£

±ÈÈçÏÂÃæÕâÕÅͼ

\

ÀûÓÃÏÂÃæÕâ¸ö¾ØÕó 
-6 -3 0 
-3 -1 3 
0 3 6 
¾ÍÁ¢¿ÌÄܹ»µÃµ½¸¡µñЧ¹û¡£

\

È»ºóΪÁËʹÓøü·½±ã£¬Í¨³£»¹»á¸ø×îÖÕÖµ³ýÒÔÒ»¸öϵÊýÒÔ¼°¼ÓÉÏÒ»¸öÆ«ÒÆ¡£ 
±ÈÈçÏÂÃæÕâ¸ö¾ØÕó¡£ 
0 0 0 
0 1 0 
0 0 0 
Õâ¸ö¾ØÕó£¨Êµ¼ÊÉÏÕâ¸ö¾ØÕó±¾Éí²»¶ÔͼÏñ½øÐÐÈκβÙ×÷£©£¬È»ºóÉèÖÃϵÊýΪ-1£¬Æ«ÒÆÎª255µÄ»°£¬¾ÍÄÜʵÏÖ·´É«Ð§¹ûÁË£¬ÕæÊÇÏ൱µÄÉñÆæ¡£

\

ΪÁ˼ò»¯²Ù×÷£¬ÎÒдÁ˸ö¼òµ¥µÄº¯ÊýÀ´¶ÔͼÏñÊý¾Ý½øÐвÙ×÷¡£ 
º¯ÊýµÚÒ»¸ö²ÎÊýÊÇ canvasÉ쵀 imageData ¶ÔÏó 
µÚ¶þ¸ö²ÎÊýÊÇ´«Èë¾ØÕóËù¶ÔÓ¦µÄÊý×飬Èç¹ûÊÇÏÂÃæÕâÑùµÄ¾ØÕó 
a b c 
d e f 
g h i 
Ôò´«ÈëµÚ¶þ¸öµÄ²ÎÊýӦΪ [a,b,c,d,e,f,g,h,i] 
µÚÈý¸ö²ÎÊýÊdzýÊýÒò×Ó¡£ 
µÚËĸö²ÎÊý¾ÍÊÇÆ«ÒÆÁ¿¡£

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// ¼ÆËã¾í»ý¾ØÕóµÄº¯Êý
function ConvolutionMatrix(input, matrix, divisor, offset){
    // ´´½¨Ò»¸öÊä³öµÄ imageData ¶ÔÏó
    var output = document.createElement("canvas")
                         .getContext('2d').createImageData(input);
    var w = input.width, h = input.height;
    var iD = input.data, oD = output.data;
    var m = matrix;
    // ¶Ô³ýÁ˱ßÔµµÄµãÖ®ÍâµÄÄÚ²¿µãµÄ RGB ½øÐвÙ×÷£¬Í¸Ã÷¶ÈÔÚ×îºó¶¼ÉèΪ 255
    for (var y = 1; y < h-1; y += 1) {
        for (var x = 1; x < w-1; x += 1) {
            for (var c = 0; c < 3; c += 1) {
                var i = (y*w + x)*4 + c;
                oD[i] = offset
                    +(m[0]*iD[i-w*4-4] + m[1]*iD[i-w*4] + m[2]*iD[i-w*4+4]
                    + m[3]*iD[i-4]     + m[4]*iD[i]     + m[5]*iD[i+4]
                    + m[6]*iD[i+w*4-4] + m[7]*iD[i+w*4] + m[8]*iD[i+w*4+4])
                    / divisor;
            oD[(y*w + x)*4 + 3] = 255; // ÉèÖÃ͸Ã÷¶È
    return output;

 

ÎÒÕâÀïֻдÁ˸ö3½×µÄ¾í»ý¾ØÕó¡£Èç¹û¾õµÃ²»¹»high»¹¿ÉÒÔ×Ô¼ºÊµÏÖÒ»¸ö5½×µÄ¡£

¡¡

1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎ×ªÔØµÄ¸å¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬Çë×ªÔØÊ±Îñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

Ïà¹ØÎÄÕÂ
  • HTML5 ½ø½×ϵÁУºÍÏ·Å API ʵÏÖÍÏ·ÅÅÅÐò - _ÁÖöÎ

    HTML5 ½ø½×ϵÁУºÍÏ·Å API ʵÏÖÍÏ·ÅÅÅÐò - _ÁÖöÎ

    2017-05-02 11:02

  • HTML5 ½ø½×ϵÁУºindexedDB Êý¾Ý¿â - _ÁÖöÎ

    HTML5 ½ø½×ϵÁУºindexedDB Êý¾Ý¿â - _ÁÖöÎ

    2017-04-27 14:02

  • HTML5 ¸ß¼¶ÏµÁУºweb Storage - _ÁÖöÎ

    HTML5 ¸ß¼¶ÏµÁУºweb Storage - _ÁÖöÎ

    2017-04-27 14:01

  • HTML5ºÍCSS3 - ±¼ÅÜÔÚÆðÅÜÏßٮٮÕß

    HTML5ºÍCSS3 - ±¼ÅÜÔÚÆðÅÜÏßٮٮÕß

    2017-04-20 13:00

ÍøÓѵãÆÀ