【发布时间】:2017-01-08 21:05:28
【问题描述】:
我需要在自定义形状内填充颜色。我知道形状内部的像素坐标之一,也知道形状的颜色。我需要通过知道像素坐标来计算形状内的所有像素,我该如何为此编写逻辑,请有人帮忙。
【问题讨论】:
标签: java image-processing pixel
我需要在自定义形状内填充颜色。我知道形状内部的像素坐标之一,也知道形状的颜色。我需要通过知道像素坐标来计算形状内的所有像素,我该如何为此编写逻辑,请有人帮忙。
【问题讨论】:
标签: java image-processing pixel
对于已经渲染的形状
使用 Flood Fill 或 Boundary fill 算法。例如参见:
请注意,大多数实现都是递归的,因此对于更大的区域,堆栈/堆溢出的风险很高。还有使用更安全的动态点列表的迭代方法。
对于矢量形式的多边形
使用凸多边形填充。如果您有凹多边形,则需要先将它们分成凸多边形。另一种选择是三角测量。三角形和凸多边形光栅化都是一样的,见:
如果您需要三角测量,请参阅:
如果形状非常复杂并且由于任何原因无法进行三角剖分,您可以尝试填充多边形边界框中的所有像素。为此,您需要:
【讨论】: