Конвертировать двоичный файл обратно в изображение - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть служба wcf и Windows Forms.Мне удалось преобразовать изображение в двоичный файл и сохранить его на моем сервере EmpTable в sql server в типе данных varbinary (MAX).Для доступа к моим таблицам я использовал модель данных linq и entity.Теперь я пытаюсь отобразить EmpTable для DataGridView на моих формах, и я заметил, что в столбце отображается «System.byte []».Поэтому, когда я попытался преобразовать его обратно в изображение, это не удалось.Теперь я не знаю, как мне получить данные и преобразовать их обратно в изображение.Все мои команды linq находятся в моем сервисе, и я использую их в своих winforms.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Здесь функция для преобразования из byte[] в BitmapImage.

    /// <summary>
    /// Convert byte[] to bitmapimage
    /// </summary>
    /// <param name="array"></param>
    /// <returns></returns>
    public static BitmapImage byteArrayToImage(byte[] array)
    {
        if (array != null)
        {
            using (var ms = new MemoryStream(array))
            {
                var image = new BitmapImage();
                image.BeginInit();
                image.CacheOption = BitmapCacheOption.OnLoad;
                image.StreamSource = ms;
                image.EndInit();
                return image;
            }
        }
        return null;
    }
0 голосов
/ 12 декабря 2018

Вы можете использовать MemorySrteam для преобразования byte[] в изображение:

var bytes = getBytes();     // get bytes from db
Image img;
using (MemoryStream ms = new MemoryStream(bytes))
{
    img = Image.FromStream(ms);
}

Чтобы сохранить изображение в DataGrid, установите для столбца изображения значение DataGridViewImageColumn:

DataGridViewImageColumn imgGrd = new DataGridViewImageColumn();
imgGrd.Image = img;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...