通用基础设施XP.Common新增 ImageHistogramControl 图像灰度直方图通用控件(使用SixLabors.ImageSharp 3.1.12),支持 Image<Rgba32> 和 byte[] 输入,支持多线程调用,Telerik RadChartView 渲染。

This commit is contained in:
QI Mingxuan
2026-05-18 09:17:39 +08:00
parent 346f4d9a9b
commit a9d56ebfbd
7 changed files with 2408 additions and 1 deletions
@@ -0,0 +1,36 @@
<UserControl x:Class="XP.Common.Controls.ImageHistogram.ImageHistogramControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="200" d:DesignWidth="400">
<Grid>
<telerik:RadCartesianChart x:Name="HistogramChart">
<!-- X 轴:灰度级别 | X Axis: Gray Level -->
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:LinearAxis x:Name="XAxis"
Minimum="0"
Maximum="255"
Title="灰度级别"/>
</telerik:RadCartesianChart.HorizontalAxis>
<!-- Y 轴:像素频次(默认线性)| Y Axis: Pixel Frequency (default linear) -->
<telerik:RadCartesianChart.VerticalAxis>
<telerik:LinearAxis x:Name="YAxis"
Minimum="0"
Maximum="1"
Title="频次"/>
</telerik:RadCartesianChart.VerticalAxis>
<!-- 柱状图系列 | Bar Series -->
<telerik:RadCartesianChart.Series>
<telerik:BarSeries x:Name="HistogramBarSeries"
ValueBinding="Frequency"
CategoryBinding="GrayLevel"
ShowLabels="False"/>
</telerik:RadCartesianChart.Series>
</telerik:RadCartesianChart>
</Grid>
</UserControl>