gpt4 book ai didi

c# - 如何将数组中的 jpeg 转换为位图

转载 作者:行者123 更新时间:2023-11-30 12:16:34 24 4
gpt4 key购买 nike

我在 c#/.net 中有一个正常运行的应用程序,它目前从一组嵌入式相机中接受拜耳格式的原始图像数据,并将它们转换为 jpeg 图像。为了节省传输时间,我修改了嵌入式设备以在传输之前将图像编码为 jpeg。我是一位经验丰富的嵌入式程序员,但完全是个 c#/.net 菜鸟。我已经设法修改应用程序以使用此代码段将数组保存到具有 jpeg 名称的文件中:(5 的偏移量用于跳过传输帧中的 header 数据)

FileStream stream = File.Create(fileName);
BinaryWriter writer = new BinaryWriter(stream);
writer.Write(multiBuff.msgData, 5, multiBuff.dataSize - 5);
writer.Close();

文件可以正常打开,但现在我想将数据视为位图,而不必从文件中保存和加载。我在数据数组上尝试了以下操作:

MemoryStream stream = new MemoryStream(data);
BinaryReader reader = new BinaryReader(stream);
byte[] headerData = reader.ReadBytes(5);
Bitmap bmpImage = new Bitmap(stream);

但是这会抛出一个参数无效的异常。作为一个新手,我对图像的所有类和方法有点不知所措,看起来我所做的应该是司空见惯的,但我在通常的地方找不到任何例子。有什么想法吗?

最佳答案

我认为您正在寻找 Bitmap.FromStream() :

Bitmap bmpImage = (Bitmap)Bitmap.FromStream(stream);

实际上使用 new Bitmap(stream) 应该也有效 - 这意味着流中的数据不构成有效图像 - 你确定 jpg 有效吗?您可以将它保存到磁盘并打开它,即在 Paint 中打开它进行测试吗?

关于c# - 如何将数组中的 jpeg 转换为位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160299/

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