本例效果图:



代码文件:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DIB, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)DXPaintBox1: TDXPaintBox;Button1: TButton;Button2: TButton;ColorBox1: TColorBox;ColorBox2: TColorBox;procedure FormCreate(Sender: TObject);procedure FormDestroy(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}const str = '春';vardib,dib1,dib2: TDIB;procedure TForm1.FormCreate(Sender: TObject);
constImgPath1 = 'C:\Temp\DX.jpg';
begindib := TDIB.Create;dib1 := TDIB.Create;dib2 := TDIB.Create;dib.LoadFromFile(ImgPath1);DXPaintBox1.ClientWidth := dib.Width;DXPaintBox1.ClientHeight := dib.Height;DXPaintBox1.DIB.Assign(dib);dib1.Assign(dib);dib2.SetSize(dib.Width, dib.Height, 24);dib2.Canvas.Brush.Style := bsClear;dib2.Canvas.Font.Name := '黑体';dib2.Canvas.Font.Size := 90;dib2.Canvas.Font.Style := [fsBold];ColorBox1.Selected := clBlack;ColorBox2.Selected := clYellow;
end;procedure TForm1.FormDestroy(Sender: TObject);
begindib.Free;dib1.Free;dib2.Free;
end;procedure TForm1.Button1Click(Sender: TObject);
begindib1.Assign(dib);dib2.Fill(ColorBox1.Selected);dib2.Canvas.Font.Color := ColorBox2.Selected;dib2.Canvas.TextOut(0, 0, str);dib1.DrawAlphaMask(dib2, dib1, 0, 0, dib.Width, dib.Height, 0, 0);DXPaintBox1.DIB.Assign(dib1);DXPaintBox1.Repaint;
end;procedure TForm1.Button2Click(Sender: TObject);
begindib1.Assign(dib);dib2.Fill(ColorBox2.Selected);dib2.Canvas.Font.Color := ColorBox1.Selected;dib2.Canvas.TextOut(0, 0, str);dib1.DrawAlphaMask(dib2, dib1, 0, 0, dib.Width, dib.Height, 0, 0);DXPaintBox1.DIB.Assign(dib1);DXPaintBox1.Repaint;
end;end.

窗体文件:


object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 142ClientWidth = 226Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalseOnCreate = FormCreateOnDestroy = FormDestroyPixelsPerInch = 96TextHeight = 13object DXPaintBox1: TDXPaintBoxLeft = 8Top = 8Width = 81Height = 73AutoStretch = FalseCenter = FalseKeepAspect = FalseStretch = FalseViewWidth = 0ViewHeight = 0endobject Button1: TButtonLeft = 143Top = 78Width = 75Height = 25Caption = 'Button1'TabOrder = 0OnClick = Button1Clickendobject Button2: TButtonLeft = 143Top = 109Width = 75Height = 25Caption = 'Button2'TabOrder = 1OnClick = Button2Clickendobject ColorBox1: TColorBoxLeft = 143Top = 8Width = 81Height = 22ItemHeight = 16TabOrder = 2endobject ColorBox2: TColorBoxLeft = 143Top = 36Width = 81Height = 22ItemHeight = 16TabOrder = 3end
end

Delphi 与 DirectX 之 DelphiX(89): TDIB.DrawAlphaMask();相关推荐

  1. Delphi 与 DirectX 之 DelphiX(25): TDIB.Blur();

    DelphiX 的组件面板上, 第二个就是 TDXDIB; TDXDIB.DIB 是 TDXDIB 的唯一属性(其他是 TComponent 固有的); TDXDIB.DIB 属性是一个 TDIB 对 ...

  2. Delphi 与 DirectX 之 DelphiX(95): TDIB.x

    //让 TDIB 的这些特效烦透了: 多.还重复.又不完善; 还没有测试或测试失败的方法: procedure DrawShadow(SrcDIB: TDIB; X, Y, Width, Height ...

  3. Delphi 与 DirectX 之 DelphiX(33): TDIB.SmoothRotateWrap();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  4. Delphi 与 DirectX 之 DelphiX(93): TDIB.DrawDarken();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  5. Delphi 与 DirectX 之 DelphiX(83): TDIB.FilterLine()、FilterRect();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  6. Delphi 与 DirectX 之 DelphiX(77): TDIB.Distort();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  7. Delphi 与 DirectX 之 DelphiX(52): TDIB.DoSaturation();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  8. Delphi 与 DirectX 之 DelphiX(35): TDIB.Saturation();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  9. Delphi 与 DirectX 之 DelphiX(72): TDIB.SephiaEffect();

    为什么80%的码农都做不了架构师?>>>    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, V ...

最新文章

  1. 每个程序员都应该了解的内存知识(3)-虚拟内存
  2. 蓝牙4.0BLE抓包(二) – 广播包解析
  3. 减少mysql主从数据同步延迟问题的详解
  4. 将有序数组转为二叉搜索树
  5. 查询数据库中有多少个数据表_您的数据中有多少汁?
  6. spring mvc 工作流程
  7. 蔡崇信完成对布鲁克林篮网和巴克莱中心的全资收购
  8. Redis高并发1-redis环境搭建
  9. 利用360卫士打补丁
  10. 你的公司建立了企业文化了么?没有就看看这个
  11. 树莓派做无线打印服务器,用树莓派和 CUPS 打印服务器将你的打印机变成网络打印机...
  12. Python常用中文字体对应名称
  13. 伦敦时间现在几点_伦敦现在几点
  14. ReactNative--控件小记-更新中
  15. 完美国际服务器维护中,《完美国际2》3月31日全服更新维护公告
  16. 个性化Ubuntu壁纸如何添加
  17. 英语3500词(十)adventure主题(2022.1.22)
  18. 企业全面云化的时代——云数据库的未来
  19. 2020-mac-东芝的移动硬盘插入到我的macbook pro系统上没反应,只是等在闪烁
  20. FZU 1980 AbOr's story

热门文章

  1. execel公式 java工具,MyExcel(Excel Java工具包) v3.0.0下载
  2. diy 扫地机器人 滚刷_不想动手倒垃圾?自集尘扫地机器人彻底解放你的双手!...
  3. sentinel安装
  4. mysql floor报错_mysql的floor()报错注入方法详细分析
  5. 外链引入css有哪些方式_引入CSS样式表的方式有哪些?
  6. 客户端dmesg_打印调试技术 printk klogd dmesg(解决打印信息的问题)
  7. Python实战案例,pygame模块,Python实现套路表白神器VS无套路表白神器
  8. linux中查看lvm的名称,关于Linux中LVM的使用总结
  9. android 折叠与展开,android – 如何根据滚动方向折叠/展开视图?
  10. 网络服务-RSYNC