GdiPlus[16]: IGPLinearGradientBrush 之 SetBlendBellShape、SetBlendTriangularShape
SetBlendBellShape 方法: 创建基于钟形曲线的渐变过渡过程;
SetBlendTriangularShape 方法: 创建一个从中心色向两端单个颜色线性过渡的线性渐变过程.
两个方法好像区别不大.
SetBlendBellShape 测试效果图:
SetBlendTriangularShape 测试效果图:
SetBlendBellShape 测试代码:
uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject); varGraphics: IGPGraphics;Rect: TGPRectF;Brush: IGPLinearGradientBrush; beginGraphics := TGPGraphics.Create(Canvas.Handle);Rect.Initialize(10, 10, 120, 150);Brush := TGPLinearGradientBrush.Create(Rect, $FFFF0000, $FF0000FF, 0);Brush.SetBlendBellShape(1);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(0.8);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(0.5);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(0.2);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(0);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);//Graphics.TranslateTransform(-Graphics.Transform.OffsetX, Rect.Y + Rect.Height);Brush.SetBlendBellShape(1, 1);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(1, 0.8);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(1, 0.5);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(1, 0.2);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendBellShape(1, 0);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect); end;
SetBlendTriangularShape 测试代码:
uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject); varGraphics: IGPGraphics;Rect: TGPRectF;Brush: IGPLinearGradientBrush; beginGraphics := TGPGraphics.Create(Canvas.Handle);Rect.Initialize(10, 10, 120, 150);Brush := TGPLinearGradientBrush.Create(Rect, $FFFF0000, $FF0000FF, 0);Brush.SetBlendBellShape(1);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(0.8);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(0.5);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(0.2);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(0);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);//Graphics.TranslateTransform(-Graphics.Transform.OffsetX, Rect.Y + Rect.Height);Brush.SetBlendTriangularShape(1, 1);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(1, 0.8);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(1, 0.5);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(1, 0.2);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect);Brush.SetBlendTriangularShape(1, 0);Graphics.TranslateTransform(Rect.X + Rect.Width, 0);Graphics.FillEllipse(Brush, Rect); end;
GdiPlus[16]: IGPLinearGradientBrush 之 SetBlendBellShape、SetBlendTriangularShape相关推荐
- GdiPlus[12]: IGPLinearGradientBrush 的其他构建方式
为什么80%的码农都做不了架构师?>>> 第二种构建方式: TGPLinearGradientBrush.Create(矩形, 颜色1, 颜色2, 渐变模式); 第三种构建方式 ...
- GdiPlus[15]: IGPLinearGradientBrush 之 GammaCorrection
为什么80%的码农都做不了架构师?>>> GammaCorrection 属性是一个 Boolean 值, 默认 False; 为 True 表示启用了灰度校正. 测试图中的第 ...
- 博客总目录(2007.11.12 - 2010.4.25)
如果我的学习记录和历程能对你有所帮助, 我非常高兴; 但是 -- "万一" 不是高手.更不是大师, 只是利用工作之余学点东西, 并感觉学得挺吃力. 内容都是写时才会, 难免稚嫩, ...
- 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)
本篇博文主要是对MediaScanner中endFile方法的处理流程上的重构,以实现需求中的资源区域化定制.处理思路为首先扫描定制分区中的资源,在扫描系统分区下默认资源时判断定制分区西下是否已经存在 ...
- sqlserver错误码
错误 6,000 到 6,999 错误 严重性 是否记录事件 说明 6001 10 否 SHUTDOWN 正在等待 %d 个进程完成. 6004 10 否 用户没有执行此操作的权限. 6005 10 ...
- GdiPlus[6]: 五种画刷总览
为什么80%的码农都做不了架构师?>>> GDI+ 有五种画刷: 实心画刷: IGPSolidBrush 阴影画刷: IGPHatchBrush 纹理画刷: IGPTextur ...
- GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat
IGPStringFormat 的方法和属性: //方法: IGPStringFormat.GetTabStops(); { 获取制表位 } IGPStringFormat.SetTabStops() ...
- GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法
这包括: //属性 IGPBitmap.Pixels; { 获取或设置指定像素的颜色 }//方法 IGPBitmap.SetResolution(); { 设置分辨率 } IGPBitmap.GetH ...
- 再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape
本例效果图(颜色失真严重, 因为 GIF 最多只能接受 256 中颜色): 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Var ...
最新文章
- 两年JAVA程序员的面试总结
- BZOJ4539: [Hnoi2016]树
- 发了篇paper,双非二本的她直博浙大
- apache camel_Apache Camel中的短重试与长重试
- (转)十分钟搞定你自己的多图片/文件服务器
- 提取voc数据集中特定的类
- Python创建多线程(join线程同步)
- 构建freeswitch, make cd-moh-install提示文件错误
- C#Winform使用Chrome内核WebKitBrowser
- 使用Animate制作汽车广告动画
- WPS表格如何快速添加斜线表头
- 远程访问及控制工具SSH
- 003-Xshell和Xftp连接CentOS
- 如何给公司节约成本,搭建免费开源监控系统uptime-kuma
- 超级简单理解工厂模式
- python 实现人脸采集 训练 与人脸识别
- 电脑开机后网络一直转圈,程序也打不开——亲测解决办法
- 现役大学生必看!干货满满!
- Python编程从入门到实践 第一部分基础知识 代码合集
- 给iOS App减肥
热门文章
- 2个相同的 stm32 can通讯不成功_STM32芯片的几种烧写方式简介
- 关闭进程_Xbox Game Bar重磅更新:可不离开游戏关闭系统进程
- Make Fcitx Work In Sublime-Text-3
- install opencv on mac and use it in xcode
- 深度学习中的梯度下降算法
- python实现GBDT算法的回归、二分类以及多分类,算法流程解读并可视化
- php 手册中show的使用,文档工具--showdoc(一)
- 用计算机算非,在线计算器上的与、或、非、异或等逻辑运算键如何使用?
- java css是什么_【狂神说JAVA】CSS(通俗易懂版)
- Error: cannot allocate vector of size 88.1 Mb问题