Saving Bitmap as PNG on WP7

Total Post:149


 1411  View(s)
Rate this:
I'm trying to save a bitmap to my isolated storage as a png file. I found a library on Codeplex called ImageTools which people have been recommending but when i try it and attempt to open the file it says that its corrupt. Any know what i am doing wrong?

private static void SaveImageToIsolatedStorageAsPng(BitmapImage bitmap, string fileName)
    //convert to memory stream
    MemoryStream memoryStream = new MemoryStream();
    WriteableBitmap writableBitmap = new WriteableBitmap(bitmap);
    writableBitmap.SaveJpeg(memoryStream, bitmap.PixelWidth, bitmap.PixelHeight, 0, 100);
    //encode memory stream as PNG
    ExtendedImage image = new ExtendedImage();
    PngEncoder encoder = new PngEncoder();
    //Save to IsolatedStorage
    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    using (var writeStream = new IsolatedStorageFileStream(fileName, FileMode.Create, store))
        encoder.Encode(image, writeStream);
  1. Re: Saving Bitmap as PNG on WP7

    You're attempting to convert the JPEG memory stream into PNG. That will make it corrupt - you should save the Bitmap directly to PNG.

    I haven't tried this particular task with the imagetools library, but if you see John Papa's blog, it looks like you need to call the ToImage extension method on your WriteableBitmap which is provided as part of ImageTools. Then you can use the encoder to take this image and write out to your open stream.

    var img = bitmap.ToImage();
    var encoder = new PngEncoder();
    using (var stream = new IsolatedStorageFileStream(fileName, FileMode.Create, store))
        encoder.Encode(img, stream);


Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.