![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
tab |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 7.10.2006 Где: RF, Dolgopa Репутация: нет Всего: нет |
Задачка такая: допустим есть Bitmap. С ним необходимо провести кучу действий сводящихся в основном к наложению на него различных масок. В данный момент использую массив пикселов получаемый с помощью bitmapData.Scan0 и дальше маска - как комбинация соответствующих пикселов. Может быть есть в GDI/GDI+ набор функций отвечающий за наложение масок непосредственно?
|
|||
|
||||
Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: нет Всего: 2 |
Сабж остается неизменным.
Кратко сформулирую задачу: есть пара Bitmap'ов, которые имеют одинаковые размеры и PixelFormat. Необходимо получить изображение, полученное наложением маски на целевой Bitmap. Если пиксель окрашен на маске в белый цвет, то соответствующий пиксель изображения переносится из целевой картинки, а если в черный, то окрашивается каким-то заранее установленным цветом.
сначала рисуем базовое изображение, потом окрашиваем пикселы, соответствующие черным на маске, установленным цветом mBackColor. Только этот код оказывается неработоспособным. Буду признателен за комментарии. --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
Unlocker |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: нет Всего: 2 |
Ларчик просто открывался. Вместо этого
Надо было написать
Еще улучшил попиксельную обработку в плане скорости. Класс декоратора нашел Google, а код я приложил к посту.
Смысл его использования зафиксировать Bitmap методом LockBits(), провести все попиксельные операции, уничтожить декораторы вызовом Dispose(), в котором прописан UnlockBits(). Реально ускоряет попиксельную обработку достаточно больших растров. Проблему, на мой взгляд, можно считать решенной. Это сообщение отредактировал(а) Unlocker - 30.1.2009, 11:38 Присоединённый файл ( Кол-во скачиваний: 19 ) ![]() --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |