Я очень новичок в этом деле сохранения изображений в БД, и даже когда я думал, что это очень просто, это не так. То, что я пытаюсь сделать, это прочитать и файл изображения с того же компьютера в любом формате, отобразить его в графическом окне, а затем преобразовать изображение в байты, чтобы сохранить его в БД. До сих пор я могу отображать изображение в графическом окне, но не могу преобразовать изображение в байты. Вот мой код:
private void DisplayImage()
{
if (openFileDialog.ShowDialog(this) == DialogResult.OK)
{
try
{
Stream file;
if ((archivo = openFileDialog.OpenFile()) != null)
{
using (file)
{
pictureBox.Image = Image.FromStream(file);
}
}
}
catch (Exception ex)
{
...
}
}
}
Это простой метод, который просто отображает изображение в графическом окне. Настоящая проблема заключается в следующем методе:
public static byte[] ConvertImageToBytes(Image image)
{
if (image != null)
{
MemoryStream ms = new MemoryStream();
using (ms)
{
image.Save(ms, ImageFormat.Bmp);
byte[] bytes = ms.ToArray();
return bytes;
}
}
else
{
return null;
}
}
Когда он пытается сохранить изображение в потоке памяти, я получаю сообщение об ошибке:
System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
Есть идеи о том, что происходит?