【问题标题】:How to save BitmapImage / WriteableBitmap in png format (Silverlight/windows phone)?如何将 BitmapImage / WriteableBitmap 保存为 png 格式(Silverlight/windows 手机)?
【发布时间】:2011-04-04 12:50:03
【问题描述】:

如何使用 Silverlight for windows phone 以 png 格式保存图像(BitmapImage / WriteableBitmap)?

【问题讨论】:

    标签: silverlight image png save windows-phone-7


    【解决方案1】:

    看看 codeplex 上的ImageTools。支持silverlight编码PNG。我不确定这是否适用于 windows phone 7 或是否可以编译为 windows phone 7。

    【讨论】:

      【解决方案2】:

      你可以试试下面的代码。

      这段代码对我有用。在您尝试之前,请确保您的可写位图具有透明背景(您可以通过分配给图像控制器图像源来检查)。如果不是,请使背景从它来自的控制器变得透明。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-19
        • 1970-01-01
        • 2013-04-15
        • 1970-01-01
        相关资源
        最近更新 更多