如何分辨彩色和黑白图片?(40分)

C

chy.com

Unregistered / Unconfirmed
GUEST, unregistred user!
如果我有一个目录里面有许多jpg图,如何用程序区分那些是彩色的图,那些是黑白的?
图像文件里那些字节是图片属性的定义?比如长宽…………,那有着方面的介绍?谢谢!
分不多了,不好意思。
 
容易, 将以下代码:该JPG文件读取image控件, 也可取到一个Tbitmap中
uses JPEG,..........

Image1.Picture := Image1.Picture;
jpeg:= TJPEGImage.Create;
try
jpeg.LoadFromFile(OpenDialog1.Filename);
try
image1.Picture.bitmap.Assign( jpeg );
finally
end;
finally
jpeg.free
end;

再从中随机取n个点, 当每一个点的RGB值都相同时, 认定是灰度图,
只要有一个点的RGB不一致, 就认定是彩色图
可以用TBitMap.ScanLine或者TBitMap.Canvas.Pixels来读取像素值

var
i,j,k, nRed, nGreen, nBlue: integer;
begin
i,j取随机值
nRed := GetRValue(ColorToRGB(Image1.Canvas.Pixels[i,j]));
nGreen := GetGValue(ColorToRGB(Image1.Canvas.Pixels[i,j]));
nBlue := GetBValue(ColorToRGB(Image1.Canvas.Pixels[i,j]));
if (nRed<> nGreen ) or (nRed<>nBlue) or (nGreen<>nBlue) then
是彩色了
else
是黑白了

 
接受答案了.
 
顶部