Показать сообщение отдельно
  #2  
Старый 08.12.2011, 21:59
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 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 в.д.
Ответить с цитированием