私は基本的にWP7のImageToolsライブラリを使用してGIF画像をPNG画像に変換しようとしています。WP7でBitmapImageのSetSourceを呼び出すときにOutOfMemoryExceptionが発生する
byte[] gifBytes = // GIF image bytes from the web
ImageTools.IO.Decoders.AddDecoder<GifDecoder>();
ImageTools.IO.Encoders.AddEncoder<PngEncoder>();
ImageTools.IO.Png.PngEncoder enc = new PngEncoder();
ExtendedImage gifImage = new ExtendedImage();
gifImage.SetSource(new MemoryStream(gifBytes));
MemoryStream pngBytes = new MemoryStream();
enc.Encode(gifImage, pngBytes);
BitmapImage pngImage = new BitmapImage();
pngImage.SetSource(pngBytes);
はできるだけ早く私はpngImage.SetSource(pngBytes)
を呼び出すように私はOutOfMemoryException
を取得します。
gifImage.SetSource(new MemoryStream(gifBytes))
と呼んだあと、gifImageが0x0であることをデバッガが示しているので、私はここではうんざりしないかもしれません。その価値については、私はgifBytes[]
に有効なGIFバイトが含まれていることを確認しました...
私は間違って何をしていますか?
作業している画像の寸法は? –
私はそれを前もって知りません。私は基本的に、私が知っているバイトセットはGIFイメージです。好奇心のために、この文脈でこの情報が必要なのはどこですか? ExtendedImage(つまりGIF)を作成するには、そのことを知る必要がありますか? –
ああ - 私が今持っているこの特定のケースでは、画像は600px×205pxです。 –