如何从字节数组创建位图?

goGud

我搜索了有关字节数组的所有问题,但我始终失败。我从来没有编码过C#,这方面我是新手。您能帮我如何从字节数组制作图像文件吗?

这是我的函数,它在名为的数组中存储字节 imageData

public void imageReady( byte[] imageData, int fWidth, int fHeight))
goGud

伙计们感谢您的帮助。我认为所有这些答案都行得通。但是我认为我的字节数组包含原始字节。这就是为什么所有这些解决方案都不适用于我的代码的原因。

但是我找到了解决方案。也许此解决方案可以帮助其他遇到像我这样的问题的编码人员。

static byte[] PadLines(byte[] bytes, int rows, int columns) {
   int currentStride = columns; // 3
   int newStride = columns;  // 4
   byte[] newBytes = new byte[newStride * rows];
   for (int i = 0; i < rows; i++)
       Buffer.BlockCopy(bytes, currentStride * i, newBytes, newStride * i, currentStride);
   return newBytes;
 }

 int columns = imageWidth;
 int rows = imageHeight;
 int stride = columns;
 byte[] newbytes = PadLines(imageData, rows, columns);

 Bitmap im = new Bitmap(columns, rows, stride, 
          PixelFormat.Format8bppIndexed, 
          Marshal.UnsafeAddrOfPinnedArrayElement(newbytes, 0));

 im.Save("C:\\Users\\musa\\Documents\\Hobby\\image21.bmp");

该解决方案适用于8位256 bpp(Format8bppIndexed)。如果图像具有其他格式,则应更改PixelFormat

现在颜色有问题。一旦解决了这个问题,我就会为其他用户编辑答案。

* PS =我不确定步幅值,但对于8bit,它应该等于列。

此功能也对我有用。此功能将8位灰度图像复制到32位布局中。

public void SaveBitmap(string fileName, int width, int height, byte[] imageData)
        {

            byte[] data = new byte[width * height * 4];

            int o = 0;

            for (int i = 0; i < width * height; i++)
            {
                byte value = imageData[i];


                data[o++] = value;
                data[o++] = value;
                data[o++] = value;
                data[o++] = 0; 
            }

            unsafe
            {
                fixed (byte* ptr = data)
                {

                    using (Bitmap image = new Bitmap(width, height, width * 4,
                                PixelFormat.Format32bppRgb, new IntPtr(ptr)))
                    {

                        image.Save(Path.ChangeExtension(fileName, ".jpg"));
                    }
                }
            }
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从字节数组快速创建位图图像

来自分类Dev

字节数组移位产生的位图

来自分类Dev

字节数组移位产生的位图

来自分类Dev

如何用自己的字节创建字节数组?

来自分类Dev

McEliece(FlexiProvider):如何从字节数组创建KeyPair?

来自分类Dev

如何从bmp文件字节数组创建BitmapImage?

来自分类Dev

如何从字节数组的 JSON 元素创建文件

来自分类Dev

从字节数组创建方法

来自分类Dev

从字节数组创建 XPS 文档

来自分类Dev

当字节数组的源是 jpg 时,从存储的字节数组创建位图并保存到磁盘会引发 GDI+ 异常

来自分类Dev

如何将字节数组转换为位图图像?

来自分类Dev

如何在wp7中将位图图像转换为字节数组?

来自分类Dev

如何将位图或字节数组转换为图像?

来自分类Dev

将字节数组或位图转换为图片

来自分类Dev

Android NDK返回位图像素的字节数组

来自分类Dev

将位图数据提取到字节数组

来自分类Dev

jpeg ImageFormat字节数组到android中的位图

来自分类Dev

使用未压缩的位图字节数组

来自分类Dev

旋转由字节数组表示的位图

来自分类Dev

RxJava 将字节数组转换为位图

来自分类Dev

如何分割字节数组

来自分类Dev

如何从字节数组制作IntStream?

来自分类Dev

如何复制字节数组

来自分类Dev

如何从字节数组获取url?

来自分类Dev

如何将String格式的字节数组转换为字节数组?

来自分类Dev

C#如何在反向的字节数组中找到字节数组?

来自分类Dev

如何从由字节数组组成的字符串访问字节数组?

来自分类Dev

无法在Groovy中创建字节数组的数组

来自分类Dev

无法在Groovy中创建字节数组的数组

Related 相关文章

热门标签

归档