Enobong Adahada Ответов: 2

Изображение имеет полосы после сохранения в БД


Я захватил изображение с веб-камеры, используя emgu.Резюме-библиотеки.
после сохранения в БД изображение имеет полосы при извлечении.

Что я уже пробовал:

это не мой код:
Bitmap bitmap = new Bitmap(CamImageBox.Image.Bitmap);
                Image img = (Image)bitmap;
                byte[] passportByte = ProcessImageData.CopyImageToByteArray(img);

  public static  Byte[] ImageToByte(Bitmap imageSource)
        {
            Byte[] buffer = null;
            MemoryStream stream = new MemoryStream();
            imageSource.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
            buffer = stream.ToArray();
            return buffer;
        }



Извлечение у меня есть.

public static Bitmap GetImageFromByteArray(byte[] byteArray)
        {
            Bitmap bm = (Bitmap)_imageConverter.ConvertFrom(byteArray);

            if (bm != null && (bm.HorizontalResolution != (int)bm.HorizontalResolution ||
                               bm.VerticalResolution != (int)bm.VerticalResolution))
            {
                
                bm.SetResolution((int)(bm.HorizontalResolution + 0.5f),
                                 (int)(bm.VerticalResolution + 0.5f));
            }

            return bm;
        }


спасибо.

2 Ответов

Рейтинг:
2

OriginalGriff

Начните с вашего _imageConverter.ConvertFrom метод и посмотреть, что он делает, и что он возвращает.
То, как я это делаю:

byte[] data = (byte[])reader["Picture"];
using (MemoryStream stream = new MemoryStream(bytes))
    {
    myImage = new Bitmap(stream);
    }
Код "Image to byte array", который вы используете, такой же, как и мой.
Посмотрите на изображение, прежде чем установить разрешение, а также прокомментируйте этот код, чтобы убедиться, что он не вызывает проблемы.
Если это не исправит ситуацию, то посмотрите на входное изображение, которое вы сохраняете в БД, и убедитесь, что баров на нем нет, прежде чем конвертировать его в байтовый массив.


Рейтинг:
0

Enobong Adahada

Я понял,
мне пришлось уточнить размер растрового изображения
к размеру элемента управления изображением, размещающего его.
Спасибо за Ваш вклад.