08.12.2011, 21:59
|
|
.
|
|
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
|
|
Я кому-то делал такой пример, может подойдёт:
Код:
procedure TForm2.FormCreate(Sender: TObject);
var
bmp1, bmp2 : TBitmap;
begin
Image1.Picture.LoadFromFile('leaf.png');
Image2.Picture.LoadFromFile('bud.png');
bmp1 := TBitmap.Create;
bmp2 := TBitmap.Create;
try
Image3.Width := Image1.Width;
Image3.Height := Image1.Height;
bmp1.Assign(Image1.Picture.Graphic);
bmp2.Assign(Image2.Picture.Graphic);
// эта процедура позволяет выводить часть изображения с учётом Альфа-канала
// и располагается в юните GraphUtil.
// Bounds делает почти тоже самое что и Rect(), но позволяет 3 и 4 параметром
// передавать не конечные границы прямоугольника, а его ширину и высоту.
// 255 - выводить не прозрачно (учитываем Альфа-канал, но основное изображение
// выводим непрозрачно - может иметь значение 0..255, 0 - полная прозрачность.
DrawTransparentBitmap(bmp1, Rect(0, 0, bmp1.Width, bmp1.Height),
bmp2.Canvas, Bounds(20, 20, bmp2.Width, bmp2.Height), 255);
Image3.Picture.Assign(bmp2);
Image3.Picture.SaveToFile('join.png');
finally
bmp1.Free;
bmp2.Free;
end;
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
|