容易, 将以下代码:该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
是黑白了