У меня есть личная база данных, в которой есть столбец для вставки картинок.Я полностью преобразовал свою картинку из PictureBox в двоичный код, и когда я захожу в базу данных, я могу правильно видеть двоичные коды.Я также запрограммировал функцию преобразования двоичных кодов в изображение и установил обработчик событий, чтобы пользователь мог щелкнуть ячейку в DataGridView, и все значения будут отображаться в определенных элементах управления.
Сначала я получил ошибку, и эта ошибка была примерно такой:
Невозможно преобразовать объект в байт []
Я решил эту проблему с помощьюпрограммирование функции и преобразование двоичного объекта в byte [], но теперь, когда я пытаюсь преобразовать byte[]
(двоичный массив) в изображение, я сталкиваюсь с ошибкой и не могу решить эту проблему.и проблема:
Параметр недействителен.
Вот мой код:
Преобразование изображения в двоичный файл
byte[] ConvertImageToBinary(Image img)
{
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
}
Конвертировать объект в двоичный файл
byte[] ObjectToByteArray(object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
Конвертировать двоичный код в изображение
Image ConvertBinaryToImage(byte[] data)
{
using (MemoryStream ms = new MemoryStream(data))
{
return Image.FromStream(ms);
}
}
И, наконец, вот мой код в
private void DataCustomer_CellContentClick(object sender, DataGridViewCellEventArgs e):
if (DataCustomer.CurrentRow.Cells[9].Value == null)
PictureCustomer.Image = null;
else
{
byte[] ImageByte = ObjectToByteArray(DataCustomer.CurrentRow.Cells[9].Value);
PictureCustomer.Image = ConvertBinaryToImage(ImageByte);
}
Любое полезное предложение будет оценено.
Заранее спасибо