Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1257675
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-11-05 09:42:18



如何用DELPHI区分彩色图和黑白图(多色与单色)??  
  如何用DELPHI区分彩色图和黑白图(多色与单色)??  
 

急呀,帮忙呀

查一查整个图像上每一个像素的颜色的RGB分量不就行了吗?  
  只要某个点的R,G,B分量不相等,   就是有彩色.

图片信息参看图片格式

scanline。  
  枚举象素,如果有一个象素是彩色的,那就退出。  
   
  如果全是黑白2色,那就是单色了

临时写了个,还没试过。  
   
  function   IsBlackAndWhiteGraphic(G:   TGraphic):   Boolean;  
  type  
      PRGBTripleArray   =   ^TRGBTripleArray;  
      TRGBTripleArray   =   array[0..32767]   of   TRGBTriple;  
      function   GetSLColor(pRGB:   TRGBTriple):   TColor;  
      begin  
          Result   :=   RGB(pRGB.rgbtRed,   pRGB.rgbtGreen,   pRGB.rgbtBlue);  
      end;  
  var  
      p:   PRGBTripleArray;  
      x,   y:   Integer;  
      Bitmap:   TBitmap;  
  begin  
      Result:=   True;  
      Bitmap:=   TBitmap.Create;  
      try  
          Bitmap.PixelFormat:=   pf24bit;  
          Bitmap.Width:=   G.Width;  
          Bitmap.Height:=   G.Height;  
          Bitmap.Canvas.Draw(0,0,G);  
   
          for   y   :=   0   to   Bitmap.Height   -   1   do  
          begin  
              p:=   Bitmap.ScanLine[y];  
              for   x   :=   0   to   (Bitmap.Width   -   1)   do  
              begin  
                  if   (GetSLColor(p[x])   <>   clBlack)   and   (GetSLColor(p[x])   <>   clWhite)   then  
                  begin  
                      Result:=   False;  
                      Break;  
                  end;  
              end;  
          end;  
   
      finally  
          Bitmap.Free;  
      end;  
  end;

多色,单色的区别只要在  
  if   (GetSLColor(p[x])   <>   clBlack)   and   (GetSLColor(p[x])   <>   clWhite)   then  
  做判断就可以了。  
 

楼上的   看过   灰度图么。。

var  
      Bitmap:   TBitmap;  
  begin  
      Bitmap   :=   TBitmap.Create;  
      Bitmap.LoadFormFile('c:\1.bmp');  
      if   Bitmap.Monochrome   then  
          ShowMessage('黑白');  
      Bitmap.Free;  
  end;  
 



[新闻]雅虎将于12月3日关视频直播闭网站Yahoo Live
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(561) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~