using System;
//using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.IO;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media.Imaging;
namespace Karaoke_Kingpin.Converters
{
[ValueConversion(typeof(System.Drawing.Bitmap), typeof(BitmapImage))]
public class BitmapToImageSourceConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
if (value is Bitmap bitmap)
using (MemoryStream memory = new MemoryStream())
bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Png);
memory.Position = 0;
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memory;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
bitmapImage.Freeze(); // Important for use in a different thread!
return bitmapImage;
}
return null;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
throw new NotImplementedException();