标签:ID2D1BitmapBrush 13 画刷 EXTEND cvs rBBP D2D1 MODE bit
Direct2D (13) : 画刷之 ID2D1BitmapBrush
{相关结构} 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;
效果图:
posted on 2011-04-02 17:16 万一 阅读(1993) 评论(2) 编辑 收藏
标签:ID2D1BitmapBrush,13,画刷,EXTEND,cvs,rBBP,D2D1,MODE,bit 来源: https://blog.51cto.com/u_14617575/2745412
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。