文档章节

GDI+ 学习记录(9): 纹理画刷 - TextureBrush

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 281
阅读 10
收藏 0
//纹理画刷
var
  g: TGPGraphics;
  img: TGPImage;
  tb: TGPTextureBrush;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  img := TGPImage.Create('c:\temp\small.jpg');
  tb := TGPTextureBrush.Create(img);

  g.FillEllipse(tb, 0, 0, Self.ClientWidth, Self.ClientHeight);

  img.Free;
  tb.Free;
  g.Free;
end;

 
 
 
 
 

 

 

  
//Matrix var g: TGPGraphics; img: TGPImage; tb: TGPTextureBrush; matrix: TGPMatrix; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\x.jpg'); tb := TGPTextureBrush.Create(img); matrix := TGPMatrix.Create(75.0/640.0, 0.0, 0.0, 75.0/480.0, 0.0, 0.0); tb.SetTransform(matrix); g.FillEllipse(tb, 0, 0, Self.ClientWidth, Self.ClientHeight); matrix.Free; img.Free; tb.Free; g.Free; end;
//WrapMode var g : TGPGraphics; img: TGPImage; tb : TGPTextureBrush; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\small.jpg'); tb := TGPTextureBrush.Create(img); p := TGPPen.Create(MakeColor(255, 0, 0, 0)); tb.SetWrapMode(WrapModeTile); g.FillRectangle(tb, MakeRect(0, 0, 200, 200)); g.DrawRectangle(p, MakeRect(0, 0, 200, 200)); tb.SetWrapMode(WrapModeTileFlipX); g.FillRectangle(tb, MakeRect(200, 0, 200, 200)); g.DrawRectangle(p, MakeRect(200, 0, 200, 200)); tb.SetWrapMode(WrapModeTileFlipY); g.FillRectangle(tb, MakeRect(0, 200, 200, 200)); g.DrawRectangle(p, MakeRect(0, 200, 200, 200)); tb.SetWrapMode(WrapModeTileFlipXY); g.FillRectangle(tb, MakeRect(200, 200, 200, 200)); g.DrawRectangle(p, MakeRect(200, 200, 200, 200)); img.Free; tb.Free; p.Free; g.Free; end;
WrapMode 选项:

Delphi 微软 说明
WrapModeClamp Clamp 纹理或渐变没有平铺。
WrapModeTile Tile 平铺渐变或纹理。
WrapModeTileFlipX TileFlipX 水平反转纹理或渐变,然后平铺该纹理或渐变。
WrapModeTileFlipXY  TileFlipXY  水平和垂直反转纹理或渐变,然后平铺该纹理或渐变。
WrapModeTileFlipY TileFlipY 垂直反转纹理或渐变,然后平铺该纹理或渐变。


本文转载自:http://www.cnblogs.com/del/archive/2007/12/27/1017177.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
简述WPF中的画刷(Brush)

-------------------------------------------------------------------------------- 引用或转载时请保留以下信息: 大可山 [MSN:a3news(AT)hotmail.com] http://www.zpxp.com http://www.b......

Andrewniu
09/30
0
0
【Visual C++】游戏开发笔记之四——游戏画面绘图(一)基本图形绘制

本系列文章由zhmxy555编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7333886 作者:毛星云 邮箱: happylifemxy@qq.com 欢迎邮件交流编程心得 从本篇文章开始笔锋一...

长平狐
2012/11/12
115
0
关于cocos2d-x几种画图方法的用法与思考

CCRenderTexture 自己的理解 CCRenderTexture类似一张空白的“画布“,用户通过自定义笔刷(CCSprite*),在touch事件中把笔刷的移动痕迹“记录”起来,从而“画”出各种艺术效果。记录方法很简...

于赟
2012/11/18
0
0
Genesis-3D新手入门——11.地形系统

地形系统 这是一个地形系统的实例,根据Genesis-3D参考手册中地形指南,创建出一个简单的Demo,帮助用户来了解地形系统的使用。 1.创建地形。 (1)点击菜单"工具"-->"地形"-->"新建地形"打开...

lengche
2014/02/20
0
0
Genesis-3D新手入门——11.地形系统

地形系统 这是一个地形系统的实例,根据Genesis-3D参考手册中地形指南,创建出一个简单的Demo,帮助用户来了解地形系统的使用。 1.创建地形。 (1)点击菜单"工具"-->"地形"-->"新建地形"打开...

lengche
2013/12/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

防止快速重复点击的两种思维

防止重复执行的两种思维 场景 下单时,提交按钮,因为网络卡顿或者手快重复点击,导致重复提交订单; 微博,更新个人状态或发表评论时,快速多次点击[发送]按钮,导致相同的信息发送多次. 解决思路 ...

黄威
31分钟前
0
0
在windows环境下使用Virtualbox虚拟Debian系统来运行Docker

标题绕口。 我之前一直使用 Virtualbox 和 homestead 来运行我的 PHP 开发环境。最近决心开始尝试 DevOps,使得开发、部署容器化,来化解人为操作失误和环境不兼容等问题造成的各种损失。就打...

zgldh
33分钟前
0
0
python map()

map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。(利用生成器的原理,并不马上返回值,...

南桥北木
47分钟前
0
0
分享几个 SpringBoot 实用的小技巧

前言 最近分享的一些源码、框架设计的东西。我发现大家热情不是特别高,想想大多数应该还是正儿八经写代码的居多;这次就分享一点接地气的: SpringBoot 使用中的一些小技巧。 算不上多高大上...

Java干货分享
48分钟前
2
0
day123-20181021-英语流利阅读-待学习

这款新字体,比记忆面包还管用 Lala 2018-10-21 1.今日导读 字体能跟学习效果有什么关系?你还别说,来自澳洲的心理学家和设计师们,还真创造了一款号称能够帮助大家记忆信息、增强学习效果的...

飞鱼说编程
59分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部