Delphi 保存GDI+为图片

来源:互联网 发布:尔雅网络通识课官网 编辑:程序博客网 时间:2024/05/24 03:23

//获取解码信息

function GetEncoderClsid(Formats:string;var clsid : TGUID):Integer;
var
  num :UINT   ;          // number of image encoders
  size : UINT  ;         // size of the image encoder array in bytes
  pinfo  : PImageCodecInfo ;
  i : Integer ;
begin
  GetImageEncodersSize(num, size);


  pinfo := GetMemory(size);


  GetImageEncoders(num, size, pinfo);


  for I := 0 to num - 1 do
  begin
    if pinfo.MimeType = Formats then
    begin
      clsid := pinfo.Clsid ;
      Break ;
    end;
    Inc(pinfo);
  end;


end;



procedure TForm1.Button2Click(Sender: TObject);
var
  image : TGPBitmap ;
  graphic : TGPGraphics ;
  pen : TGPPen ;
  pen2 : TGPPen ;
  rect : TGPRectF ;
  color : ARGB ;


  guid : TGUID ;
begin
  GetEncoderClsid('image/bmp',guid);




  pen := TGPPen.Create(aclRed,2);
  image := TGPBitmap.Create(500,400);
  graphic := TGPGraphics.Create( image );
  try
    graphic.Clear(aclWhite);
    graphic.DrawEllipse(pen,MakeRect(10,10,20,20));


    pen.SetColor(aclGreen);
    pen2 := pen.Clone ;
    
    graphic.TranslateTransform(10.0,50);
    graphic.DrawEllipse(pen2,MakeRect(10,10,20,20));


      pen.SetColor(aclRed);
    graphic.TranslateTransform(10.0,50);
     graphic.DrawEllipse(pen,MakeRect(10,10,20,20));


         graphic.TranslateTransform(10.0,50);
    graphic.DrawEllipse(pen2,MakeRect(10,10,20,20));




    image.Save('d:\aaa.jpg',guid) ;




    graphic.FromHDC(Canvas.Handle).DrawImage(image,0,0);


  finally
    graphic.Free;
    image.Free;
  end;
end;



0 0
原创粉丝点击