我對將圖像保存到數據庫的這種東西很陌生,甚至當我認爲這是非常直截了當的時候,事實並非如此。我想要做的是從同一臺計算機以任何格式讀取圖像文件,並將其顯示在圖片框中,然後將圖像轉換爲字節以將其保存在數據庫中。到目前爲止,我可以在圖片框中顯示圖像,但我無法將圖像轉換爲字節。這是我的代碼:無法將圖像轉換爲字節[] C#
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+.
上發生了什麼任何想法?
是錯誤總是發生,或者只是偶爾,或者使用時間長的申請後? – Chris 2010-01-29 05:16:28
你永遠不會在第一個方法中分配'文件'變量......我認爲這只是真實代碼的一個提取?否則,編譯器會抱怨在分配之前使用'文件'變量? – 2010-01-29 06:40:31