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相关推荐

  1. GdiPlus[12]: IGPLinearGradientBrush 的其他构建方式

    为什么80%的码农都做不了架构师?>>>    第二种构建方式: TGPLinearGradientBrush.Create(矩形, 颜色1, 颜色2, 渐变模式); 第三种构建方式 ...

  2. GdiPlus[15]: IGPLinearGradientBrush 之 GammaCorrection

    为什么80%的码农都做不了架构师?>>>    GammaCorrection 属性是一个 Boolean 值, 默认 False; 为 True 表示启用了灰度校正. 测试图中的第 ...

  3. 博客总目录(2007.11.12 - 2010.4.25)

    如果我的学习记录和历程能对你有所帮助, 我非常高兴; 但是 -- "万一" 不是高手.更不是大师, 只是利用工作之余学点东西, 并感觉学得挺吃力. 内容都是写时才会, 难免稚嫩, ...

  4. 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)

    本篇博文主要是对MediaScanner中endFile方法的处理流程上的重构,以实现需求中的资源区域化定制.处理思路为首先扫描定制分区中的资源,在扫描系统分区下默认资源时判断定制分区西下是否已经存在 ...

  5. sqlserver错误码

    错误 6,000 到 6,999 错误 严重性 是否记录事件 说明 6001 10 否 SHUTDOWN 正在等待 %d 个进程完成. 6004 10 否 用户没有执行此操作的权限. 6005 10 ...

  6. GdiPlus[6]: 五种画刷总览

    为什么80%的码农都做不了架构师?>>>    GDI+ 有五种画刷: 实心画刷: IGPSolidBrush 阴影画刷: IGPHatchBrush 纹理画刷: IGPTextur ...

  7. GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat

    IGPStringFormat 的方法和属性: //方法: IGPStringFormat.GetTabStops(); { 获取制表位 } IGPStringFormat.SetTabStops() ...

  8. GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法

    这包括: //属性 IGPBitmap.Pixels; { 获取或设置指定像素的颜色 }//方法 IGPBitmap.SetResolution(); { 设置分辨率 } IGPBitmap.GetH ...

  9. 再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape

    本例效果图(颜色失真严重, 因为 GIF 最多只能接受 256 中颜色): 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Var ...

最新文章

  1. 两年JAVA程序员的面试总结
  2. BZOJ4539: [Hnoi2016]树
  3. 发了篇paper,双非二本的她直博浙大
  4. apache camel_Apache Camel中的短重试与长重试
  5. (转)十分钟搞定你自己的多图片/文件服务器
  6. 提取voc数据集中特定的类
  7. Python创建多线程(join线程同步)
  8. 构建freeswitch, make cd-moh-install提示文件错误
  9. C#Winform使用Chrome内核WebKitBrowser
  10. 使用Animate制作汽车广告动画
  11. WPS表格如何快速添加斜线表头
  12. 远程访问及控制工具SSH
  13. 003-Xshell和Xftp连接CentOS
  14. 如何给公司节约成本,搭建免费开源监控系统uptime-kuma
  15. 超级简单理解工厂模式
  16. python 实现人脸采集 训练 与人脸识别
  17. 电脑开机后网络一直转圈,程序也打不开——亲测解决办法
  18. 现役大学生必看!干货满满!
  19. Python编程从入门到实践 第一部分基础知识 代码合集
  20. 给iOS App减肥

热门文章

  1. 2个相同的 stm32 can通讯不成功_STM32芯片的几种烧写方式简介
  2. 关闭进程_Xbox Game Bar重磅更新:可不离开游戏关闭系统进程
  3. Make Fcitx Work In Sublime-Text-3
  4. install opencv on mac and use it in xcode
  5. 深度学习中的梯度下降算法
  6. python实现GBDT算法的回归、二分类以及多分类,算法流程解读并可视化
  7. php 手册中show的使用,文档工具--showdoc(一)
  8. 用计算机算非,在线计算器上的与、或、非、异或等逻辑运算键如何使用?
  9. java css是什么_【狂神说JAVA】CSS(通俗易懂版)
  10. Error: cannot allocate vector of size 88.1 Mb问题