BitmapSource到BitmapImage
我需要将Clipboard.GetImage()
( BitmapSource
)的内容解析为BitmapImage
。 有谁知道怎么做?
我找到了一个干净的解决方案:
BitmapSource bitmapSource = Clipboard.GetImage(); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); MemoryStream memoryStream = new MemoryStream(); BitmapImage bImg = new BitmapImage(); encoder.Frames.Add(BitmapFrame.Create(bitmapSource)); encoder.Save(memoryStream); memoryStream.Position = 0; bImg.BeginInit(); bImg.StreamSource = memoryStream; bImg.EndInit(); memoryStream.Close(); return bImg;
using System.IO; // namespace for using MemoryStream private static byte[] ReadImageMemory() { BitmapSource bitmapSource = BitmapConversion.ToBitmapSource(Clipboard.GetImage()); JpegBitmapEncoder encoder = new JpegBitmapEncoder(); MemoryStream memoryStream = new MemoryStream(); encoder.Frames.Add(BitmapFrame.Create(bitmapSource)); encoder.Save(memoryStream); return memoryStream.GetBuffer(); } // and calling by this example........ byte[] buffer = ReadImageMemory();