Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Бася
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 19
#1

отрисовка нестандартной штриховки средствами GDI. Как? - C++

02.03.2009, 20:16. Просмотров 604. Ответов 0
Метки нет (Все метки)

Доброго времени суток! встала проблема отрисовки штриховки, отличающейся от стандартной CreateHatchBrush. Цель - получить кисть, которой можно пользоваться как обычной, но у которой имеются фоновые и рисовательные пикселы.
Сам придумал следующее:
1)рисовать сначала чёрно-белую кисть, указывая SetROP2(hdc, R2_NOTMASKPEN), 2)потом такую же, но цветно - белую и опять же с SetROP2(hdc, R2_NOTMASKPEN), при этом цвет штриха-заранее инвертируется, чтобы в результате получить нужный цвет штриха(белый цвет при смешении с фоном и отрицании 2 раза даёт первоначальный цвет фона, а штрих смешивается с фоном в 1 раз даёт чёрный, потом инвертируется в белый, потом смешивается с нужным и инвертируется снова).
Работает, но надо много в программе переделывать, и немного через жопу получается, думается есть способ проще. Слышал что то про альфа канал в 32 битном цвете, но использовать не умею(CreateDIBitmap этого не понимает, да и остальные функции тоже). Подскажите идею как можно сделать такую полупрозрачную кисть, ато я уже совсем потерял надежду
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2009, 20:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос отрисовка нестандартной штриховки средствами GDI. Как? (C++):

GDI отрисовка и очистка - C++
Доброго времени суток! Суть такова: Вывожу посредством GDI прямые на консольное окно. После завершения отрисовки мне нужно стереть...

Создание bmp средствами gdi - C++
Добрый день! Передо мной встала задача создать bmp файл, состоящий из изображений отрезком и прямоугольников, которые я научился уже...

Как избавиться от мерцания в gdi? - C++
Как избавиться от мерцания в gdi? Пробовал делать двойную буфферизацию с помощью CreateCompatibleBitmap и BitBlt, но не рисовался даже...

Как подключить GDI+ в Code::Blocks? - C++
Здравствуйте. Пытаюсь работать с графикой в Code::Blocks, но, найти GDI+ не удалось: т.е. ни библиотек, ни заголовочных файлов там...

Как через GDI нарисовать пиксел на окне? - C++
Как через GDI нарисовать пиксел на окне?

Как заставить не затирать окном полученную графику в GDI? - C++
Первый раз столкнулся с GDI и вот никак не могу допереть как заставить не затирать окном полученную графику... Графика выводиться потоком...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2009, 20:16
Привет! Вот еще темы с ответами:

Отрисовка на Image линии средствами GDI+ - C++ Builder
Занимаюсь написанием класса, который использует GDI+ и столкнулся с проблемами. Смоделировал свой проект простеньким примером, который...

Заливка средствами GDI+ как в paint - C#
как можно при помощи GDI+ залить область, ограниченную кривыми, как в paint?

Как средствами GDI+ нарисовать тень для прозрачной картинки - Visual Basic .NET
Имеется картинка с прозрачным фоном (ico, png).Пусть она вставлена в Picturebox. Как её перерисовать со смещением на один пиксел вправо и...

GDI+ отрисовка текста на прозрачном фоне - Delphi
Рисую на чистом прозрачном битмапе в GDI+. Проблема в том, что когда фона нет, рендер думает что он рисует на чёрном фоне. Вокруг букв...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.