delphi - 图像 "fade"输入/输出(不透明度)

标签 delphi bitmap bezier

我想要“淡入/淡出”图像。但不透明。

图片胜于 Eloquent :

原始图片:

enter image description here

所需图像:

enter image description here

我怎样才能以编程方式做到这一点?不是像“使用 Bitmap.Canvas”那样的方式,而是数学方法。 (如果可能的话,“对于傻瓜”...:D)

我希望图像有一个淡入/淡出区域,不是线性增加而是“曲线”。我猜这与贝塞尔曲线有关?如果是,我将如何设置点以获得这样的曲线?

或者你会采取什么方法?

感谢您的帮助! :)

最佳答案

这大致是您将如何做到这一点(正如您所说,您正在寻找逻辑而不是完整的实现)

  1. 创建基本形状轮廓:创建部分正弦波,使得半周期(半波长:P1 = L/2)等于长度(x 坐标大小)你的形象。
  2. 添加泛音:添加另一个正弦函数。这次波长由 P2 = P1/2 + rnd 给出,其中 rnd 是区间 (-P1/4 , +P1/4 )
  3. 重复:现在 P2 成为新的 P1。

这样您就可以通过调制主波来生成“波浪”,并且您将获得顶部边界。

您可以更改符号并获取下边界。

您可能要查找的词(即形状)是泛音。您可以查找有关生成光学或声学泛音的更多信息。

这个向直线添加泛音的示例会给出更好的主意。上面的代码将这些随机缩短周期的正弦波相加,以创建波叠波效应 ( source ) enter image description here

关于delphi - 图像 "fade"输入/输出(不透明度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638836/

相关文章:

delphi - 拉撒路。相当于 Unicode 符号的 Chr()

使用不安全代码的 C# 位图图像屏蔽

android - 引用我的自定义 BitmapDrawable 来自 android :src in a resource XML

gnuplot - 将 acspline 与 fillcurve 数据结合起来

arrays - RTTI 动态数组 TValue Delphi 2010

德尔福 XE - [DCC 错误] : E2004 Identifier redeclared: 'System'

android - 使用位图作为布局的 alpha

iphone - 给定一组点,如何计算平滑路径的控制点?

javascript - HTML5 Canvas,沿着路径的等距点

delphi - 命令行 shell 中的参数