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;
    
  • 相关阅读:
    yii框架学习(安装)
    lnmp环境搭建(Ubuntu)
    shell 替换 01,02,03等不可见字符
    mongo分布式集群(三主三从三仲裁)搭建
    ES命令行操作
    服务器buffer/cache 的产生原因和释放buffer/cache
    Linux配置免密登录
    使用yum安装java时,没有jps的问题解决
    SkyWalking 搭建及简单使用
    nginx常用模块
  • 原文地址:https://www.cnblogs.com/del/p/1634406.html
Copyright © 2011-2022 走看看