Как сохранить изображение (BitmapImage/WriteableBitmap) в формате png с помощью Silverlight для Windows Phone?
Как сохранить BitmapImage/WriteableBitmap в формате png (Silverlight/Windows Phone)?
Ответы (2)
Взгляните на ImageTools на codeplex. Это поддерживает кодировку Silverlight PNG. Я не уверен, будет ли это работать или может быть скомпилировано для Windows Phone 7.
person
AnthonyWJones
schedule
26.08.2010
Вы можете попробовать следующий код.
Этот код работал для меня. Прежде чем пытаться, убедитесь, что ваш 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();
}
person
gayan1991
schedule
29.04.2016