【问题标题】:Make a int32[] bits from a bitmap? [duplicate]从位图中制作一个 int32[] 位? [复制]
【发布时间】:2019-05-17 10:05:08
【问题描述】:

我想用原始位图制作一个 int32[] 位数组

有没有办法创建一个包含原始位图的 int32[]?

这样我就可以使用读取像素

int index = x + (y * Width);
    int col = Bits[index];
    Color result = Color.FromArgb(col);

而不是

bitmap.GetPixel()

【问题讨论】:

    标签: c# arrays bitmap pixel


    【解决方案1】:

    Convert a bitmap into a byte array 所示,您可以使用ImageConverterMemoryStream

    【讨论】:

      【解决方案2】:

      假设您有文件的路径,并且您确定文件格式是每种颜色一个字节,您可以像这样从文件中读取字节:

      var Bits = System.IO.File.ReadAllBytes("path_to_the_image");
      

      位将是一个字节数组,因此不需要在 Color.FromArgb() 函数上使用显式转换。

      【讨论】:

      • 问题是关于int32[],而不是byte[]
      • 没有人说有文件。 @vasily,从byte[] 获取int[] 不是问题,只需致电Buffer.BlockCopy
      • System.IO.File.ReadAllBytes("path_to_the_image");path_to_the_image 路径中的文件中读取所有字节。好的,你用Buffer.BlockCopybyte[] 转换为int[],但问题是关于像素数据,而不是文件数据。现在,您如何处理文件格式?如何从int[] 中删除所有图像标题和元信息?
      猜你喜欢
      • 2011-08-06
      • 2014-11-25
      • 2020-06-08
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      相关资源
      最近更新 更多