【 tulaoshi.com - 编程语言 】
                             
                              void S_Filter(Graphics::TBitmap *Source,Graphics::TBitmap *NewPic,int Div,int xg)//图片效果 
  { 
  //0:模糊1:锐化3:雕刻 
  int flt[9]; 
  switch (xg) 
    { 
    case 0:
      { 
      flt[0]=5;flt[1]=5;flt[2]=5; 
      flt[3]=5;flt[4]=60;flt[5]=5; 
      flt[6]=5;flt[7]=5;flt[8]=5; 
      }; 
      break; 
    case 1:
      { 
      flt[0]=0;flt[1]=-5;flt[2]=0; 
      flt[3]=-5;flt[4]=30;flt[5]=-5; 
      flt[6]=0;flt[7]=-5;flt[8]=0; 
      }; 
      break; 
    default:
      { 
      flt[0]=-15;flt[1]=-15;flt[2]=0; 
      flt[3]=-15;flt[4]=15;flt[5]=15; 
      flt[6]=0;flt[7]=15;flt[8]=0; 
      }; 
  }   
  int XX[3]; 
  BYTE *ptr,*ptru,*ptrd,*ptr1;   
  NewPic-Assign(Source); 
  for (int y = 1; y  NewPic-Height-1; y++) 
    { 
    ptr=(BYTE *)NewPic-ScanLine[y]; 
    ptr1=(BYTE *)Source-ScanLine[y]; 
    ptru=(BYTE *)Source-ScanLine[y-1]; 
    ptrd=(BYTE *)Source-ScanLine[y+1]; 
    for(int x=3;x(Source-Width-1)*3;x+=3)
      { 
      XX[0]=0;XX[1]=0;XX[2]=0; 
      for(int i=-1;i=1;i++) 
        for(int j=0;j3;j++) 
          XX[j]+=ptr1[x+3*i+j]*flt[4+i];
          for(int i=-1;i=1;i++) 
            for(int j=0;j3;j++) 
              XX[j]+=ptru[x+3*i+j]*flt[1+i]; 
              for(int i=-1;i=1;i++) 
                for(int j=0;j3;j++) 
                  XX[j]+=ptrd[x+3*i+j]*flt[7+i]; 
                  for (int i=0;i3;i++)
                    { 
                    XX[i]=XX[i]/Div;   
                       XX[i]=MAX(XX[i],0); 
                    XX[i]=MIN(XX[i],255); 
                    ptr[x+i]=XX[i]; 
                    } 
      } 
    } 
  }