下面的代码(来自此线程:如何在佳能文件上使用 Delphi 2010 的新 WIC 功能?)将 WIC 图像打开到位图中。
但是,如果 WIC 像素值的动态范围很大,则此代码会丢失很多信息,因为它必须将宽动态范围缩放到位图像素可以容纳的低范围。
procedure TForm116.Button1Click(Sender: TObject);
var
WIC: TWICImage;
begin
WIC := TWICImage.Create;
try
WIC.LoadFromFile('MyFilename.raw');
Image1.Picture.Graphic.Assign(WIC);
finally
WIC.Free;
end;
end;
谁能给我看示例代码,让我直接从 TWICImage 读取像素值,这样我就可以访问图像数据而不会丢失信息?我需要每个像素的强度(灰度)值,如果不能直接使用,也许可以从 RGB 值计算?
就像是:
var
PixelValue: Integer; // Grayscale
for Row := 0 to WIC.Width do
for Col := 0 to WIC.Height
PixelValue := WIC.GetPixelValue(Row, Col);