亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aafont.pas

?? 平滑字體控件 版  本: 文件大小:388.445Kb 軟件語言:簡體中文 授權方式:免費版 相關鏈接:程序演示
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*******************************************************************************

                          AAFont - 平滑特效字體控件包
                          ---------------------------
                           (C)Copyright 2001-2003
                            與月共舞工作室 周勁羽

            這一控件包是自由軟件,您可以遵照自由軟件基金會出版的GNU 較
        寬松通用公共許可證協議來修改和重新發布這一程序,或者用許可證的
        第二版,或者(根據您的選擇)用任何更新的版本。

            發布這一控件包的目的是希望它有用,但沒有任何擔保。甚至沒有
        適合特定目的而隱含的擔保。更詳細的情況請參閱 GNU 較寬松通用公
        共許可證。

            您應該已經和控件包一起收到一份 GNU 較寬松通用公共許可證的
        副本。如果還沒有,寫信給:
            Free Software Foundation, Inc., 59 Temple Place - Suite
        330, Boston, MA 02111-1307, USA.

          原始文件名:AAFont.pas
            單元作者:周勁羽
            下載地址:http://www.yygw.net
            電子郵件:yygw@yygw.net
            最后更新:2003.12.02

*******************************************************************************}

unit AAFont;
{* |<PRE>
================================================================================
* 軟件名稱:平滑特效字體控件包 V2.59
* 單元名稱:平滑特效字體單元
* 單元作者:與月共舞工作室  周勁羽
* 下載網址:http://www.yygw.net
* Eamil   :yygw@yygw.net
* 開發平臺:PWin2000Pro + Delphi 5.01
* 兼容測試:PWin9X/2000/XP + Delphi 5/6/7 + C++Build 5/6
* 備  注:平滑字體算法由李文松朋友提供的AAFont修改而來
* 最后更新:2003.12.02
================================================================================
|</PRE>}

interface

{$I AAFont.inc}

uses
  Windows, Messages, Classes, Graphics, SysUtils, Consts, Controls, Forms,
  Registry, StdCtrls, ExtCtrls, Math, IniFiles;

type

  TAAQuality = (aqHigh, aqNormal, aqLow, aqNone);
  {* 平滑字體顯示精度類型
   |<PRE>
     aqHigh     - 4X4采樣的最高顯示精度,速度較慢
     aqNormal   - 3X3采樣的普通顯示精度,最佳性能速度比
     aqLow      - 2X2采樣的低顯示精度,速度較快
     aqNone     - 無平滑效果
   |</PRE>}
  TAlpha = 0..100;
  {* 不透明度類型,0為完全透明,100為完全不透明}
  TBlurStrength = 0..100;
  {* 模糊度類型,0為不模糊,100為最大模糊度}
  TOffset = -20..20;
  {* 陰影偏移量范圍}
  TSprayRange = 0..100;
  {* 噴濺效果參數范圍}
  TAngle = -360..360;
  {* 旋轉角度}
  TGradualStyle = (gsLeftToRight, gsRightToLeft, gsTopToBottom, gsBottomToTop,
    gsCenterToLR, gsCenterToTB);
  {* 漸變方式類型
   |<PRE>
     gsLeftToRight      - 從左向右漸變
     gsRightToLeft      - 從右向左漸變
     gsTopToBottom      - 從上向下漸變
     gsBottomToTop      - 從下向上漸變
     gsCenterToLR       - 從中間向左右漸變
     gsCenterToTB       - 從中間向上下漸變
   |</PRE>}
  TTextureMode = (tmTiled, tmStretched, tmCenter, tmNormal);
  {* 紋理圖像顯示模式
   |<PRE>
     tmTiled            - 平鋪顯示
     tmStretched        - 自動縮放顯示
     tmCenter           - 在中心位置顯示
     tmNormal           - 在左上角顯示
   |</PRE>}

  TAAEffect = class;
  TAAMask = class;
  TAABlend = class;
  TAAFont = class;
  TAAFontEx = class;

{ TNotifyClass }

  TNotifyClass = class(TPersistent)
  {* 帶更新通知的持久性類,控件包中大部分持久類的基類,一般不需要直接使用}
  private
    FOnChanged: TNotifyEvent;
  protected
    FOwner: TPersistent;
    procedure Changed; virtual;
    procedure OnChildChanged(Sender: TObject); virtual;
    function GetOwner: TPersistent; override;
  public
    constructor Create(ChangedProc: TNotifyEvent); virtual;
    {* 類構造器,參數為通知事件}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
    property OnChanged: TNotifyEvent read FOnChanged write FOnChanged;
    {* 屬性已變更事件}
  end;

