Russian Qt Forum
Апреля 29, 2025, 00:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Бленд по маске  (Прочитано 1987 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Января 25, 2014, 15:36 »

Добрый день

В коде paintEvent нужно для заданного QRect

- если цвет пикселя отличается от заданного не более чем на <константа>, то заменить этот цвет на другой

- поделить RGB пикселя на заданное значение (по-простому "затемнить"), но при этом не трогать заданный цвет (background)

Конечно это очень просто для QImage, но его нет, есть только QPainter. Как это сделать "легально" не спрыгивая в нативняк, не влезая в приватные хедеры и.т.п.

Спасибо
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Января 27, 2014, 13:20 »

Апну тему, попробую "поддержать разговор"  Улыбающийся На первый взгляд ограничение кажется глупым, ну как это "нет QImage"? Да отрендерить сначала в QImage, потом его нарисовать - и все дела! Именно с этого я (резво) начинал

1) Сначала поставил всем окнам кеш. Да, так проблем с растровыми операциями нет, но приложение при старте заняло ~300Mb памяти (50 при прежнем заведующем). И это еще не все окна созданы. Как ни крути, а triple-buffer = неграмотно, теория права

2) Хорошо, тогда при каждом рисовании сначала рисуем в QImage, который будет удален после того как отрисован. Конечно это не украшает, т.к. приличный буфер создается на каждом paint. Ну ладно, это можно пережить, но я попадаю в др беду - теперь ведь нет возможности рисовать адаптивно. Пример: пользователь кликнул в прямоугольник - ну я его и подсветил (или убрал подсветку) теми операциями что описаны выше. А с буфером QImage у меня содержимое пр-ка нет (он создается пустой), и нереально выдрать код рисования именно его (этой области) из тонны кода paint

Мда, не все так просто как хотелось бы  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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