2

次のコードは、私が直面している問題を示しています。CR2ファイルをロードすると

var format = FREE_IMAGE_FORMAT.FIF_RAW;
retVal = FreeImage.LoadBitmap("AJ2A1447.cr2", ref format);

次に、RAWファイルを正常にロードします。次のようなものを使用すると

using (Stream stream = new FileStream("AJ2A1447.cr2", FileMode.Open, FileAccess.Read))
{
  var format = FREE_IMAGE_FORMAT.FIF_RAW;
  freeImageHandle = FreeImage.LoadFromStream(stream, ref format);
  if (freeImageHandle.IsNull)
  {
    throw new Exception("Unable to load image from stream");
  }

  retVal = FreeImage.GetBitmap(freeImageHandle);
}

freeImageHandleがnullであるため、失敗しました。テストには FileStream を使用します。実際のコードでは MemoryStream を使用します。

LoadFromStream が失敗する理由の手がかりはありますか?

4

2 に答える 2

1

there is number of RAW formats and I doubt if FREE_IMAGE_FORMAT.FIF_RAW knows how to decode CR2.

http://en.wikipedia.org/wiki/Raw_image_format

Try to use windows generated bitmap and jpg to see if your code works.

于 2013-08-10T10:14:47.050 に答える