gpt4 book ai didi

c# - 在 C# 中从原始像素数据创建的位图不会在 IE 中显示

转载 作者:行者123 更新时间:2023-11-30 23:33:40 24 4
gpt4 key购买 nike

我从位图中提取原始 RGB 像素数据,将其存储在字节数组中,然后从该数组重新创建一个新位图。它工作正常,图像在 Chrome、Firefox 中正确显示,但在 IE 中不正确。

我假设这是因为我没有编写任何 header 或元数据。 Paint 打开文件,但有趣的是 Photoshop 不打开,提示格式“无法放置文档‘Image.bmp’,因为文件格式模块无法解析文件”。

我不关心 PS,但我确实需要它们在 IE 中显示,尽管几乎可以肯定它们的问题是由相同的因素引起的。

我的问题是缺少什么信息会阻止 IE 显示我的位图,我该如何在 C# 中添加它?

保存位图功能

public void SaveBitmap(byte[] array, int width, int height)
{
// Create new bitmap
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);

// Lock the bitmap for writing
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, bmp.PixelFormat);

// Copy the RGB values into to the bitmap
System.Runtime.InteropServices.Marshal.Copy(array, 0, bmpData.Scan0, array.Length);

// Unlock the bits and save.
bmp.UnlockBits(bmpData);
bmp.Save("Image.bmp");
}

This是我的代码创建的示例图像。它在一个 zip 文件中,因为有趣的是,如果我将图像上传到网络服务器,IE 可以显示它。就好像服务器对添加丢失的头信息的文件执行某种处理...

最佳答案

Image.Save(string)将图像保存为 PNG,因此您创建了一个带有 BMP 文件扩展名的 PNG 图像。使用 Image.Save(string, ImageFormat)像这样指定格式:

bmp.Save("Image.bmp", ImageFormat.Bmp);

关于c# - 在 C# 中从原始像素数据创建的位图不会在 IE 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33841980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com