zoukankan      html  css  js  c++  java
  • GdiPlus[1]: 一个给 Delphi 提供的、新的 GDI+ 接口, 很好用!


    尽管 GDI+ 已经有近 10 年的历史(随 Win2000 推出), 尽管 DirectX 如日中天, 但在 Windows 7 之前的版本下进行 2D 绘图还是离不开它, 微软也没有停止对它的升级, 随 Vista 的 GDI 版本是 1.1(6.0.xxxx.x), 新增了 Blur 等功能.

    不过 Win7 已经有了 Direct D2D1, Delphi 也同步有了 Direct2D 支持; 这是可以代替 GDI+ 的东西, 但听说 D2D1 可以很好地与 GDI+ 结合.

    之前我在 Delphi 中使用 GDI+ 是用的 http://www.progdigy.com/?page_id=7, 它很早了, 也只支持 GDI+1.0.

    现在有了新的 GdiPlus(当前版本是 1.2, 2009 更新), 我大概浏览了一下, 有以下感觉:
    1、支持 GDI+1.1; 我现在用 XP, 还是 1.0 的 GDI+, 不过 1.1 增加的东西不是很多.
    2、命名与结构尽量靠近 Net; 这相当于同时学习了 Net 下的 2D 绘图, 同时可以更方便地参考 msdn 的帮助.
    3、提倡使用接口(而不是类, 甚至禁止直接使用类)和结构, 这样可以节省大量代码(甚至不需要写一个 xxx.Free).
    4、使用了 Helper、运算符重载、泛型等 Delphi 的新语法, 所以只适用于 Delphi 2009 之后的版本.

    总之, 比之前任何时候都方便、实用; 相比 Net , 实现同样的功能至少也能节省 1/3 的代码!

    相关网址:

    http://cc.embarcadero.com/Item/26950

    http://www.bilsen.com/gdiplus

    http://www.bilsen.com/gdiplus/GdiPlus1.2.zip

    借着 GdiPlus 又要复习一下 GDI+ 了, 其实以前的学习都还不彻底.

    下载后把 Lib 下的 GdiPlus.pas、GdiPlusHelpers.pas 两个文件载入库路径(Tools -> Options -> Library-Win32 -> Library path)即可使用了.

    如果你也需要测试后面的示例, 需要知道: 我把 Demos\Bin\ 下的所有示例图片都复制到了 C:\GdiPlusImg\.

    第一个例子, 显示一张图片只需要两行代码:

    uses GdiPlus, GdiPlusHelpers;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Image: IGPImage;
    begin
      Image := TGPImage.Create('C:\GdiPlusImg\Grapes.jpg');
      Canvas.ToGPGraphics.DrawImage(Image, 10, 10);
    end;
    
  • 相关阅读:
    FreeMarker list指令(3.2)
    FreeMarker if指令(3.1)
    FreeMarker FTL常用指令(3)
    FreeMarker模板文件的组成(2)
    FreeMarker语言概述(1)
    动态执行--获取某数据库某表某些字段的唯一值
    Luogu P3403 跳楼机|同余最短路
    Luogu P1640 [SCOI2010]连续攻击游戏|二分图
    **** **** 黑白球|DP
    **** **** 建筑物|DP
  • 原文地址:https://www.cnblogs.com/del/p/1621790.html
Copyright © 2011-2022 走看看