Преобразование байтового массива в изображение

Я хочу преобразовать массив байтов в изображение.

Это мой код базы данных, откуда я получаю массив байтов:

public void Get_Finger_print()
{
    try
    {
        using (SqlConnection thisConnection = new SqlConnection(@"Data Source=" + System.Environment.MachineName + "\\SQLEXPRESS;Initial Catalog=Image_Scanning;Integrated Security=SSPI "))
        {
            thisConnection.Open();
            string query = "select pic from Image_tbl";// where Name='" + name + "'";
            SqlCommand cmd = new SqlCommand(query, thisConnection);
            byte[] image =(byte[]) cmd.ExecuteScalar();
            Image newImage = byteArrayToImage(image);
            Picture.Image = newImage;
            //return image;
        }
    }
    catch (Exception) { }
    //return null;
}

Мой код преобразования:

public Image byteArrayToImage(byte[] byteArrayIn)
{
    try
    {
        MemoryStream ms = new MemoryStream(byteArrayIn,0,byteArrayIn.Length);
        ms.Write(byteArrayIn, 0, byteArrayIn.Length);
        returnImage = Image.FromStream(ms,true);//Exception occurs here
    }
    catch { }
    return returnImage;
}

Когда я дойду до строки с комментарием, возникает следующее исключение: Параметр недействителен.

Как я могу исправить то, что вызывает это исключение?

90
задан Luke Girvin 28 October 2019 в 10:32
поделиться

2 ответа

Первая Установка Этот Пакет:

Пакет Установки SixLabors. ImageSharp - Версия, 1.0.0-beta0007

[SixLabors. ImageSharp] [1] [1]: https://www.nuget.org/packages/SixLabors. ImageSharp

Затем использует Ниже Кода Для Массива байтов Броска Для Обработки изображений:

Image<Rgba32> image = Image.Load(byteArray); 

Для Получают Использование ImageFormat Ниже Кода:

IImageFormat format = Image.DetectFormat(byteArray);

Для Видоизменяют Использование Изображения Ниже Кода:

image.Mutate(x => x.Resize(new Size(1280, 960)));
0
ответ дан 24 November 2019 в 06:59
поделиться

Один лайнер:

Image bmp = (Bitmap)((new ImageConverter()).ConvertFrom(imageBytes));
0
ответ дан 24 November 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: