2010-08-26 66 views

回答

0

查看codeplex上的ImageTools。这支持Silverlight编码PNG。我不确定这是否适用于Windows Phone 7或可以编译为Windows Phone 7.

0

您可以尝试以下代码。

此代码适用于我。在尝试之前,请确保您的writablebitmap具有透明背景(您可以通过分配给图像控制器图像源进行检查)。如果没有,则使来自其的控制器透明。

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