gpt4 book ai didi

c# - 在 WP7 上将位图保存为 PNG

转载 作者:可可西里 更新时间:2023-11-01 08:41:37 26 4
gpt4 key购买 nike

我正在尝试将位图作为 png 文件保存到我的隔离存储中。我在 Codeplex 上找到了一个名为 ImageTools 的库,人们一直在推荐它,但是当我尝试它并试图打开文件时,它说它已损坏。知道我做错了什么吗?

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();
image.SetSource(memoryStream);

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);
}
}

最佳答案

您正在尝试将 JPEG 内存流转换为 PNG。这会使它损坏 - 您应该将位图直接保存为 PNG。

我还没有用 imagetools library 尝试过这个特定的任务, 但如果你 see John Papa's blog ,看起来您需要在作为 ImageTools 的一部分提供的 WriteableBitmap 上调用 ToImage 扩展方法。然后您可以使用编码器拍摄此图像并写入您的开放流。

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

关于c# - 在 WP7 上将位图保存为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com