1

以下のコード (このスレッドから: How to use Delphi 2010's new WIC capability on Canon files? ) は、WIC イメージを BitMap に開きます。

ただし、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);
4

1 に答える 1

0

TWICImageをassign()TBitmap に変換し、ビットマップの Pixels または ScanLine プロパティにアクセスして、ピクセル データを取得できる必要があります。JPEGをロードするときと同じように。

例(テストされていない疑似コード)

w := TWICImage.Create();
w.LoadFromFile(...)
b := TBitmap.Create;
b.assign( w);
ptr := b.ScanLine[...]
于 2010-08-23T18:10:42.357 に答える