{ TEnabledClass }

  TEnabledClass = class(TNotifyClass)
  {* 帶Enabled功能的更新通知的持久性類,一般不需要直接使用}
  private
    FEnabled: Boolean;
  protected
    procedure SetEnabled(const Value: Boolean); virtual;
    procedure Changed; override;
  public
    constructor Create(ChangedProc: TNotifyEvent); override;
    {* 類構造器,參數為通知事件}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
  published
    property Enabled: Boolean read FEnabled write SetEnabled default False;
    {* 是否允許使用}
  end;

{ TAAShadow }

  TAAShadow = class(TEnabledClass)
  {* 平滑特效字體陰影顯示參數類,一般不需要用戶直接創建}
  private
    FBlur: TBlurStrength;
    FAlpha: TAlpha;
    FColor: TColor;
    FOffsetX: TOffset;
    FOffsetY: TOffset;
    procedure SetBlur(const Value: TBlurStrength);
    procedure SetColor(const Value: TColor);
    procedure SetOffsetX(const Value: TOffset);
    procedure SetOffsetY(const Value: TOffset);
    procedure SetAlpha(const Value: TAlpha);
  public
    constructor Create(ChangedProc: TNotifyEvent); override;
    {* 類構造器,參數為通知事件}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
  published
    property Blur: TBlurStrength read FBlur write SetBlur default 80;
    {* 陰影模糊度,參數范圍為0..100,0為不模糊}
    property Alpha: TAlpha read FAlpha write SetAlpha default 70;
    {* 陰影不透明度,參數范圍為0..100,0為全透明,100為不透明}
    property Color: TColor read FColor write SetColor default $00444444;
    {* 陰影顏色}
    property OffsetX: TOffset read FOffsetX write SetOffsetX default 2;
    {* 陰影水平方向偏移量,為負值時向左偏移}
    property OffsetY: TOffset read FOffsetY write SetOffsetY default 2;
    {* 陰影垂直方向偏移量,為負值時向上偏移}
  end;

{ TAAGradual }

  TAAGradual = class(TEnabledClass)
  {* 平滑特效字體漸變顯示參數類,一般不需要用戶直接創建}
  private
    FStyle: TGradualStyle;
    FStartColor: TColor;
    FEndColor: TColor;
    procedure SetStyle(const Value: TGradualStyle);
    procedure SetStartColor(const Value: TColor);
    procedure SetEndColor(const Value: TColor);
  public
    constructor Create(ChangedProc: TNotifyEvent); override;
    {* 類構造器,參數為通知事件}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
  published
    property Style: TGradualStyle read FStyle write SetStyle default gsLeftToRight;
    {* 漸變顯示風格}
    property StartColor: TColor read FStartColor write SetStartColor
      default clWhite;
    {* 漸變起始色}
    property EndColor: TColor read FEndColor write SetEndColor default clBlack;
    {* 漸變結束色}
  end;

{ TAATexture }

  TAATexture = class(TEnabledClass)
  {* 平滑特效字體紋理參數類,一般不需要用戶直接創建}
  private
    FPicture: TPicture;
    FMode: TTextureMode;
    procedure SetMode(const Value: TTextureMode);
    procedure SetPicture(const Value: TPicture);
    procedure PictureChanged(Sender: TObject);
  public
    constructor Create(ChangedProc: TNotifyEvent); override;
    {* 類構造器,參數為通知事件}
    destructor Destroy; override;
    {* 類析構器}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
  published
    property Mode: TTextureMode read FMode write SetMode default tmTiled;
    {* 紋理圖像顯示模式}
    property Picture: TPicture read FPicture write SetPicture;
    {* 紋理圖像}
  end;

