Есть ли способ использовать этот формат в .Net (C#)? Я хочу использовать тот же формат скина, который использует uTorrent в моем приложении, но я не могу получить прозрачный фон. Любые идеи? Спасибо за ваше время.Как использовать 32-битный альфа-смешанный BMP в .Net
ответ
PixelFormat перечисление перечислены форматы растровых изображений '' вы можете создать в .Net, так что вы бы хотели PixelFormat.Format32bppArgb:
http://msdn.microsoft.com/en-us/library/system.drawing.imaging.pixelformat.aspx
http://msdn.microsoft.com/en-us/library/3z132tat.aspx
Однако я не совсем убедитесь, что формат BMP-файла поддерживает прозрачность - поэтому вам придется сохранить файл, как файл PNG.
Вы должны сделать две вещи:
- Скопируйте растровое изображение на форме в качестве фона.
- Позвоните в UpdateLayeredWindow (user32.dll), чтобы включить прозрачность альфа-прозрачности.
Код является liitle немного громоздкий, но здесь это очень хороший пример приложения с исходным кодом: Per Pixel Alpha Blend in C#
спасибо, я попробую это – 2008-10-10 13:43:24
Хотя формат BMP поддерживает альфа-канал, Windows игнорирует. К счастью, формат довольно прост, и вы можете прочитать его, используя System.IO.BinaryReader, затем создайте Drawing.Bitmap, используя методы LockBits и UnlockBits, чтобы записать данные на него.
sam правильный. BMP не поддерживает альфа-канал. Прозрачность в растровых изображениях обычно делается с помощью цветного ключа (выберите один цвет, который будет прозрачным на 100%). PNG будет оптимальным выбором здесь. – 2009-05-04 18:47:18