Halcom 发表于 2022-6-29 17:08:40

RGb 转 BMP


      private void RgbToBMP(byte[] buffer, int width, int height)
      {
            int yu = width * 3 % 4;
            int bytePerLine = 0;
            yu = yu != 0 ? 4 - yu : yu;
            bytePerLine = width * 3 + yu; //1920

            using (var stream = new MemoryStream())
            {
                using (var bw = new BinaryWriter(stream))
                {
                  bw.Write('B');
                  bw.Write('M');
                  bw.Write(bytePerLine * height + 54);
                  bw.Write(0);
                  bw.Write(54);
                  bw.Write(40);
                  bw.Write(width);
                  bw.Write(height);
                  bw.Write((ushort)1);
                  bw.Write((ushort)24);
                  bw.Write(0);
                  bw.Write(bytePerLine * height);
                  bw.Write(0);
                  bw.Write(0);
                  bw.Write(0);
                  bw.Write(0);

                  byte[] data = new byte; //921600

                  var pos = 0;
                  for (int y = height - 1; y >= 0; y--)
                  {
                        for (int x = 0, i = 0; x < width; x++, i += 3)
                        {
                            data = buffer;// R
                            data = buffer; // G
                            data = buffer; //B
                            pos += 3;
                        }
                  }

                  bw.Write(data, 0, data.Length);
                  bw.Flush();

                  stream.Seek(0, SeekOrigin.Begin);

                      // other code
                }
            }
      }

页: [1]
查看完整版本: RGb 转 BMP