|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.07.2015, 10:58 | #1 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
Alphablend: Полупрозрачный BMP-рисунок
Доброе время суток!
Подскажите, пожалуйста, как реализовать полупрозрачность BMP на форме, чтобы он просвечивал рабочий стол как здесь, на рис. 4? (http://comprice.ru/articles/detail.php?ID=42566) В статье сказано: "...произведя очевидную модификацию данного кода...". А что это за модификация? |
28.07.2015, 11:40 | #2 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Вы кажется не так назвали тему... Может вам нужно полупрозрачное окно?
Раздел "C++ Builder", гм... Точно не припомню есть ли в нём такое?: Код:
|
28.07.2015, 11:46 | #3 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
2 ResourceSpace
ТС имеет в виду - наложить полупрозрачное изображение на форму.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Последний раз редактировалось Krok27; 28.07.2015 в 11:56. |
28.07.2015, 11:59 | #4 | |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Разумеется ходил. Сужу по фразе:
Цитата:
Это полупрозрачное окно над рабочим столом, делающееся как я показал (если в используемой версии Билдера есть такие свойства). |
|
28.07.2015, 12:10 | #5 | ||
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Принимается.
Цитата:
Цитата:
Но ТС, судя по его активности, уже не интересны наши потуги...
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
||
28.07.2015, 12:35 | #6 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
ResourceSpace, мне нужно вывести изображение на форму (TImage), а затем изменить только его прозрачность, чтобы только оно просвечивало рабочий стол, а поверх него выводить уже другие изображения. Наложение двух изображений друг на друга я сделал по этой статье, а вот полупрозрачность с просвечиванием рабочего стола пока никак не получается...
Krok27, я использую RAD Studio XE2, но подойдёт решение и под предыдущие версии, хотя желательно под XE2. |
28.07.2015, 14:50 | #7 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Полупрозрачная область на форме должна быть только под TImage?
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
28.07.2015, 16:41 | #8 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
Вот, взгляните на картинку - набросал, что примерно хотелось бы получить. Лес - рабочий стол (включая значки и окна), оранжевая часть - Image1 (условно), голубая - Image2. Скошенные края можно сделать с помощью свойства TransparentColor, а так, да, только под TImage.
Последний раз редактировалось Bruce Wayne; 28.07.2015 в 16:45. |
28.07.2015, 19:09 | #9 | |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
ага... Хороший картинка, все бы так набрасывали
Цитата:
Вот если бы оранжевое и голубое были одинакового, назовём так, уровня прозрачности... Тогда подошло бы установить окну свойство, а так... Варианта два: 1) Делать несколько окон с разными уровнями прозрачности друг над другом. И добиваться от них синхронного перемещения (если требуется). 2) Делать полноценное Layered-окно. То есть создаём BMP с альфа-каналом, отправляем его на отрисовку вместо окна. Но тогда отрисовка идёт полностью руками. Последний раз редактировалось ResourceSpace; 28.07.2015 в 19:29. |
|
28.07.2015, 19:37 | #10 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
Я и не думал, что это просто - уже несколько лет то возьмусь искать способы, то заброшу опять
Первый вариант не подходит из-за того, что для синей картинки придётся использовать TransparentColor, и получится, что сглаженные края (т. е. с использованием полупрозрачных пикселей) сольются с этим самым цветом и не будут невидимыми или полупрозрачными. Результат - грубые квадратные края изображения нестандартной формы, да ещё и с примесью цвета фона. Бррр... А как можно вторым вариантом это реализовать? Ведь потребуется GDI+, верно? Если да, то этот вариант, вероятно, тоже не подойдёт из-за того, что прозрачное окно не будет воспринимать мышь. Даже если это можно устранить, то мне хотелось бы использовать саму форму, а не вновь созданное окно. Есть ли другие способы? Сейчас же появилась поддержка PNG-файлов с тех пор. Может, с ними можно как-то реализовать? По идее, всё, что нужно - так это избавиться от фона формы, чтобы прозрачные пиксели PNG не смешивались с ним, т. е. добавить в него альфа-канал. Ведь в статье, вроде бы, используется функция AlphaBlend() - только и всего... Вот и доверяй после этого людям Последний раз редактировалось Bruce Wayne; 28.07.2015 в 19:46. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AlphaBlend: наложить bmp на jpg или наоборот | fredwriter | Помощь студентам | 2 | 17.09.2012 19:28 |
Полупрозрачный DIV | X@OC | HTML и CSS | 3 | 18.04.2011 08:54 |
полупрозрачный слой | voldemen | HTML и CSS | 1 | 14.09.2010 22:14 |
Добавить точечному рисунку альфа канал, что бы рисунок воспринимался функцией AlphaBlend | Son | Мультимедиа в Delphi | 3 | 11.02.2010 16:46 |
Как наложить полупрозрачный рисунок поверх видео. | jocry | Мультимедиа в Delphi | 3 | 03.11.2009 09:22 |