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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 21:42   #1
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
Печаль прозрачность

Здравствуйте. Накладываю картинку на картинку данной процеДурой
Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  bmp1, bmp2: TBitMap;
  Blend: TBlendFunction;
begin
  bmp1 := TBitMap.Create;
  bmp2 := TBitMap.Create;
  bmp1.LoadFromFile('C:\1.bmp'); 
  bmp2.LoadFromFile('C:\2.bmp'); 
  bmp2.TransparentColor:= clWhite;
  Bmp2.Transparent := True;

  bmp1.PixelFormat := pf32bit; 
  bmp2.PixelFormat := pf32bit;
StretchBlt(bmp1.Canvas.Handle,bmp1.Width-bmp2.Width,bmp1.Height-bmp2.Height,bmp2.Width,bmp2.Height,bmp2.Canvas.Handle,0,0,bmp2.Width,bmp2.Height,SRCCOPY);

Canvas.Draw(0, 0, bmp1) ;

  bmp1.Free; bmp2.Free; 

end;
все окей, вот только почему то прозрачности нет. Но почему? ведь Я назначил прозрачным белый цвет
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 16.04.2010, 21:54   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Попробуйте закомментить Stretch и написать простой draw. По идее должна быть прозрачность. Если будет - проблема в Stretch. Не в параметрах, а в самой реализации процедуры.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 16.04.2010, 22:08   #3
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

да, прозрачность есть. Как тогда можете предложить поступить в Моей ситуации? (нужно битмап с прозрачностью вставить в правый нижний угол второго битмапа)
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 17.04.2010, 11:39   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
BTM2.Canvas.draw(btm1.width - btn2.width, btm1.height - btm2.height, btm2)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 17.04.2010, 20:01   #5
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Ну, а если всеже хотите юзать виндозовские функции, то можно заюзать
Код:
BOOL TransparentBlt(
  HDC hdcDest,        // handle to destination DC
  int nXOriginDest,   // x-coord of destination upper-left corner
  int nYOriginDest,   // y-coord of destination upper-left corner
  int nWidthDest,     // width of destination rectangle
  int hHeightDest,    // height of destination rectangle
  HDC hdcSrc,         // handle to source DC
  int nXOriginSrc,    // x-coord of source upper-left corner
  int nYOriginSrc,    // y-coord of source upper-left corner
  int nWidthSrc,      // width of source rectangle
  int nHeightSrc,     // height of source rectangle
  UINT crTransparent  // color to make transparent
);
Kostia вне форума Ответить с цитированием
Старый 20.04.2010, 11:54   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
procedure TXXX.zAlpha(Src: TBitmap; DstDC: HDC; dx, dy, value: Integer);
var blend: BLENDFUNCTION;
begin
  with blend do
  begin
    BlendOp := AC_SRC_OVER;
    BlendFlags := 0;
    AlphaFormat := 0;
    SourceConstantAlpha := value;
  end;
  AlphaBlend(DstDC, dx, dy, Src.width, Src.Height,
    Src.canvas.handle, 0, 0, Src.width, Src.height, blend);
end;
ZuBy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прозрачность KatCH Общие вопросы Delphi 2 17.02.2010 18:45
Прозрачность SanekIrk Общие вопросы Delphi 4 30.12.2008 12:12
прозрачность sergei64_89 Общие вопросы .NET 1 29.07.2008 21:43
Прозрачность Лубышев Помощь студентам 3 23.01.2008 00:05
Прозрачность ЧИЖ HTML и CSS 5 24.10.2007 17:18