请问如何在一个背景图像上放一个小图像?

解决方案 »

  1.   

    楼主,很高兴再来回答你的问题。建一个TCanvas画布,在画布上画图像,如果你画2张以上,然后保存画布,就等于合成了。
    画法也有好几种,有的是按指定的TRect区域来对一张大图缩小后画到TCanvas上的,像第一个回答你问题的人说“Draw”,这个是直接贴上去原图,不缩放。delphi自带的比较常用的方法是:第一个:Canvas.Draw();
    第二个:Canvas.StretchDraw();
    如果使用GDI+,还有其它方法,不过差不多都一样,GDI+支持的图像格式多一些,比如可以将一个gif跟png合成,但处理jpg图像时如果保存则会失真,所以如果存储尽量选用bmp格式。
      

  2.   

    代码:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormPaint(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject);
    var
      A,B:TBitmap;
    begin
      if FileExists('C:\a.bmp') then
        begin
          A:=TBitmap.Create;
          A.LoadFromFile('C:\a.bmp');
          Canvas.Draw(0,0,A);
          A.Free;
        end;  if FileExists('C:\b.bmp') then
        begin
          B:=TBitmap.Create;
          B.LoadFromFile('C:\b.bmp');
          Canvas.Draw(50,50,B);
          B.Free;
        end;
    end;end.
    只是简单写了个示例,如有不明之处,请QQ上说话。