Russian Qt Forum
Сентябрь 30, 2024, 20:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как объединять две картинки по маске и генерировать эту маску?  (Прочитано 3998 раз)
Caduceus
Гость
« : Сентябрь 23, 2010, 08:01 »

У меня есть некий View, на котором рисуется некая картинка. У меня есть две картинки - вот эта которая рисуется и точно такая же, тольько черно-белая.
На этот View можно Drag-n-Drop-ить некоторые объекты, но каждый объект можно стаскивать в какую-то конкртеную область картинки. Что я хочу. Я хочу при стаскивании объекта ту область, куда нельзя бросить объект, рисовать черно-белой (брать из существующей черно-белой картинки), а те области, куда можно броосить - оставлять цветными. Сложно еще в том, что эти области меняются постоянно - поэтому заранее маски черно-белых и цвтеных областей сделать нельзя.

В связи с этим у меня два вопроса:
1) Как программно генерировать такие маски?
2) Как совсбенно по маске и двум изображениям получить третье, суммарное по этим двум и маске?

Спасибо
Записан
Sancho_s_rancho
Гость
« Ответ #1 : Сентябрь 23, 2010, 08:59 »

Можно генерировать битовую карту, причем к каждому биту пусть будет указатель на фигуру. Проверяется точка, куда происходит перемещение или бросание объекта и в зависимости от состояния бита область делается ч/б или остается цветной.
ПИ СИ первое, что пришло в мою светлую голову.
Записан
Caduceus
Гость
« Ответ #2 : Сентябрь 23, 2010, 09:03 »

Что попиксельно бежать и проверять можно сюда бросать или нет и менять цвет? Тормозно будет
Записан
Sancho_s_rancho
Гость
« Ответ #3 : Сентябрь 23, 2010, 09:25 »

Что попиксельно бежать и проверять можно сюда бросать или нет и менять цвет? Тормозно будет
Будет очень хорошо. Проверено электроникой Sancho_s_rancho.
Без шуток. Современные машины -- это мегамощая числодробилка и только современные программисты могут написать настолько кривой код, что она захлебнется.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Сентябрь 23, 2010, 10:16 »

Зарядить 2 QPixmap (цветную и черно-белую). Когда мышь наезжает, определить область и собрать из 2 QPixmap третью, вывести ее на экран.

С точки зрения "дызайна" - не очень удачно. Цветная и черно-белая могут быть (в каких-то местах) одинаковы. Смена картинки на черно-белую не очень интуитивна. Может лучше "fade" - или вообще ограничиться формой курсора
Записан
Caduceus
Гость
« Ответ #5 : Сентябрь 23, 2010, 10:19 »

Что есть fade?
Не, картинка цветная. Это не просто картинка - она мной же и сгенерирована, там вообще нету серых тонов.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Сентябрь 23, 2010, 10:48 »

Что есть fade?
Выбираем какой-то цвет, напр благородный серый (192, 192, 192) и смешиваем этот фон с картинкой. Часто выглядит приятнее
Записан
Caduceus
Гость
« Ответ #7 : Сентябрь 23, 2010, 10:55 »

Ну хорошо, тогда вопрос -  как замешать цветную картнку по маске с "благородным серым" и как эту маску сгенерировать, если я знаю регионы, куда можно бросать.

Попиксельная пробежка все же мне кажется кривым решением
Записан
ufna
Гость
« Ответ #8 : Сентябрь 23, 2010, 11:55 »

А рисовать поверх? или использовать технику "наложений"? QPainter - очень мощная система, гляньте QtDemo в "Arthur" отделении
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.