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

我有一个二维整数数组。数组中的每一项都是从相机捕获的图像的像素值。我的目的是将图像保存为 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 等格式。

https://stackoverflow.com/questions/7131970/

相关文章:

python - 创建 StringToSign

maven-2 - 来自另一个模块的 Maven 模块属性

regex - Nginx:如何重写除图像以外的所有 URL?

web-services - spring web services - 如何在方法端点中获取字符串

python - os.walk 某些文件类型到现有的 ZipFile?

iis - Windows 身份验证通过反向代理问题

google-maps - 我如何知道哪个标记正在被 Google Maps API 拖动事件拖动?

eclipse - 无法在 Eclipse + EPIC 中查看本地

eclipse - 如何从 Eclipse 类路径中排除一个 jar?

csv - 如何使用 RSqlite 将 sqlite 导出为 CSV?