Я пытаюсь загрузить некоторые изображения из неуправляемого файла и сталкиваюсь с проблемами из-за отсутствия альфы.Я обнаружил, что могу восстановить альфа-канал, выполнив следующие действия:
BitmapData bmData =
bmpSource.LockBits(
new Rectangle(0, 0, bmpSource.Width, bmpSource.Height),
ImageLockMode.ReadOnly, bmpSource.PixelFormat);
Bitmap dstBitmap =
new Bitmap(bmData.Width, bmData.Height, bmData.Stride,
PixelFormat.Format32bppArgb, bmData.Scan0);
bmpSource.UnlockBits(bmData);
. Это прекрасно работает, когда на рабочем столе установлен 32-битный цвет, но по какой-то причине, когда на рабочем столе установлен 16-битный цвет, bmpSourceтолько 16-битное цветное изображение, хотя исходное изображение в файле ресурсов на самом деле является 32-битным изображением с альфа-каналом.Как я могу загрузить эти изображения как 32-битные изображения с неповрежденным альфа-каналом?Есть ли неуправляемый способ справиться с этим вместо того, чтобы полагаться на класс C # Bitmap?