HistogramView

HistogramView

用于显示图像直方图的 SwiftUI 视图。

如何使用它?

非常简单,只需...

HistogramView(image: myImage)

注意: 同时支持 UIImageNSImage (通过 HistogramImage 类型别名,取决于平台)。

有哪些配置选项?

初始化器支持通道透明度、混合模式和最终图表的缩放比例。

/// The opacity of each channel layer. Default is `1`
public let channelOpacity: CGFloat

/// The blend mode for the channel layers. Default is `.screen`
public let blendMode: BlendMode

/// The scale of each layer. Default is `1`
public let scale: CGFloat

这个东西有多快?

在底层,直方图计算由 AcceleratevImageHistogramCalculation_ARGB8888 (针对 RGB 通道) 执行,所以实际上速度相当快。足够快到可以同步执行(虽然没有在巨大的图像上进行测试)。

图形曲线是如何生成的?

每个通道都是一个 SwiftUI Path,它使用 埃尔米特插值 来生成一条连续曲线。 插值器的实际实现取自 @FlexMonkey 的实现Filterpedia 项目的一部分),并进行了调整以用于 Path 而不是 UIBezierPath

作者

Vasilis Akoinoglou, alladinian@gmail.com