2008-09-03 9 views

ответ

2

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.

+0

sam правильный. BMP не поддерживает альфа-канал. Прозрачность в растровых изображениях обычно делается с помощью цветного ключа (выберите один цвет, который будет прозрачным на 100%). PNG будет оптимальным выбором здесь. – 2009-05-04 18:47:18

3

Вы должны сделать две вещи:

  • Скопируйте растровое изображение на форме в качестве фона.
  • Позвоните в UpdateLayeredWindow (user32.dll), чтобы включить прозрачность альфа-прозрачности.

Код является liitle немного громоздкий, но здесь это очень хороший пример приложения с исходным кодом: Per Pixel Alpha Blend in C#

+0

спасибо, я попробую это – 2008-10-10 13:43:24

2

Хотя формат BMP поддерживает альфа-канал, Windows игнорирует. К счастью, формат довольно прост, и вы можете прочитать его, используя System.IO.BinaryReader, затем создайте Drawing.Bitmap, используя методы LockBits и UnlockBits, чтобы записать данные на него.