Я в основном пытаюсь преобразовать изображение GIF в изображение PNG, используя библиотеку ImageTools в WP7.
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 равен 0x0 после того, как я позвонил gifImage.SetSource(new MemoryStream(gifBytes))
. Для чего он стоит, я проверил, что gifBytes[]
содержит действительные байты GIF ...
Есть идеи, что я делаю не так?