我需要能够接受椭圆(计算的)画笔参数,例如间距、硬度、圆度、角度和直径,然后根据这些属性计算位图图像。
有谁知道执行此操作的算法(或在哪里可以找到它)?本人图形编程经验有限,至今没找到。
最佳答案
这是您想要使用库的类型,很可能是 Java 2D API .它包括用于填充、描边、变换和过滤器的工具。它的模型类似于许多库,因为您可以使用运算符 moveTo
和 lineTo
或 curveTo
来追踪路径,它们被抽象为 Ellipse2D
;然后用绘图运算符填充或描边生成的路径。我强烈建议阅读 Java 2D 教程并了解不同部分如何组合在一起。
我会大致采取以下步骤来创建此图:
- 计算模糊后旋转椭圆的最终尺寸。
- 创建一个该大小的
BuferredImage
并调用其createGraphics
方法来获取绘图上下文。- 旋转图形对象
- 画椭圆
- 用黑色填充
- 实现高斯模糊滤镜。这不是内置在 API 中,但它包含一个用于执行称为
ConvolveOp
和 you can find 的过滤器的框架。一种用 Java 计算高斯核的算法。 - 对图像应用滤镜,然后返回结果。
另一个选项可能是 Apache 的 Batik SVG 库,因为您可以声明式表达您想要的绘图(包括转换和过滤器)并为您栅格化它。
关于java - 创建椭圆画笔图像的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2443661/