[英]How to I convert to image from Byte[] Array?
我正在做一個人臉識別項目。 我插入一個人臉圖像並將其分配給變量,我在數據庫中使用變量。
我正在將圖像插入數據庫和 dataGridView。 當我插入圖像時,它會在 dataGridView 上寫入“Byte [] Array”。 如何轉換為 dataGridView 上的圖像或如何發送到圖片框? 兩者之一就足夠了。
人臉圖像變量及轉換
Image img = pictureBox2.Image;
byte[] arr;
ImageConverter converter = new ImageConverter();
arr = (byte[])converter.ConvertTo(img, typeof(byte[]));
插入數據庫
ESG("insert into kisiler values('" + textFaceName.Text + "','" + textFaceSurname.Text + "','" + textNationality.Text + "', '" + int.Parse(textAge.Text) + "','" + cinsiyet + "','"+ arr +"')");
從 PictureBox 到 DB(VB 代碼)
Dim fs As FileStream = File.Create("profile.jpg")
ProfilePictureBox.Image.Save(fs, Imaging.ImageFormat.Jpeg)
fs.Close()
fs = File.OpenRead("profile.jpg")
Dim ms As MemoryStream = New MemoryStream
fs.CopyTo(ms)
sqlCmd.Parameters.Add("@profilePic", SqlDbType.VarBinary).Value = ms.ToArray()
從 Db 到 PictureBox(VB 代碼)
Dim readByte As Byte() = sqlReader("IMG_BYTE")
Dim ms As MemoryStream = New MemoryStream(readByte)
PictureBox1.Image= Image.FromStream(ms)
從 Db 到 DatagridView(VB 代碼)
Dim img As Image
Dim readByte As Byte() = sqlReader("IMG_BYTE")
Dim ms As MemoryStream = New MemoryStream(readByte)
img = Image.FromStream(ms)
只需您可以使用以下代碼將字節數組轉換為圖像:
Image.FromStream(new MemoryStream(byteArrayIn));
您可以將其放入 function 中,如下所示:
public Image byteArrayToImage(byte[] byteArrayIn)
{
Image returnImage = null;
using (MemoryStream ms = new MemoryStream(byteArrayIn))
{
returnImage = Image.FromStream(ms);
}
return returnImage;
}
您還可以將字節數組轉換為字符串,並使用它來綁定圖片框,如下面的代碼。 實際上,我在 WebApp 項目中使用過它,但不確定它是否適用於您的項目:
string photo = "data:image/jpeg;base64," + Convert.ToBase64String(byteArray.Photo, 0, byteArray.Photo.Length);
此代碼項目文章中名為 rajantawate1 的用戶提供了以下代碼:
public byte[] ImageToByteArray(System.Drawing.Image imageIn)
{
using (var ms = new MemoryStream())
{
imageIn.Save(ms,imageIn.RawFormat);
return ms.ToArray();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.