{ TAAEffect }

  TAAEffect = class(TNotifyClass)
  {* 平滑特效字體參數類,一般不需要用戶直接創建}
  private
    FAlpha: TAlpha;
    FBlur: TBlurStrength;
    FGradual: TAAGradual;
    FShadow: TAAShadow;
    FTexture: TAATexture;
    FOutline: Boolean;
    FNoise: Byte;
    FSpray: TSprayRange;
    FAngle: TAngle;
    FHorzMirror: Boolean;
    FVertMirror: Boolean;
    procedure SetAlpha(const Value: TAlpha);
    procedure SetBlur(const Value: TBlurStrength);
    procedure SetGradual(const Value: TAAGradual);
    procedure SetShadow(const Value: TAAShadow);
    procedure SetTexture(const Value: TAATexture);
    procedure SetOutline(const Value: Boolean);
    procedure SetNoise(const Value: Byte);
    procedure SetSpray(const Value: TSprayRange);
    procedure SetAngle(const Value: TAngle);
    procedure SetHorzMirror(const Value: Boolean);
    procedure SetVertMirror(const Value: Boolean);
  public
    constructor Create(ChangedProc: TNotifyEvent); override;
    {* 類構造器,參數為通知事件}
    destructor Destroy; override;
    {* 類析構器}
    procedure Assign(Source: TPersistent); override;
    procedure LoadFromIni(Ini: TCustomIniFile; const Section: string); virtual;
    procedure SaveToIni(Ini: TCustomIniFile; const Section: string); virtual;
    {* 對象賦值方法}
  published
    property Shadow: TAAShadow read FShadow write SetShadow;
    {* 字體陰影參數}
    property Gradual: TAAGradual read FGradual write SetGradual;
    {* 漸變顯示參數}
    property Texture: TAATexture read FTexture write SetTexture;
    {* 字體紋理參數}
    property Alpha: TAlpha read FAlpha write SetAlpha default 100;
    {* 不透明度,參數范圍為0..100,0為完全透明,100為不透明}
    property Blur: TBlurStrength read FBlur write SetBlur default 0;
    {* 模糊度,參數范圍為0..100,0為不模糊}
    property Angle: TAngle read FAngle write SetAngle default 0;
    {* 字體旋轉角度,參數范圍為-360..360,單位為度}
    property Noise: Byte read FNoise write SetNoise default 0;
    {* 噪聲效果,參數范圍為0..255}
    property Spray: TSprayRange read FSpray write SetSpray default 0;
    {* 噴濺效果,參數范圍為0..100}
    property Outline: Boolean read FOutline write SetOutline default False;
    {* 是否顯示輪廓效果}
    property HorzMirror: Boolean read FHorzMirror write SetHorzMirror default False;
    {* 是否水平鏡象}
    property VertMirror: Boolean read FVertMirror write SetVertMirror default False;
    {* 是否垂直鏡象}
  end;

{ TAAMask }

  EInvalidPixel = class(Exception);
  EInvalidLine = class(Exception);

  PByteArray = ^TByteArray;
  {* 字節數組指針}
  TByteArray = array[0..32767] of Byte;
  {* 字節數組類型}

  PRGBArray = ^TRGBArray;
  {* RGB數組指針}
  TRGBArray = array[0..8192] of tagRGBTriple;
  {* RGB數組類型}

  TAAMask = class(TPersistent)
  {* 平滑特效字體蒙板處理類,供繪制平滑字體時內部使用}
  private
    FQuality: TAAQuality;
    FpMaskBuff: PByteArray;
    FHeight: Integer;
    FWidth: Integer;
    BytesLineGray: Integer;
    BytesLineMask: Integer;
    Scale: Integer;
    AAFont: TAAFont;
    GrayBmp: TBitmap;
    procedure InitGrayBmp;
    procedure FreeGrayBmp;
    procedure SetQuality(const Value: TAAQuality);
    function TextExtentEx(s: string; var Point: TPoint): TSize;
  protected
    function ScanLine(Line: Integer; pAData: PByteArray): PByteArray; overload;
    property pMaskBuff: PByteArray read FpMaskBuff;
  public
    constructor Create(AOwner: TAAFont);
    {* 類構造器}
    destructor Destroy; override;
    {* 類析構器}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
    procedure DrawMask(Text: string);
    {* 繪制文本蒙板圖}
    procedure DrawMaskEx(Text: string; Extend: TSize; Point: TPoint);
    {* 繪制文本蒙板圖增強版}
    procedure Blur(Blur: TBlurStrength);
    {* 對蒙板圖進行模糊處理}
    procedure Outline;
    {* 對蒙板圖進行輪廓處理}
    procedure Spray(Amount: Integer);
    {* 對蒙板圖進行噴濺處理}
    procedure HorzMirror;
    {* 對蒙板圖進行水平鏡象處理}
    procedure VertMirror;
    {* 對蒙板圖進行垂直鏡象處理}
    function TextExtent(s: string): TSize;
    {* 返回文本高、寬}
    function TextHeight(s: string): Integer;
    {* 返回文本高度}
    function TextWidth(s: string): Integer;
    {* 返回文本寬度}
    function ScanLine(Line: Integer): Pointer; overload;
    {* 返回蒙板圖掃描線地址}
    function Pixel(x, y: Integer): Byte;
    {* 返回蒙板圖指定象素灰度值}
    function PixelAddr(x, y: Integer): Pointer;
    {* 返回蒙板圖指定象素地址}
    property Height: Integer read FHeight;
    {* 蒙板圖的高度}
    property Width: Integer read FWidth;
    {* 蒙板圖的寬度}
    property Quality: TAAQuality read FQuality write SetQuality;
    {* 平滑字體繪制精度}
  end;

