2014-11-16 5 views
2

У меня проблема с градиентом прозрачности в PictureBox в визуальной базовой форме. Я хочу, чтобы получить хорошую прозрачность, как в первой форме (в PS) Вот что я сделал:vb прозрачный backgroud с градиентом

1- нарисовал картинку в Adobe Photoshop (CS6) с этой предустановкой:

Photoshop preset

2 Сохраненный снимок с помощью этой опции:

PNG Option

3- Добавлено изображение в PictureBox в форме Vb с синим BackColor

PictureBox with blue BackColor

4- Изменена форма TransparencyKey синему

TransparencyKey

5-The (ужасный) результат:

Result

+0

Я чувствую, что проблема заключается в том, что ваше изображение имеет прозрачность (выцветание красного и желтого) и поэтому сливается с синим в непрозрачный цвет. не уверен, но я надеюсь, что это поможет найти ответ. – Index

+0

Этот эффект Photoshop не может работать, он делает пиксели частично прозрачными. Что изменяет цвет фона, превращая чистый синий в оттенок синего, который больше не соответствует цветному ключу. Таким образом, вы можете это увидеть. Вам нужно окно, поддерживающее прозрачность альфа-прозрачности, просто Google. –

ответ

1

Свойство Form.TransparencyKey не совсем то, что вы» ищу. Это сделает только части изображения прозрачными, чтобы точно соответствовал указанному вами цвету (Color.Blue, в вашем случае). Это означает, что части градиента в вашем изображении, которые имеют хотя бы небольшое количество красного или желтого в них, не будут соответствовать фильтру.

Среди вещей, которые вы могли бы попробовать, - это нарисовать форму с помощью альфа-смешивания. Вот library that lets you draw stuff with transparency, который выглядит так, как вы хотите. В качестве альтернативы я выкопал walkthrough on CodeProject. Это включает в себя много разговоров с формами interop и ОС, которые могут не быть вашей чашкой чая.

Обратите внимание, что система GDI +, использующая Windows Forms для рисования, работает несколько медленно, особенно при рисовании изображений. Я не знаю, как выглядит ваш проект, но если вы собираетесь нарисовать много прозрачных изображений, я предлагаю взглянуть на Microsoft DirectX.

Смежные вопросы