Отобразите PNG с альфа-каналом в C#

Существует ли способ правильно отобразить изображение с альфа-каналом (скажем, PNG) в приложении C#? Спасибо за любые предложения.

ОБНОВЛЕНИЕ:

Хорошо, мой вопрос был немного неточен. Я хотел бы получить реальную прозрачность альфа-канала - не заполняющийся цветом фона родителя. В изображении ниже мы видим, что прозрачность поддерживается, но часть кнопки, которая находится ниже изображения, не видима. Действительно ли возможно иметь реальную прозрачность альфа-канала изображения?

image presenting not-total transparency

9
задан Glorfindel 30 July 2019 в 11:05
поделиться

3 ответа

Если это winforms, то нет. «прозрачность» в winforms - это не настоящая прозрачность.

Что вы можете сделать, так это создать буквенно-прозрачную форму, которая рисует PNG, и расположить ее в правильном месте, и связать движение и т. Д. alt text http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm();
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>);

// непрозрачность - это непрозрачность, с которой будет нарисовано изображение, значение 255 = все прозрачные части будут альфа / transparent точно так же, как и исходный PNG и т. д.

РЕДАКТИРОВАТЬ: ИЛИ ПЕРЕЙДИТЕ В WPF.

8
ответ дан 3 November 2019 в 00:58
поделиться

Следующая ссылка MSDN поможет:

WPF: http://msdn.microsoft.com/en-us/library/aa970062.aspx

Windows: http://msdn.microsoft.com/en-us/library/stf701f5.aspx

О методе System.Drawing.Image.FromFile:

Управляемый GDI+ имеет встроенные кодировщики и декодеры, которые поддерживают следующие типы файлов:
- BMP
- GIF
- JPEG
- PNG
- TIFF

0
ответ дан 3 November 2019 в 00:58
поделиться

Да, System.Drawing.Image.FromFile ("filename.png"); Платформа .NET поддерживает прозрачность для нескольких типов файлов, я не думаю, что она работает с JPEG, но PNG подойдет.

3
ответ дан 3 November 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: