gpt4 book ai didi

c# - 从文件中以 RGB 格式加载位图(无 alpha)

转载 作者:行者123 更新时间:2023-11-30 22:45:40 26 4
gpt4 key购买 nike

我只想加载一个 .BMP 文件并获取 24 位 RGB 格式(或 32 位 RGB 格式)的位图对象。

我尝试过的所有方法都返回一个位图/图像对象,其中 PixelFormat = Format32bppArgb。即使 BMP 当然没有 alpha。

new Bitmap(System.Drawing.Image.FromFile(fileName, true));
new Bitmap(fileName);

我目前通过将第一个对象复制到 24 位 RBG 内存位图中的另一个对象来解决问题。

有没有一种方法可以做到这一点?

谢谢

最佳答案

据我所知,无法使用 System.Drawing 中的类指定用于加载位图的 PixelFormat。要转换位图,请检查此问题:Converting Bitmap PixelFormats in C#

这是当前最高的答案:

        Bitmap orig = new Bitmap(@"c:\temp\24bpp.bmp");
Bitmap clone = new Bitmap(orig.Width, orig.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
using (Graphics gr = Graphics.FromImage(clone)) {
gr.DrawImage(orig, new Rectangle(0, 0, clone.Width, clone.Height));
}
// Dispose orig as necessary..

一个选项是将它放在一个函数中,该函数接受一个文件名和 PixelFormat。这隐藏了丑陋的代码,它有起有落,因为它也隐藏了一个事实,它可能不是那么有效。

根据链接的 SO 问题,使用克隆方法并不总是有效。

关于c# - 从文件中以 RGB 格式加载位图(无 alpha),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2940558/

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