1
我已經完成了這個用於將gridview中的一列中的數組字節轉換爲system.drawing.image在此行中出現錯誤將array的字節轉換爲image時,argumentException是未處理的錯誤
Image returnImage = Image.FromStream(ms);
argumentexception was unhandled
Parameter is not valid.
,代碼如下
private byte[] objtoarray(object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
public Image bytearraytoimage(byte[] bytearray)
{
MemoryStream ms = new MemoryStream(bytearray,0,bytearray.Length);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
private void productGridview_Cellclick(object sender, DataGridViewCellEventArgs e)
{
byte[] bits = null;
Image img = null;
if (e.ColumnIndex != productgridview.Columns["productimage"].Index) return;
if (productgridview.SelectedCells.Count == 0) return;
object selectedValue = productgridview.SelectedCells[0].Value;
bits= objtoarray(selectedValue);
img = bytearraytoimage(bits);
if (img is Image)
{
// Forms are IDisposable, so use them embedded in a using statement.
using (ProductDescriptionForm pf = new ProductDescriptionForm())
{
pf.picture = (Image)selectedValue;
pf.ShowDialog(this);
}
}
}
Image returnImage = Image.FromStream(ms);我已經看到selectedValue的值是這樣的「byte [40678]」 –
我得到了這個語句的值,像這個對象selectedValue = productgridview.SelectedCells [0] .Value;在這個語句之後,選擇的值就像是這個字節[44899] ....我是否在做任何錯誤的事情.... –
thanq彼得來自網格視圖的數據也是數組的字節,因此不需要再次轉換成字節陣列....我犯了一個錯誤..現在它的工作很好..... –