【发布时间】:2011-04-04 12:50:03
【问题描述】:
如何使用 Silverlight for windows phone 以 png 格式保存图像(BitmapImage / WriteableBitmap)?
【问题讨论】:
标签: silverlight image png save windows-phone-7
如何使用 Silverlight for windows phone 以 png 格式保存图像(BitmapImage / WriteableBitmap)?
【问题讨论】:
标签: silverlight image png save windows-phone-7
看看 codeplex 上的ImageTools。支持silverlight编码PNG。我不确定这是否适用于 windows phone 7 或是否可以编译为 windows phone 7。
【讨论】:
你可以试试下面的代码。
这段代码对我有用。在您尝试之前,请确保您的可写位图具有透明背景(您可以通过分配给图像控制器图像源来检查)。如果不是,请使背景从它来自的控制器变得透明。
var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var file = await localFolder.CreateFileAsync("temp.png", CreationCollisionOption.ReplaceExisting);
using (var ras = await file.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.None))
{
WriteableBitmap bitmap = imageSource;
var stream = bitmap.PixelBuffer.AsStream();
byte[] buffer = new byte[stream.Length];
await stream.ReadAsync(buffer, 0, buffer.Length);
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, ras);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96.0, 96.0, buffer);
await encoder.FlushAsync();
}
【讨论】: