c# - 如何将整数数组转换为内存流?

标签 c# arrays image memorystream

我有一个二维整数数组。数组中的每一项都是从相机捕获的图像的像素值。我的目的是将图像保存为 jpg 或位图。我正在尝试使用 Image.FromStream() 方法创建图像,然后我可以使用 Image.Save() 以所需格式保存图像。 Image.FromStream() 将流对象作为其参数,因此我需要将整数数组转换为 MemoryStream。问题是 MemoryStream 构造函数只接受字节数组。那我该怎么办?

我在用c#编程

最佳答案

您可以将数组逐个元素写入内存流:

using(BinaryWriter writer = new BinaryWriter(memoryStream)) 
{
    for(int i=0; i<arr.Length; i++) 
    {
       for(int j=0; j<arr[i].Length; j++) 
       {
          writer.Write(arr[i][j]);
       }
    }
} 

但是我不认为可以从包含整数的流创建图像,相反,您可能需要创建一个与数组具有相同宽度 x 高度的空位图,然后循环(如上面的代码片段所示)并根据您的值设置像素。将所有像素设置为位图后,您可以将其保存为 Jpeg 等格式。

关于c# - 如何将整数数组转换为内存流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131970/

相关文章:

C# 从列表中删除冗余路径

c# - 如何使用 C# 向 MSSQL 表中插入数据

iphone - 在后台线程中上传批量图像

javascript - 如何从javascript数组中删除重复项

javascript - 透明图像 - 在 JS 中可能吗?

java - 在actionPerformed中使用Ticks - 如何显示图像5秒

c# - F# 度量单位的反射(reflect)

c# - XAML 中的颜色反转

javascript - Javascript 中 boolean 值和数组的困难

java - 如果不存在则创建一个新的数组索引