{ TAABlend }

  EInvalidForeBmp = class(Exception);

  TAABlend = class(TPersistent)
  {* 平滑特效字體圖像混合處理類,供繪制平滑字體時內部使用}
  private
    FForeBmp: TBitmap;
    RGBBmp: TBitmap;
    AAFont: TAAFont;
    procedure SetForeBmp(const Value: TBitmap);
  public
    constructor Create(AOwner: TAAFont);
    {* 類構造器}
    destructor Destroy; override;
    {* 類析構器}
    procedure Assign(Source: TPersistent); override;
    {* 對象賦值方法}
    procedure Blend(x, y: Integer; AColor: TColor; Alpha: TAlpha; Mask: TAAMask);
    {* 按指定顏色進行混合}
    procedure BlendEx(x, y: Integer; Alpha: TAlpha; Mask: TAAMask);
    {* 使用前景圖ForeBmp進行混合}
    property ForeBmp: TBitmap read FForeBmp write SetForeBmp;
    {* 字體前景圖}
  end;

{ TAAFont }

  TAAFont = class
  {* 平滑特效字體繪制類,封裝了基本的平滑字體繪制方法,用戶可手動使用。
   |<BR>如果需要在其它地方繪制平滑字體,可使用下面的方法:
   !var
   !  AAFont: TAAFont;
   !  W, H: Integer;
   !  S: string;
   !begin
   !  // 創建TAAFont實例,并指定它使用PaintBox1的畫布進行繪制
   !  AAFont := TAAFont.Create(PaintBox1.Canvas);
   !  try
   !    with PaintBox1.Canvas do

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成精品久久久久| 亚洲欧美色一区| 成人av电影在线| 亚洲国产婷婷综合在线精品| 久久久亚洲国产美女国产盗摄 | 久久不见久久见免费视频1| 成人欧美一区二区三区| 欧美va天堂va视频va在线| 一本大道久久a久久综合| 国内精品国产三级国产a久久| 亚洲综合丝袜美腿| 国产日韩欧美a| 欧美一区二区日韩一区二区| 97se亚洲国产综合在线| 国产一区在线观看麻豆| 婷婷国产在线综合| 一区二区三区资源| 国产精品久久久久久妇女6080 | 欧美日韩一区成人| 99久久久无码国产精品| 国产成人精品1024| 久久99精品国产麻豆婷婷| 午夜精品一区二区三区免费视频 | 国产午夜亚洲精品午夜鲁丝片| 欧美日韩一区久久| 色八戒一区二区三区| 成人午夜视频免费看| 韩国一区二区视频| 免费人成精品欧美精品| 亚洲成人1区2区| 一区二区三区免费| 亚洲人成网站在线| 亚洲日本va午夜在线电影| 中文子幕无线码一区tr| 国产午夜亚洲精品理论片色戒| 精品国产电影一区二区| 精品少妇一区二区三区免费观看 | 欧美三区在线观看| 欧美亚洲精品一区| 欧美亚洲动漫制服丝袜| 欧美亚洲动漫另类| 欧洲国内综合视频| 色偷偷成人一区二区三区91| 色婷婷国产精品| 在线精品国精品国产尤物884a| 91久久精品国产91性色tv| 在线观看欧美日本| 在线播放一区二区三区| 在线不卡免费欧美| 欧美成va人片在线观看| 久久久夜色精品亚洲| 国产色爱av资源综合区| 欧美激情一区二区三区全黄| 中文字幕佐山爱一区二区免费| 自拍偷拍亚洲综合| 亚洲国产欧美在线人成| 免费看黄色91| 福利电影一区二区| 日本大香伊一区二区三区| 欧美日韩专区在线| 日韩免费观看高清完整版 | 男人操女人的视频在线观看欧美 | 国产精品一级黄| av资源站一区| 欧美日韩高清一区二区| 欧美α欧美αv大片| 国产网站一区二区| 亚洲综合区在线| 日本成人在线电影网| 亚洲你懂的在线视频| 香蕉久久一区二区不卡无毒影院| 5858s免费视频成人| 日韩一卡二卡三卡四卡| 久久久无码精品亚洲日韩按摩| 国产精品久久久久7777按摩| 亚洲亚洲精品在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 国产99久久久国产精品| 欧美色网一区二区| 久久影音资源网| 亚洲精品一二三四区| 国产99久久久国产精品潘金| 欧美亚洲国产一区在线观看网站| 欧美大白屁股肥臀xxxxxx| 国产精品久久久久久久久晋中 | 日韩av电影一区| 国产1区2区3区精品美女| 欧美亚洲综合在线| 久久精品亚洲国产奇米99| 亚洲激情六月丁香| 国产乱人伦偷精品视频不卡| 欧美亚州韩日在线看免费版国语版| 日韩欧美精品在线| 一区二区三区在线视频观看58| 久久www免费人成看片高清| 色综合久久天天| 久久久综合激的五月天| 午夜a成v人精品| 91美女在线观看| 国产日韩精品一区二区三区| 日韩中文字幕亚洲一区二区va在线| 成人美女视频在线看| 日韩视频免费观看高清在线视频| 亚洲欧美日韩在线| 国产99精品国产| 日韩三级.com| 亚洲成a人v欧美综合天堂下载| 岛国av在线一区| 久久久亚洲精品一区二区三区| 午夜精品久久久久久久99水蜜桃| 91天堂素人约啪| 日本一区二区免费在线| 激情都市一区二区| 91精品国产综合久久精品麻豆| 一区二区在线免费观看| 成人精品免费网站| 国产欧美一区二区精品仙草咪| 另类小说欧美激情| 91精品国产欧美一区二区18| 亚洲永久精品国产| 91在线观看下载| 欧美激情在线一区二区三区| 激情综合色播五月| 日韩一区二区电影在线| 日本最新不卡在线| 91精品国产综合久久久蜜臀粉嫩| 亚洲图片欧美一区| 欧美三级日本三级少妇99| 亚洲激情av在线| 色综合中文综合网| 99久久99久久久精品齐齐| 中文一区二区在线观看| 国产福利电影一区二区三区| 精品国一区二区三区| 蜜桃视频在线观看一区二区| 欧美区视频在线观看| 午夜精品久久久久久不卡8050| 欧美日韩一区久久| 视频一区视频二区中文字幕| 欧美老女人在线| 青青青伊人色综合久久| 日韩一级完整毛片| 激情五月婷婷综合网| 精品久久久网站| 国产高清不卡一区| 国产精品国产三级国产三级人妇| 成人理论电影网| 亚洲欧美一区二区三区孕妇| 在线视频国产一区| 午夜视频久久久久久| 欧美一区二区三区精品| 激情综合五月天| 国产精品伦理一区二区| 91免费国产在线| 亚洲妇女屁股眼交7| 日韩视频一区在线观看| 国产在线精品一区二区| 国产精品久久久久国产精品日日| 99久久精品国产观看| 亚洲自拍偷拍图区| 日韩一区二区电影网| 粉嫩aⅴ一区二区三区四区| 国产精品久久久久久久久晋中 | 国产欧美日韩视频一区二区| 成人深夜视频在线观看| 亚洲男人的天堂在线观看| 欧美日韩一区不卡| 久久99精品久久久久婷婷| 国产精品午夜在线| 欧美日韩电影一区| 国产一区二区不卡在线| 亚洲男帅同性gay1069| 日韩一区和二区| 99天天综合性| 青草av.久久免费一区| 国产精品三级av| 欧美久久一区二区| 成人免费福利片| 日本特黄久久久高潮| 国产精品毛片无遮挡高清| 欧美日韩视频一区二区| 国产精品自拍av| 亚洲va欧美va人人爽| 欧美韩国日本不卡| 欧美日韩综合一区| 成人精品小蝌蚪| 99re66热这里只有精品3直播| 亚洲一卡二卡三卡四卡五卡| 久久久久久久精| 欧美人与禽zozo性伦| 成人av网在线| 另类小说一区二区三区| 亚洲综合激情网| 国产日韩一级二级三级| 91精品国产一区二区| 91免费观看在线| 成人伦理片在线| 国产一区二三区好的| 三级精品在线观看| 亚洲三级在线播放|