博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Direct2D (13) : 画刷之 ID2D1BitmapBrush
阅读量:6848 次
发布时间:2019-06-26

本文共 1114 字,大约阅读时间需要 3 分钟。

  hot3.png

{相关结构}TD2D1BitmapBrushProperties = record  extendModeX: D2D1_EXTEND_MODE;                     //三个可选值分别是:0(延伸)、1(换行)、2(镜像)  extendModeY: D2D1_EXTEND_MODE;                     //同上  interpolationMode: D2D1_BITMAP_INTERPOLATION_MODE; //拉伸图像时的差值算法:0(高速低质)、1(高质低速)end;

测试代码:

uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject);var  cvs: TDirect2DCanvas;  iBrush: ID2D1BitmapBrush;  rBBP: TD2D1BitmapBrushProperties;  R: TRect;  bit: TBitmap;begin  bit := TBitmap.Create;  bit.LoadFromFile('C:\Temp\Test.bmp');  cvs := TDirect2DCanvas.Create(Canvas, ClientRect);  R := ClientRect;  rBBP.extendModeX := D2D1_EXTEND_MODE_MIRROR;  rBBP.extendModeY := D2D1_EXTEND_MODE_WRAP;  rBBP.interpolationMode := D2D1_BITMAP_INTERPOLATION_MODE_LINEAR;  cvs.RenderTarget.CreateBitmapBrush(cvs.CreateBitmap(bit), @rBBP, nil, iBrush);  cvs.Brush.Handle := iBrush;  //cvs.Brush.Bitmap := bit;  //如果是简单平铺,可以用这句代替上面五行  cvs.Pen.Width := 0;  cvs.BeginDraw;  cvs.Rectangle(R);  cvs.EndDraw;  cvs.Free;  bit.Free;end;procedure TForm1.FormResize(Sender: TObject);begin  Repaint;end;

效果图:
26153739_NZRK.png

转载于:https://my.oschina.net/hermer/blog/320488

你可能感兴趣的文章
shell3
查看>>
分享几个好用的工具,有效提升工作效率
查看>>
论北京北漂的家人们
查看>>
delphi 检查用户输入必须是汉字串
查看>>
思科交换机和路由器设备实现DHCP功能
查看>>
MongoDB安装与操作大全
查看>>
人我的是好有是的好sula
查看>>
编译工程时报java:[1,0] illegal character: \65279问题排查与解决过
查看>>
RHEL6子接口及双网卡绑定配置
查看>>
常见系统故障排查
查看>>
正则验证手机号是否合法
查看>>
《Git权威指南》读书笔记 第四章 git初始化
查看>>
《Head first HTML与CSS 第二版》读书笔记 第九章 盒模型
查看>>
《Python面向对象……》之目录
查看>>
集群入门简析及LB下LVS详解
查看>>
Linux与GPT
查看>>
管理或技术
查看>>
分配到弱属性;对象将在赋值之后释放
查看>>
java作用域public ,private ,protected 及不写时的区别
查看>>
until循环语句
查看>>