Search code examples
c#.netwpfbitmapimagebitmapsource

BitmapSource to BitmapImage


I need to parse the content of Clipboard.GetImage() (a BitmapSource) to a BitmapImage. Does anyone knows how can this be done?


Solution

  • I've found a clean solution that works:

    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;