在C#中转换位图PixelFormats

我需要将位图从转换PixelFormat.Format32bppRgbPixelFormat.Format32bppArgb

我希望使用Bitmap.Clone,但似乎无法正常工作。

Bitmap orig = new Bitmap("orig.bmp");

Bitmap clone = orig.Clone(new Rectangle(0,0,orig.Width,orig.Height), PixelFormat.Format24bppArgb);

如果我运行上面的代码,然后检查clone.PixelFormat,它将设置为PixelFormat.Format32bppRgb。怎么回事/如何转换格式?

回答:

马虎,对于GDI +并不罕见。可以解决此问题:

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...

以上是 在C#中转换位图PixelFormats 的全部内容, 来源链接: utcz.com/qa/426236.html

回到顶部