Add AI/OCR extraction feature with UI and CSV export
Integrates optional AI/OCR (AIFotoONLUS.Core) support to extract numbers from images after processing. Adds new "AI" tab in the UI for enabling extraction, selecting models folder, specifying CSV output, and previewing results. Results can be exported to CSV. Uses reflection for AI library invocation, with fallback simulation if unavailable. Persists new AI settings. Updates related NuGet packages and adds theme resources.
This commit is contained in:
parent
10cc574acb
commit
6a5173a20d
8 changed files with 392 additions and 7 deletions
|
|
@ -4,7 +4,33 @@
|
|||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="Image Catalog - WPF" Height="490" Width="800">
|
||||
Title="Image Catalog - WPF" Height="490" Width="800"
|
||||
Background="{DynamicResource WindowBackgroundBrush}" Foreground="{DynamicResource ControlForegroundBrush}">
|
||||
<Window.Resources>
|
||||
<ResourceDictionary>
|
||||
<!-- Light theme resources -->
|
||||
<ResourceDictionary x:Key="LightTheme">
|
||||
<SolidColorBrush x:Key="WindowBackgroundBrush" Color="White" />
|
||||
<SolidColorBrush x:Key="ControlBackgroundBrush" Color="White" />
|
||||
<SolidColorBrush x:Key="ControlForegroundBrush" Color="Black" />
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#DDD" />
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="#0078D7" />
|
||||
<SolidColorBrush x:Key="DataGridBackgroundBrush" Color="White" />
|
||||
<SolidColorBrush x:Key="DataGridForegroundBrush" Color="Black" />
|
||||
</ResourceDictionary>
|
||||
|
||||
<!-- Dark theme resources -->
|
||||
<ResourceDictionary x:Key="DarkTheme">
|
||||
<SolidColorBrush x:Key="WindowBackgroundBrush" Color="#1E1E1E" />
|
||||
<SolidColorBrush x:Key="ControlBackgroundBrush" Color="#252526" />
|
||||
<SolidColorBrush x:Key="ControlForegroundBrush" Color="#E6E6E6" />
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#3A3A3A" />
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="#0A84FF" />
|
||||
<SolidColorBrush x:Key="DataGridBackgroundBrush" Color="#252526" />
|
||||
<SolidColorBrush x:Key="DataGridForegroundBrush" Color="#E6E6E6" />
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary>
|
||||
</Window.Resources>
|
||||
<Grid Margin="10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*" />
|
||||
|
|
@ -210,6 +236,51 @@
|
|||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
|
||||
<TabItem Header="AI">
|
||||
<ScrollViewer>
|
||||
<StackPanel Margin="8">
|
||||
<TextBlock Text="AI / OCR" FontWeight="Bold" />
|
||||
<CheckBox Content="Estrai numeri dalle immagini" IsChecked="{Binding ExtractNumbers}" Margin="0,8,0,0" />
|
||||
|
||||
<TextBlock Text="Modelli" FontWeight="Bold" Margin="0,12,0,0" />
|
||||
<Grid Margin="0,6,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Cartella modelli:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
|
||||
<TextBox Text="{Binding ModelsFolderPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" VerticalAlignment="Center" />
|
||||
<Button Content="Scegli..." Width="88" Margin="8,0,0,0" Command="{Binding SelectModelsFolderCommand}" Grid.Column="2" />
|
||||
<Button Content="Apri" Width="56" Margin="8,0,0,0" Click="OpenModelsFolder_Click" Grid.Column="3" />
|
||||
</Grid>
|
||||
|
||||
<TextBlock Text="Output CSV" FontWeight="Bold" Margin="0,12,0,0" />
|
||||
<Grid Margin="0,6,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Percorso CSV:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
|
||||
<TextBox Text="{Binding CsvOutputPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" VerticalAlignment="Center" />
|
||||
<Button Content="Scegli..." Width="88" Margin="8,0,0,0" Command="{Binding SelectCsvOutputCommand}" Grid.Column="2" />
|
||||
<Button Content="Apri" Width="56" Margin="8,0,0,0" Click="OpenCsvOutputFolder_Click" Grid.Column="3" />
|
||||
</Grid>
|
||||
|
||||
<TextBlock Text="Anteprima risultati" FontWeight="Bold" Margin="0,12,0,0" />
|
||||
<DataGrid ItemsSource="{Binding PreviewResults}" IsReadOnly="True" AutoGenerateColumns="False" Height="200" Margin="0,6,0,0">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Path" Binding="{Binding Path}" Width="*" />
|
||||
<DataGridTextColumn Header="Text" Binding="{Binding Text}" Width="2*" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<!-- Right: Controls and live info -->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue