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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2013, 18:42   #1
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию Вопрос по Image и Canvas

Приветствую Вас форумчане.
Столкнулся с проблемой наложения одного изображения на другое.
Дано два рисунка:
bmpSRC (http://denis76560-ru.1gb.ru/img/WN_6...0546093750.jpg)
и
bmpDOWN (http://denis76560-ru.1gb.ru/img/JB_6...1148437500.jpg)

Имею следующий код:
Код:

procedure TForm1.Button3Click(Sender: TObject);
var
  BmpResult,bmpSRC,bmpDOWN: TBitmap;

  begin
    :=TBitmap.Create;
    := TBitMap.Create;
    BmpResult := TBitMap.Create;

bmpDOWN.TransparentColor:=clwhite;
bmpDOWN.Transparent:=true;

    bmpSRC.LoadFromFile('Temp\srcx.bmp');
    with bmpDOWN do begin
    LoadFromFile('Temp\lineD.bmp');
      SetBKMode(Canvas.Handle, windows.TRANSPARENT);

   {   Canvas.Font.Color:=clBtnHighlight;
      Canvas.Font.Style:=[fsBold];
      Canvas.Font.Name:='Arial Black';
      Canvas.Font.size:=9;
      Canvas.TextOut(13, 13, 'eeeeeee');  }

    BmpResult.Width := bmpSRC.Width;
    BmpResult.Height := bmpSRC.Height;

BitBlt(BmpResult.Canvas.Handle, 0, 0, bmpSRC.Width, bmpSRC.Height, bmpSRC.Canvas.Handle, 0, 0, SRCCOPY);
BitBlt(BmpResult.Canvas.Handle, 0, bmpSRC.Width-320, bmpDOWN.Width, bmpDOWN.Height, bmpDOWN.Canvas.Handle, 0, 0, SRCCOPY); 

Image1.Picture.Bitmap:=BmpResult;
    FreeAndNil(BmpResult);
   FreeAndNil(bmpSRC);
   FreeAndNil(bmpDOWN);

Image1.Picture.Bitmap.SaveToFile(extractfilepath(application.exename)+'Temp\outIMG.bmp');
end;
     end;
после выполнения кода (объединения рисунков) получаю следующее изображение - http://denis76560-ru.1gb.ru/img/mr_6...9863750000.jpg
Подскажите пожалуйста, как убрать белую полоску внизу над картинкой проигрывателя, получающейся при наложении ? Вместо нее должен быть фон первого рисунка (bmpSRC).

уже пробовал и так и сяк, не выходит =(
Код:

image1.Picture.Bitmap.TransparentColor:=clwhite;
image1.Picture.Bitmap.Transparent:=true;
image1.Transparent:=true;  

 bmpDOWN.TransparentColor:=clwhite;
bmpDOWN.Transparent:=true;

 bmpSRC.TransparentColor:=clwhite;
bmpSRC.Transparent:=true;

 BmpResult.TransparentColor:=clwhite;
BmpResult.Transparent:=true; 

 bmpSRC.Mask(clwhite);
 bmpSRC.TransparentColor:=clwhite;
 bmpSRC.Transparent:=True;

 bmpDOWN.Mask(clwhite);
 bmpDOWN.TransparentColor:=clwhite;
 bmpDOWN.Transparent:=True;

 BmpResult.Mask(clwhite);
 BmpResult.TransparentColor:=clwhite;
 BmpResult.Transparent:=True;

 image1.Picture.Bitmap.Mask(clwhite);
 image1.Picture.Bitmap.TransparentColor:=clwhite;
 image1.Transparent:=True;
Заранее спасибо всем за внимание к посту.

Последний раз редактировалось Stilet; 13.06.2013 в 21:11.
denis76560 вне форума Ответить с цитированием
Старый 13.06.2013, 21:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Э-э-эм... Так она же (полоска) получается предусмотренна в первом рисунке...
На нее даже ползунок набегает.
Или эта часть предполагается быть прозрачной?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 21:22   #3
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Э-э-эм... Так она же (полоска) получается предусмотренна в первом рисунке...
На нее даже ползунок набегает.
Или эта часть предполагается быть прозрачной?


Да-да, именно эта чать должна быть прозрачной
denis76560 вне форума Ответить с цитированием
Старый 13.06.2013, 22:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уф... Я не знаю как твою задачу решить, но я бы попробовал работать с PNG.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 23:51   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну так пускай будет 3 изображения в 1, и одно из 3 - прозрачное.
Человек_Борща вне форума Ответить с цитированием
Старый 17.06.2013, 11:53   #6
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Как это можно реализовать ?
Пытался и так и сяк, не получилось ничего =(

Последний раз редактировалось denis76560; 17.06.2013 в 13:01.
denis76560 вне форума Ответить с цитированием
Старый 19.06.2013, 17:44   #7
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Еще актуально
denis76560 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi.Canvas.Построение графиков в Image MariaD Помощь студентам 1 04.04.2013 06:38
Canvas image change position Abuhamed JavaScript, Ajax 2 17.12.2012 11:48
Как удалить линию?и менять цвета последующих линий на Image.Canvas Cooper_ts Помощь студентам 3 09.12.2009 19:43
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
проблема копирования из image.canvas в переменную TBitMap h4muk Мультимедиа в Delphi 2 27.02.2009 09:44