Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.05.2008, 11:50
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию Как сохранить фон за рисунком?

На рисунок Image1 накладывается другой рисунок Image2 с прозрачным фоном. При сохранении фонового рисунка Image1 - Image2 сохраняется на белом фоне, хотя фон у него прозрачный:

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
jpg: TJpegImage;
v: TRect;
BufRct: Trect; //
BackRct: Trect; //
begin
jpg := TJpegImage.Create;
Image2.Transparent := True; //
BufRct := Bounds(Image2.Left, Image2.Top, 36, 36); //
BackRct := Bounds(Image1.Left, Image1.Top, 36, 36); //
Image1.Canvas.CopyRect(BufRct, Image2.Canvas, BackRct); //
...
jpg.Assign(image1.picture.graphic);
jpg.CompressionQuality := 95;
jpg.Compress;
jpg.SaveToFile(Edit1.Text+'.jpg');
jpg.free;
end;

Admin: Используем теги для оформления кода!

Где у меня ошибка? Как вывести фон за Image2?
Все, что связано с рисунком Image2 помечено двумя слэшами.
Спасибо!

Последний раз редактировалось Admin, 30.05.2008 в 11:54.
Ответить с цитированием
  #2  
Старый 30.05.2008, 14:24
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Прозрачность тоже хранится как цвет. Т.е. цвет с определенным кодом будет прозрачным. В данном случае белый. Все что на картинке белое, станет прозрачным.
Ответить с цитированием
  #3  
Старый 30.05.2008, 16:41
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Цитата:
Сообщение от Phedor
Прозрачность тоже хранится как цвет. Т.е. цвет с определенным кодом будет прозрачным. В данном случае белый. Все что на картинке белое, станет прозрачным.

Пробовал по-разному:
Image2.Transparent := True; //
Brush.Color := clWhite; //
Image2.TransParentColor := Image2.canvas.pixels[1, 1];
- Undeclared identifier: 'TransParentColor'

а в этом варианте
Image2.Transparent := True; //
AlphaBlendValue:=255;
AlphaBlend:=True;
- все выполняется, но прозрачности нет!
Где-то неправильно прописана команда. А где?!
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter