繁体   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