Algorithm 我如何完成iPhone按钮的填充

Algorithm 我如何完成iPhone按钮的填充,algorithm,delphi,graphics,fill,Algorithm,Delphi,Graphics,Fill,我想整理一下我使用的一些用户控件,并认为一些有吸引力的填充应该可以完成这项工作(也许是其中的一部分)。比如iPhone按钮的背景填充或Office2007功能区条(也许你知道更多) 编辑: 为了澄清问题,我不需要简单的渐变填充-有一个Windows API调用。我更感兴趣的是整个效果是如何实现的。下面是一个演示如何在PhotoShop中实现这一点的示例,但我想在代码中实现这一点 具体而言,顶端的光泽梯度大致在按钮中间的一条曲线上。我有一半的期望,这将需要单独呈现,并以某种方式混合 有什么想法吗?

我想整理一下我使用的一些用户控件,并认为一些有吸引力的填充应该可以完成这项工作(也许是其中的一部分)。比如iPhone按钮的背景填充或Office2007功能区条(也许你知道更多)

编辑: 为了澄清问题,我不需要简单的渐变填充-有一个Windows API调用。我更感兴趣的是整个效果是如何实现的。下面是一个演示如何在PhotoShop中实现这一点的示例,但我想在代码中实现这一点

具体而言,顶端的光泽梯度大致在按钮中间的一条曲线上。我有一半的期望,这将需要单独呈现,并以某种方式混合


有什么想法吗?

你说的是渐变填充。您可以从一些代码示例开始-搜索该页面的“渐变”以找到相关部分。

最简单的方法可能是根据按钮大小组合图像。创建一个基础图像,并调整其顶部的某些层的大小,而不是尝试按程序生成复杂的渐变。

只需创建一个比高度大4倍的白色椭圆,将其放置在要“玻璃化”的图像上,使底部弧以图像为中心,然后进行alpha混合,即可产生“玻璃”效果。我相信此示例将对执行最后部分有所帮助。

您可以尝试。据我所知,此控件包含在D2009的免费平滑控件包中。对于其他Delphi版本,您可以购买TAdvSmoothButton控件本身或作为控件包的一部分。

如果您谈论的是圆形或平面深度的3D效果,则称为渐变。您是在谈论渐变吗?它们基本上是两种或两种以上颜色之间的插值(通常是线性的),比线性渐变更复杂。以IPhone为例,按钮的上半部分有一个渐变,但渐变底部有点圆,与下面的对比度很大。这里有一个在PhotoShop中完成它的教程,在我的例子中,这当然是无用的:现在我如何在代码中做到这一点?FWIW:“填充算法”听起来像“洪水填充算法”,所以问题,正如所说,有点混乱。你实际上要求的只是一些渐变的任意组合。也许如果你解释一下你在哪一部分遇到了麻烦,你会得到一个更有用的答案。好吧,我确实说过我不知道该怎么称呼它(仍然不知道)。我之所以寻求帮助,正是因为实现过程完全未知。我将对问题进行编辑,以更好地反映我所寻找的内容。平滑控件是非常棒的组件:只需尝试一下即可。+1我找到了一些示例,这似乎是常见的方法。不过我还是同意斯卡姆拉特的回答。