gpt4 book ai didi

c# - 使用 C# 将 MediumBlob 数据转换为位图图像

转载 作者:行者123 更新时间:2023-11-30 22:37:45 25 4
gpt4 key购买 nike

我正在尝试将 MySQL 中的 mediumblob 数据转换为位图图像,但我做不到。我收到一个错误

Parameter is not valid.

这是我的 C# 代码:

 MySqlCommand select = new MySqlCommand("Select FaceName, FaceImage From TrainingSet1", conn);
MySqlDataReader reader = select.ExecuteReader();



while (reader.Read())
{
labels.Add(reader["FaceName"].ToString());


byte[] buffer = (byte[])reader["FaceImage"];
MessageBox.Show("kw");

MemoryStream ms = new MemoryStream(buffer);

ms.Write(buffer, 0, buffer.Length);
Bitmap bmp = new Bitmap(ms); //prb is here
MessageBox.Show("remy");
Image<Gray, byte> image = new Image<Gray, byte>(bmp);
trainingImages.Add(image);
}

reader.Close();

这是我将图像添加到数据库中的功能:

 private byte[] ConvertToDBFormat(IImage InputImage)
{
Bitmap BmpImage = new Bitmap(InputImage.Bitmap);
MemoryStream MyStream = new MemoryStream();
BmpImage.Save(MyStream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] ImageAsBytes = MyStream.ToArray();
return ImageAsBytes;
}

谁能帮我解决这个问题。谢谢。

最佳答案

当你这样做时:

 MemoryStream ms = new MemoryStream(buffer);
ms.Write(buffer, 0, buffer.Length);

您首先使用缓冲区初始化内存流,然后立即用相同的数据覆盖它 - 将当前位置设置为流的末尾。当 Bitmap类试图从中读取 - 它不会得到任何东西。

只需跳过 Write调用,内存流将提供字节数组中的数据。

此外 - 我建议使用 using阻塞内存流和读取器。而且,如果那个 Image<>你们这些人不会保留对 Bitmap 的引用,您应该立即处理掉它。

关于c# - 使用 C# 将 MediumBlob 数据转换为位图图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com