彩色图片转灰度图片的问题,找到的算法要么是针对BMP格式,要么是针对JPEG、JPG格式的,有没有支持多种图像格式的?

解决方案 »

  1.   

    var
      p :PByteArray;
      x,y,p3 :Integer;
      Bmp :TBitmap;
    begin
      Bmp :=TBitmap.Create;
      Bmp.Assign(Image.Picture.Bitmap);
      bmp.pixelformat:=pf24bit;   //这样保险:)
      for y:=0 to Bmp.Height-1 do
      begin
        p:=Bmp.scanline[y];
        for x:=0 to Bmp.Width-1 do
        begin
            p[0]:=(p[2]*2 + p[1] * 5 + p[0]) shr 3;
            p[1]:=p[0];
            p[2]:=p[2];                            
            inc(p,3);
        end;
      end;
      Image.Picture.Bitmap.Assign(Bmp);
      Bmp.Free;
    end;这是将bmp真彩图片转为灰阶图片的代码
      

  2.   

    IEButton的控件,网上有源代码,看看它的源代码就好了
    IE的按钮不就是你所要的效果吗
      

  3.   

    你先将其它格式的图像转换成BMP,处理后再转换回去保存不就可以了
    GraphicEx就支持N种格式
      

  4.   

    不转成BMP就难以对图像作象素级处理
      

  5.   

    基本是都是转到BMP做过度再处理的,各种格式与BMP进行转换