Нужно для
System.Windows.Controls. Image
Из System.Windows.Controls.Image картинку можете скопировать в переменную BitmapImage image
и передать в метод, и получить на выходе строку.
/// <summary>
/// Преобразование изображения в строку Base64
/// </summary>
/// <param name="image">целевое изображение</param>
/// <returns>строка Base64</returns>
public static string ImageToBase64(BitmapImage image)
{
//проверяем параметр
if (image == null) throw new ArgumentException($"{nameof(image)} не может пустым");
//запоминать будем jpeg
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
//содержимое картинки
encoder.Frames.Add(BitmapFrame.Create(image));
byte[] imageBytes = null;
using (MemoryStream ms = new MemoryStream())
{
//пишем в поток
encoder.Save(ms);
//поток в массив байт
imageBytes = ms.ToArray();
}
//массив байт конвертируем в строку
string result = Convert.ToBase64String(imageBytes);
//отдаем результат
return result;
}
/// <summary>
/// Получение изображения из строки Base64
/// </summary>
/// <param name="base64String">строка Base64</param>
/// <returns>целевое изображение</returns>
public static BitmapImage Base64ToImage(string base64String)
{
//проверка параметра
if (String.IsNullOrEmpty(base64String)) throw new ArgumentException($"{nameof(base64String)} не может быть пустым");
//Конвертация Base64 String в byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
BitmapImage result = new BitmapImage();
using (MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
{
//читаем картинку из потока
result.BeginInit();
result.CacheOption = BitmapCacheOption.OnLoad;
result.StreamSource = ms;
result.EndInit();
}
return result;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть DataGridView, который отображает коллекцию экземпляров SomeClass
Добрый день! Подскажите, где можно скачать готовые стили для компонент WPF?
Есть несколько классов с параметрами, задача-один из них заменить или добавить класс-конструктор Задачка лёгкая, уровня начальной школы,...
Такая ошибка при попытке создать Splash заставкуПример был взять на MSDN