zoukankan      html  css  js  c++  java
  • GdiPlus[51]: 图像(三) 关于呈现


    相关方法:
    IGPGraphics.DrawImage();
    IGPImage.GetThumbnailImage();
    IGPImage.RotateFlip();
    

    用 DrawImage 呈现图像时, 是否指定 Width 和 Height 的区别:



    //如果图像的分辨率与 Graphics 的分辨率不一致, 则指定 Width、Height 是有必要的.
    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Image: IGPImage;
      ix,iy,gx,gy: Single;
    begin
      Image := TGPImage.Create('C:\GdiPlusImg\Shapes.bmp');
      Graphics := TGPGraphics.Create(Handle);
    
      Graphics.DrawImage(Image, 10, 10, Image.Width, Image.Height);
      Graphics.DrawImage(Image, Image.Width + 20, 10);
    
      ix := Image.HorizontalResolution;
      iy := Image.VerticalResolution;
      gx := Graphics.DpiX;
      gy := Graphics.DpiY;
      Text := Format('%.0f:%.0f; %.0f:%.0f', [ix, iy, gx, gy]);
    end;
    

    略缩图:



    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Thumbnail,Image: IGPImage;
    begin
      Image := TGPImage.Create('C:\GdiPlusImg\Apple.gif');
      Thumbnail := Image.GetThumbnailImage(32, 32);
      
      Graphics := TGPGraphics.Create(Handle);
      Graphics.DrawImage(Image, 0, 0, Image.Width, Image.Height);
      Graphics.DrawImage(Thumbnail, Image.Width + 2, 0, Thumbnail.Width, Thumbnail.Height);
    end;
    

    图像旋转:



    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Image,ImageClone: IGPImage;
      i: Integer;
    begin
      Image := TGPImage.Create('C:\GdiPlusImg\Bird.bmp');
      Graphics := TGPGraphics.Create(Handle);
    
      for i := 0 to 7 do
      begin
        ImageClone := Image.Clone;
        ImageClone.RotateFlip(TGPRotateFlipType(i));
        Graphics.DrawImage(ImageClone, 10, 10, Image.Width, Image.Height);
        Graphics.TranslateTransform(Image.Width + 10, 0);
        if i = 3 then
        begin
          Graphics.TranslateTransform(-Graphics.Transform.OffsetX, Image.Height + 10);
        end;
      end;
    end;
    
  • 相关阅读:
    C#函数复习
    ADO数据库访问类查询、属性扩展
    ADO.NET完整的删除与修改, 实体类和数据访问类
    ADO.NET增删改查
    类库、委托
    多态
    面向对象:封装、继承
    面向对象思想:对象和类
    sql 存储过程、事务、视图、触发器
    连接查询,结构、循环语句
  • 原文地址:https://www.cnblogs.com/del/p/1634406.html
Copyright © 2011-2022 走看看