簡體   English   中英

如何從 Byte[] 數組轉換為圖像?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM