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