Я должен преобразовать Битовый массив из PixelFormat.Format32bppRgb
кому: PixelFormat.Format32bppArgb
.
Я надеялся использовать Битовый массив. Клон, но это, кажется, не работает.
Bitmap orig = new Bitmap("orig.bmp");
Bitmap clone = orig.Clone(new Rectangle(0,0,orig.Width,orig.Height), PixelFormat.Format24bppArgb);
Если я выполняю вышеупомянутый код и затем проверяю клон. 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...
using (var bmp = new Bitmap(width, height, PixelFormat.Format24bppArgb))
using (var g = Graphics.FromImage(bmp)) {
g.DrawImage(..);
}
Должно сработать так. Может быть, вы хотите задать некоторые параметры на g
, чтобы определить режим интерполяции для качества и т.д.