Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2012, 12:08   #1
mrbadge
Пользователь
 
Регистрация: 26.01.2011
Сообщений: 48
По умолчанию Прозрачность TBitmap

Постановка задачи: на форме есть карта (фон) в TImage (обработка в TBitmap), поверх есть еще один фон (а-ля туман), скрывающий карту. В нужных местах нужны "дырки" определенной формы, через которые видны нижний слой - карта.

Решение (не работает ) : В чистом TBitmap подгружаю "туман" (bmp), св-во transparent - true, цвет установлен. В нужных местах на этом битмапе рисую нужные полигоны указанного цвета (Canvas.Polygon). По задумке, они должны быть прозрачными из-за transparent, но выходит, что они рисуются в "новом слое", т.к. под ними виден "туман". Не хотелось бы красить каждый пиксель.

Код:

  bm_smog_tmp.Assign(bm_smog); //беру чистый "туман" перед 
       //расстановкой "дырок"
  bm_smog_tmp.Transparent:=True;
  bm_smog_tmp.TransparentMode:=tmFixed;
  bm_smog_tmp.TransparentColor:=clPurple;
  bm_smog_tmp.Canvas.Brush.Color:=clPurple;
  bm_smog_tmp.Canvas.Brush.Style:=bsClear;
  bm_smog_tmp.Canvas.Ellipse(ship_center.X - 25, ship_center.Y - 25, ship_center.X +
    25, ship_center.Y + 25); //вместо полигона
  smog_img.Canvas.Draw(0, 0, bm_smog_tmp);
mrbadge вне форума Ответить с цитированием
Старый 16.09.2012, 17:33   #2
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Если я правильно понял, то "дырки" и "туман" находятся на разных TImage. Почему не сделать на одном и том же?
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить прозрачность в TImage или TBitMap X@OC Компоненты Delphi 6 23.11.2011 23:18
TBitmap -> RAW Celestia Мультимедиа в Delphi 5 17.01.2011 18:59
работа с Tbitmap fen1ksss Мультимедиа в Delphi 6 12.10.2010 11:33
Проблема с TBitmap QunneD Общие вопросы Delphi 2 21.11.2009 18:32
TBitmap odi_noki Мультимедиа в Delphi 17 25.10.2008 09:53