diff --git a/imagecatalog/MainForm.cs b/imagecatalog/MainForm.cs index 4cb8fb6..541f383 100644 --- a/imagecatalog/MainForm.cs +++ b/imagecatalog/MainForm.cs @@ -17,832 +17,944 @@ using ImageCatalog_2; using ImageCatalog_2.Services; using MaddoShared; using Microsoft.Extensions.Logging; -using Microsoft.VisualBasic; -using Microsoft.VisualBasic.CompilerServices; -namespace ImageCatalog +namespace ImageCatalog; + +public delegate void XyThreadAdd(string Info); + +public partial class MainForm { - public delegate void XyThreadAdd(string Info); + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public DataModel Model { get; set; } + + private readonly ILogger _logger; - public partial class MainForm + private readonly ImageCreationStuff _imageCreationService; + + public MainForm( ImageCreationStuff imageCreationStuff, ILogger logger) { - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public DataModel Model { get; set; } + _imageCreationService = imageCreationStuff; + _logger = logger; - private readonly ITestService _service; - private readonly ILogger _logger; + _logger.LogDebug("Start"); - private readonly ImageCreationStuff _imageCreationService; + InitializeComponent(); - public MainForm(ITestService testService, ImageCreationStuff imageCreationStuff, ILogger logger) + BindControls(); + + _Button3.Name = "Button3"; + _Button2.Name = "Button2"; + _Button8.Name = "Button8"; + _CheckBox18.Name = "CheckBox18"; + _CheckBox4.Name = "CheckBox4"; + _CheckBox12.Name = "CheckBox12"; + _PictureBox1.Name = "PictureBox1"; + _Button4.Name = "Button4"; + _Label27.Name = "Label27"; + _Button7.Name = "Button7"; + _Button5.Name = "Button5"; + //_btnCreaCatalogo.Name = "btnCreaCatalogo"; + _Button6.Name = "Button6"; + _btnCreaCatalogoAsync.Name = "btnCreaCatalogoAsync"; + + var version = Assembly.GetExecutingAssembly().GetName().Version; + _Label27.Text = $"Version: {version.Major}.{version.Minor}.{version.Build}.{version.Revision}"; + + _results = new ConcurrentBag(); + UiUpdateEvent += OnUiUpdateEvent; + } + + protected void BindControls() + { + //txtSorgente.DataBindings.Add(new Binding("Text", SourcePath, "")); + } + + private event EventHandler> UiUpdateEvent; + + delegate void SetTextCallback(Label target, string text); + + private void SetText(Label target, string text) + { + if (InvokeRequired) { - _service = testService; - _imageCreationService = imageCreationStuff; - _logger = logger; + SetTextCallback d = new SetTextCallback(SetText); + this.Invoke(d, new object[] { target, text }); + } + else + { + target.Text = text; + } + } - _logger.LogDebug("Start"); + delegate void SetProgressCallback(ProgressBar target, int amount, int maximum); - InitializeComponent(); + private void SetProgress(ProgressBar target, int amount, int maximum) + { + if (InvokeRequired) + { + SetProgressCallback d = new SetProgressCallback(SetProgress); + this.Invoke(d, new object[] { target, amount, maximum }); + } + else + { + target.Maximum = maximum; + target.Value = amount; + } + } - BindControls(); + private void OnUiUpdateEvent(object sender, Tuple args) + { + SetProgress(ProgressBar1, _results.Count, args.Item2); + SetText(Label18, _results.Count.ToString()); + SetText(Label10, args.Item1); + SetText(lblFotoTotaliNum, args.Item2.ToString()); + } - _Button3.Name = "Button3"; - _Button2.Name = "Button2"; - _Button8.Name = "Button8"; - _CheckBox18.Name = "CheckBox18"; - _CheckBox4.Name = "CheckBox4"; - _CheckBox12.Name = "CheckBox12"; - _PictureBox1.Name = "PictureBox1"; - _Button4.Name = "Button4"; - _Label27.Name = "Label27"; - _Button7.Name = "Button7"; - _Button5.Name = "Button5"; - //_btnCreaCatalogo.Name = "btnCreaCatalogo"; - _Button6.Name = "Button6"; - _btnCreaCatalogoAsync.Name = "btnCreaCatalogoAsync"; + /* TODO ERROR: Skipped DefineDirectiveTrivia */ + private bool StopAttivo; + private bool WaterSelectColor = false; - var version = Assembly.GetExecutingAssembly().GetName().Version; - _Label27.Text = $"Version: {version.Major}.{version.Minor}.{version.Build}.{version.Revision}"; + // Private ContaFotoCuori As Integer + // Private TaskCuori() As PicInfo - _results = new ConcurrentBag(); - UiUpdateEvent += OnUiUpdateEvent; + private XYThreadPool MyPool = new XYThreadPool(); + private int ContaImmaginiThread; + private int maxThreads = 15; + private int minThreads = 5; + + private ConcurrentBag _results; + + private void setDefaults() + { + //txtSorgente.Text = ""; + Model.SourcePath = string.Empty; + Model.DestinationPath = string.Empty; + TextBox3.Text = "tn_"; + TextBox4.Text = ""; + TextBox5.Text = "350"; + TextBox6.Text = "350"; + TextBox27.Text = "2240"; + TextBox28.Text = "2240"; + TextBox9.Text = "0"; + TextBox11.Text = "20"; + TextBox12.Text = "8"; + // TextBox13.Text = "" + TextBox10.Text = ""; + TextBox14.Text = "430"; + TextBox15.Text = "430"; + TextBox16.Text = "290"; + txtFilePerCartella.Text = "99"; + TextBox19.Text = "100"; + txtSuffissoCartelle.Text = ""; + txtCifreContatore.Text = "2"; + TextBox25.Text = "50"; + TextBox26.Text = ""; + TextBox7.Text = 4.ToString(); + TextBox8.Text = 4.ToString(); + TextBox34.Text = "Yellow"; + TextBox30.Text = "20"; + TextBox31.Text = "6"; + TextBox32.Text = "85"; + TextBox33.Text = "30"; + ComboBox1.Items.Add("Alto"); + ComboBox1.Items.Add("Basso"); + ComboBox1.SelectedIndex = 1; + ComboBox2.Items.Add("Sinistra"); + ComboBox2.Items.Add("Centro"); + ComboBox2.Items.Add("Destra"); + ComboBox2.SelectedIndex = 1; + + // Create a obejct of InstalledFontCollection + var InstalledFonts = new InstalledFontCollection(); + // Gets the array of FontFamily objects associated with this FontCollection. + var fontfamilies = InstalledFonts.Families; + + // Populates font combobox with the font name + + foreach (FontFamily fontFamily in fontfamilies) + ComboBox3.Items.Add(fontFamily.Name); + ComboBox3.Text = ComboBox3.Items[0].ToString(); + + // ComboBox3.Items.Add("Arial") + // ComboBox3.Items.Add("Arial Black") + // ComboBox3.Items.Add("Arial Narrow") + // ComboBox3.Items.Add("Comic Sans MS") + // ComboBox3.Items.Add("Courier New") + // ComboBox3.Items.Add("System") + // ComboBox3.Items.Add("Times New Roman") + // ComboBox3.Items.Add("Verdana") + // ComboBox3.Items.Add("Wingdings") + // ComboBox3.SelectedIndex = 7 + + ComboBox4.Items.Add("Sinistra"); + ComboBox4.Items.Add("Centro"); + ComboBox4.Items.Add("Destra"); + ComboBox4.SelectedIndex = 2; + ComboBox5.Items.Add("Alto"); + ComboBox5.Items.Add("Centro"); + ComboBox5.Items.Add("Basso"); + ComboBox5.SelectedIndex = 2; + } + + + private void Form1_Load(object sender, EventArgs e) + { + bindingSource1.DataSource = Model; + Application.EnableVisualStyles(); + setDefaults(); + // /* TODO ERROR: Skipped IfDirectiveTrivia */ + // AllocConsole(); + // /* TODO ERROR: Skipped EndIfDirectiveTrivia */ + _logger.LogInformation("Programma Avviato"); + //Console.WriteLine("Programma avviato"); + } + + private void FixPaths() + { + Model.SourcePath = FixPath(Model.SourcePath); + Model.DestinationPath = FixPath(Model.DestinationPath); + } + + private string FixPath(string path) + { + if (string.IsNullOrWhiteSpace(path)) + { + return string.Empty; } - protected void BindControls() - { - //txtSorgente.DataBindings.Add(new Binding("Text", SourcePath, "")); - } + // Trim leading/trailing quotes + path = path.Trim().Trim('"'); - private event EventHandler> UiUpdateEvent; + // Normalize directory separators + path = path.Replace('/', Path.DirectorySeparatorChar) + .Replace('\\', Path.DirectorySeparatorChar); - delegate void SetTextCallback(Label target, string text); + // Remove trailing separators then add one back + path = path.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar; - private void SetText(Label target, string text) - { - if (InvokeRequired) - { - SetTextCallback d = new SetTextCallback(SetText); - this.Invoke(d, new object[] { target, text }); - } - else - { - target.Text = text; - } - } + return path; + } - delegate void SetProgressCallback(ProgressBar target, int amount, int maximum); + private void lockUI() + { + Model.UiEnabled = false; + //TabControl1.Enabled = false; + //Button5.Enabled = false; + //Button6.Enabled = false; + //btnCreaCatalogoAsync.Enabled = false; + } - private void SetProgress(ProgressBar target, int amount, int maximum) - { - if (InvokeRequired) - { - SetProgressCallback d = new SetProgressCallback(SetProgress); - this.Invoke(d, new object[] { target, amount, maximum }); - } - else - { - target.Maximum = maximum; - target.Value = amount; - } - } - - private void OnUiUpdateEvent(object sender, Tuple args) - { - SetProgress(ProgressBar1, _results.Count, args.Item2); - SetText(Label18, _results.Count.ToString()); - SetText(Label10, args.Item1); - SetText(lblFotoTotaliNum, args.Item2.ToString()); - } + private void unlockUI() + { + Model.UiEnabled = true; + //TabControl1.Enabled = true; + //Button5.Enabled = true; + //Button6.Enabled = true; + //btnCreaCatalogoAsync.Enabled = true; + } + + private void creaCatalogoThread() + { + var timeStart = DateTime.Now; + MyPool.StopThreadPool(); + MyPool.StartThreadPool(minThreads, maxThreads); + ContaImmaginiThread = 0; + // creaImmaginiWithThreadMod(txtSorgente.Text, txtDestinazione.Text) + CreaimmaginiWithThreadDict(Model.SourcePath, Model.DestinationPath); + ThreadPoolWorkItem ThAttivo = null; + int i = 0; /* TODO ERROR: Skipped DefineDirectiveTrivia */ - private bool StopAttivo; - private bool WaterSelectColor = false; + /* TODO ERROR: Skipped IfDirectiveTrivia */ - // Private ContaFotoCuori As Integer - // Private TaskCuori() As PicInfo - - private XYThreadPool MyPool = new XYThreadPool(); - private int ContaImmaginiThread; - private int maxThreads = 15; - private int minThreads = 5; - - private ConcurrentBag _results; - - private void setDefaults() + while (i != ContaImmaginiThread) { - //txtSorgente.Text = ""; - Model.SourcePath = string.Empty; - Model.DestinationPath = string.Empty; - TextBox3.Text = "tn_"; - TextBox4.Text = ""; - TextBox5.Text = "350"; - TextBox6.Text = "350"; - TextBox27.Text = "2240"; - TextBox28.Text = "2240"; - TextBox9.Text = "0"; - TextBox11.Text = "20"; - TextBox12.Text = "8"; - // TextBox13.Text = "" - TextBox10.Text = ""; - TextBox14.Text = "430"; - TextBox15.Text = "430"; - TextBox16.Text = "290"; - txtFilePerCartella.Text = "99"; - TextBox19.Text = "100"; - txtSuffissoCartelle.Text = ""; - txtCifreContatore.Text = "2"; - TextBox25.Text = "50"; - TextBox26.Text = ""; - TextBox7.Text = 4.ToString(); - TextBox8.Text = 4.ToString(); - TextBox34.Text = "Yellow"; - TextBox30.Text = "20"; - TextBox31.Text = "6"; - TextBox32.Text = "85"; - TextBox33.Text = "30"; - ComboBox1.Items.Add("Alto"); - ComboBox1.Items.Add("Basso"); - ComboBox1.SelectedIndex = 1; - ComboBox2.Items.Add("Sinistra"); - ComboBox2.Items.Add("Centro"); - ComboBox2.Items.Add("Destra"); - ComboBox2.SelectedIndex = 1; - - // Create a obejct of InstalledFontCollection - var InstalledFonts = new InstalledFontCollection(); - // Gets the array of FontFamily objects associated with this FontCollection. - var fontfamilies = InstalledFonts.Families; - - // Populates font combobox with the font name - - foreach (FontFamily fontFamily in fontfamilies) - ComboBox3.Items.Add(fontFamily.Name); - ComboBox3.Text = ComboBox3.Items[0].ToString(); - - // ComboBox3.Items.Add("Arial") - // ComboBox3.Items.Add("Arial Black") - // ComboBox3.Items.Add("Arial Narrow") - // ComboBox3.Items.Add("Comic Sans MS") - // ComboBox3.Items.Add("Courier New") - // ComboBox3.Items.Add("System") - // ComboBox3.Items.Add("Times New Roman") - // ComboBox3.Items.Add("Verdana") - // ComboBox3.Items.Add("Wingdings") - // ComboBox3.SelectedIndex = 7 - - ComboBox4.Items.Add("Sinistra"); - ComboBox4.Items.Add("Centro"); - ComboBox4.Items.Add("Destra"); - ComboBox4.SelectedIndex = 2; - ComboBox5.Items.Add("Alto"); - ComboBox5.Items.Add("Centro"); - ComboBox5.Items.Add("Basso"); - ComboBox5.SelectedIndex = 2; - } - - - private void Form1_Load(object sender, EventArgs e) - { - bindingSource1.DataSource = Model; - Application.EnableVisualStyles(); - setDefaults(); - // /* TODO ERROR: Skipped IfDirectiveTrivia */ - // AllocConsole(); - // /* TODO ERROR: Skipped EndIfDirectiveTrivia */ - _logger.LogInformation("Programma Avviato"); - //Console.WriteLine("Programma avviato"); - } - - private void FixPaths() - { - Model.SourcePath = FixPath(Model.SourcePath); - Model.DestinationPath = FixPath(Model.DestinationPath); - } - - private string FixPath(string path) - { - if (string.IsNullOrWhiteSpace(path)) + Thread.Sleep(100); + ThAttivo = MyPool.ExtractWorkItem(); + if (ThAttivo is object) { - return string.Empty; - } + i += 1; + // stepProgressBar() + int threads = MyPool.GetThreadCount(); + setLabel10Text("File: " + ThAttivo.m_sName + " Threads: " + threads.ToString()); - // Trim leading/trailing quotes - path = path.Trim().Trim('"'); + // setLabel18Text(ContaImmaginiThread.ToString) + // setLabel18Text(i.ToString) - // Normalize directory separators - path = path.Replace('/', Path.DirectorySeparatorChar) - .Replace('\\', Path.DirectorySeparatorChar); - // Remove trailing separators then add one back - path = path.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar; - - return path; - } - - private void lockUI() - { - Model.UiEnabled = false; - //TabControl1.Enabled = false; - //Button5.Enabled = false; - //Button6.Enabled = false; - //btnCreaCatalogoAsync.Enabled = false; - } - - private void unlockUI() - { - Model.UiEnabled = true; - //TabControl1.Enabled = true; - //Button5.Enabled = true; - //Button6.Enabled = true; - //btnCreaCatalogoAsync.Enabled = true; - } - - // Vecchio, non usato - private void btnCreaCatalogo_Click(object sender, EventArgs e) - { - _logger.LogInformation("Avvio elaborazione..."); - lockUI(); - DateTime timeStart; - var timeStop = default(DateTime); - timeStart = DateAndTime.TimeOfDay; - FixPaths(); - Label10.Text = ""; - lblFotoTotaliNum.Text = "0"; - Label18.Text = "0"; - Label43.Text = "-s"; - maxThreads = Conversions.ToInteger(TextBox7.Text); - minThreads = Conversions.ToInteger(TextBox8.Text); - if (rdbNuovoMetodo.Checked) - { - setPicSettings(Model.SourcePath, Model.DestinationPath); - ProgressBar1.Minimum = 0; - ProgressBar1.Step = 1; - ProgressBar1.Value = 0; - var t1 = new Thread(creaCatalogoThread); - t1.IsBackground = false; - t1.Start(); - } - else if (rdbVecchioMetodo.Checked) - { - creaCatalogo(timeStart, timeStop); - unlockUI(); + // Label10.Text = "File: " & ThAttivo.m_sName + // Label18.Text = ContaImmaginiThread.ToString } } - private void creaCatalogoThread() + MyPool.StopThreadPool(); + var timeStop = DateTime.Now; + setLabel10Text("Finito"); + setLabel43Text(CalcTime(timeStart, timeStop, ContaImmaginiThread)); + /* TODO ERROR: Skipped EndIfDirectiveTrivia */ + } + + private string CalcTime(DateTime timeStart, DateTime timeStop, int numFoto) + { + long timediffH, timediffS; + long timediffM; + + TimeSpan timeDiff = timeStop - timeStart; + + timediffM = (int)timeDiff.TotalMinutes; + timediffS = (int)timeDiff.TotalSeconds; + timediffH = (int)timeDiff.TotalHours; + + // timediffM = DateAndTime.DateDiff(DateInterval.Minute, timeStart, timeStop); + // timediffS = DateAndTime.DateDiff(DateInterval.Second, timeStart, timeStop); + // timediffH = DateAndTime.DateDiff(DateInterval.Hour, timeStart, timeStop); + + double fotoSec = numFoto / (double)timediffS; + double fotoMin = numFoto / (double)timediffM; + double fotoOra = numFoto / (double)timediffH; + string s = "S: " + timediffS.ToString() + "; F/s: " + + fotoSec.ToString( + "0.000"); // + " F/m: " + fotoMin.ToString("0.00") + " F/h: " + fotoOra.ToString("0.00") + return s; + } + + private string SelectFolder(string startingFolder) + { + var dialog = new FolderBrowserDialog(); + dialog.InitialDirectory = startingFolder; + if (dialog.ShowDialog() != DialogResult.OK) return string.Empty; + + // CommonOpenFileDialog dialog = new CommonOpenFileDialog + // { + // InitialDirectory = startingFolder, + // IsFolderPicker = true + // }; + // if (dialog.ShowDialog() != CommonFileDialogResult.Ok) return null; + var directoryScelta = FixPath(dialog.SelectedPath); // dialog.FileName; + + // if (directoryScelta.EndsWith(@"\") == false) + // { + // directoryScelta += @"\"; + // } + + return directoryScelta; + } + + private void Button2_Click(object sender, EventArgs e) + { + var dialogResult = SelectFolder(Model.SourcePath); + if (!string.IsNullOrWhiteSpace(dialogResult)) { - var timeStart = DateAndTime.TimeOfDay; - MyPool.StopThreadPool(); - MyPool.StartThreadPool(minThreads, maxThreads); - ContaImmaginiThread = 0; - - // creaImmaginiWithThreadMod(txtSorgente.Text, txtDestinazione.Text) - CreaimmaginiWithThreadDict(Model.SourcePath, Model.DestinationPath); - ThreadPoolWorkItem ThAttivo = null; - int i = 0; - /* TODO ERROR: Skipped DefineDirectiveTrivia */ - /* TODO ERROR: Skipped IfDirectiveTrivia */ - - while (i != ContaImmaginiThread) - { - Thread.Sleep(100); - ThAttivo = MyPool.ExtractWorkItem(); - if (ThAttivo is object) - { - i += 1; - // stepProgressBar() - int threads = MyPool.GetThreadCount(); - setLabel10Text("File: " + ThAttivo.m_sName + " Threads: " + threads.ToString()); - - // setLabel18Text(ContaImmaginiThread.ToString) - // setLabel18Text(i.ToString) - - - // Label10.Text = "File: " & ThAttivo.m_sName - // Label18.Text = ContaImmaginiThread.ToString - } - } - - MyPool.StopThreadPool(); - var timeStop = DateAndTime.TimeOfDay; - setLabel10Text("Finito"); - setLabel43Text(CalcTime(timeStart, timeStop, ContaImmaginiThread)); - /* TODO ERROR: Skipped EndIfDirectiveTrivia */ + Model.SourcePath = dialogResult; } - private void creaCatalogo(DateTime timeStart, DateTime timeStop) - { - // asdfg - MyPool.StopThreadPool(); - MyPool.StartThreadPool(minThreads, maxThreads); - ContaImmaginiThread = 0; - CreaImmaginiWithThread(Model.SourcePath, Model.DestinationPath); - ThreadPoolWorkItem ThAttivo = null; - int i = 0; - while (i != ContaImmaginiThread) - { - Thread.Sleep(100); - ThAttivo = MyPool.ExtractWorkItem(); - if (ThAttivo is object) - { - i += 1; - Label10.Text = "File: " + ThAttivo.m_sName; - Label18.Text = ContaImmaginiThread.ToString(); - } - } + //CommonOpenFileDialog dialog = new CommonOpenFileDialog(); + //dialog.InitialDirectory = txtSorgente.Text; + //dialog.IsFolderPicker = true; + //if (dialog.ShowDialog() == CommonFileDialogResult.Ok) + //{ + // string directoryScelta = dialog.FileName; + // if (directoryScelta.EndsWith(@"\") == false) + // { + // directoryScelta += @"\"; + // } - MyPool.StopThreadPool(); - timeStop = DateAndTime.TimeOfDay; - CalcTime(timeStart, timeStop, ContaImmaginiThread); - Label10.Text = "Finito"; - if (CheckBox22.Checked == true) - { - Interaction.Shell(@"%windir%\System32\shutdown.exe"); - } + // txtSorgente.Text = directoryScelta; + //} + + //var DirSearch = new FolderBrowserDialog(); + //DirSearch.SelectedPath = txtSorgente.Text; + //if (DialogResult.OK == DirSearch.ShowDialog()) + //{ + // string DirectoryScelta = DirSearch.SelectedPath; + // if (DirectoryScelta.EndsWith(@"\") == false) + // { + // DirectoryScelta += @"\"; + // } + + // txtSorgente.Text = DirectoryScelta; + //} + } + + private void Button3_Click(object sender, EventArgs e) + { + var dialogResult = SelectFolder(Model.DestinationPath); + if (!string.IsNullOrWhiteSpace(dialogResult)) + { + Model.DestinationPath = dialogResult; } - private string CalcTime(DateTime timeStart, DateTime timeStop, int numFoto) + //var DirSearch = new FolderBrowserDialog(); + //DirSearch.SelectedPath = txtDestinazione.Text; + //if (DialogResult.OK == DirSearch.ShowDialog()) + //{ + // string DirectoryScelta = DirSearch.SelectedPath; + // if (DirectoryScelta.EndsWith(@"\") == false) + // { + // DirectoryScelta += @"\"; + // } + + // txtDestinazione.Text = DirectoryScelta; + //} + + // Dim openFileDialog As OpenFileDialog = New OpenFileDialog + + // Dim openFileDialog As OpenFileDialog = New OpenFileDialog + + // openFileDialog.InitialDirectory = TextBox1.Text + // openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg files (*.jpg)|*.jpg|All valid files (*.*)|*.*" + // openFileDialog.FilterIndex = 2 + // openFileDialog.RestoreDirectory = True + + // If DialogResult.OK = openFileDialog.ShowDialog() Then + // Dim IlNome As String = openFileDialog.FileName + // Dim NomeFine As String = "" + // Dim i As Integer + + // Dim Elenco As String() + // Elenco = IlNome.Split(New Char() {"\"c}) + // For i = 0 To Elenco.Length - 1 + // NomeFine &= Elenco(i) & "\" + // Next + + // TextBox1.Text = NomeFine + // End If + } + + private void Button5_Click(object sender, EventArgs e) + { + var SaveFileDlg = new SaveFileDialog(); + + // SaveFileDlg.InitialDirectory = "c:\" + SaveFileDlg.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*"; + SaveFileDlg.FilterIndex = 0; + SaveFileDlg.RestoreDirectory = true; + if (DialogResult.OK == SaveFileDlg.ShowDialog()) { - long timediffH, timediffS; - long timediffM; - timediffM = DateAndTime.DateDiff(DateInterval.Minute, timeStart, timeStop); - timediffS = DateAndTime.DateDiff(DateInterval.Second, timeStart, timeStop); - timediffH = DateAndTime.DateDiff(DateInterval.Hour, timeStart, timeStop); - // dim s As String = "H:" + timediffH.ToString + " M:" + timediffM.ToString + " S:" + timediffS.ToString - - // Label43.Text = "H:" + timediffH.ToString + " M:" + timediffM.ToString + " S:" + timediffS.ToString - double fotoSec = numFoto / (double)timediffS; - double fotoMin = numFoto / (double)timediffM; - double fotoOra = numFoto / (double)timediffH; - string s = "S: " + timediffS.ToString() + "; F/s: " + - fotoSec.ToString( - "0.000"); // + " F/m: " + fotoMin.ToString("0.00") + " F/h: " + fotoOra.ToString("0.00") - return s; - } - - private string SelectFolder(string startingFolder) - { - var dialog = new FolderBrowserDialog(); - dialog.InitialDirectory = startingFolder; - if (dialog.ShowDialog() != DialogResult.OK) return string.Empty; - - // CommonOpenFileDialog dialog = new CommonOpenFileDialog - // { - // InitialDirectory = startingFolder, - // IsFolderPicker = true - // }; - // if (dialog.ShowDialog() != CommonFileDialogResult.Ok) return null; - var directoryScelta = FixPath(dialog.SelectedPath); // dialog.FileName; - - // if (directoryScelta.EndsWith(@"\") == false) - // { - // directoryScelta += @"\"; - // } - - return directoryScelta; - } - - private void Button2_Click(object sender, EventArgs e) - { - var dialogResult = SelectFolder(Model.SourcePath); - if (!string.IsNullOrWhiteSpace(dialogResult)) + string IlNome = SaveFileDlg.FileName; + Module1.SetupIni.NomeFileSetup = IlNome; + Module1.SetupIni.AggiornaParametro("DirSorgente", Model.SourcePath); + Module1.SetupIni.AggiornaParametro("DirDestinazione", Model.DestinationPath); + Module1.SetupIni.AggiornaParametro("DirSottoDirectory", chkAggiornaSottodirectory.Checked); + Module1.SetupIni.AggiornaParametro("DirDividiDestinazione", chkCreaSottocartelle.Checked); + Module1.SetupIni.AggiornaParametro("DirDividiNumFile", txtFilePerCartella.Text); + Module1.SetupIni.AggiornaParametro("DirDividiSuffisso", txtSuffissoCartelle.Text); + Module1.SetupIni.AggiornaParametro("DirDividiNumCifre", txtCifreContatore.Text); + if (rdbNumProgressiva.Checked == true) { - Model.SourcePath = dialogResult; - } - - //CommonOpenFileDialog dialog = new CommonOpenFileDialog(); - //dialog.InitialDirectory = txtSorgente.Text; - //dialog.IsFolderPicker = true; - //if (dialog.ShowDialog() == CommonFileDialogResult.Ok) - //{ - // string directoryScelta = dialog.FileName; - // if (directoryScelta.EndsWith(@"\") == false) - // { - // directoryScelta += @"\"; - // } - - // txtSorgente.Text = directoryScelta; - //} - - //var DirSearch = new FolderBrowserDialog(); - //DirSearch.SelectedPath = txtSorgente.Text; - //if (DialogResult.OK == DirSearch.ShowDialog()) - //{ - // string DirectoryScelta = DirSearch.SelectedPath; - // if (DirectoryScelta.EndsWith(@"\") == false) - // { - // DirectoryScelta += @"\"; - // } - - // txtSorgente.Text = DirectoryScelta; - //} - } - - private void Button3_Click(object sender, EventArgs e) - { - var dialogResult = SelectFolder(Model.DestinationPath); - if (!string.IsNullOrWhiteSpace(dialogResult)) - { - Model.DestinationPath = dialogResult; - } - - //var DirSearch = new FolderBrowserDialog(); - //DirSearch.SelectedPath = txtDestinazione.Text; - //if (DialogResult.OK == DirSearch.ShowDialog()) - //{ - // string DirectoryScelta = DirSearch.SelectedPath; - // if (DirectoryScelta.EndsWith(@"\") == false) - // { - // DirectoryScelta += @"\"; - // } - - // txtDestinazione.Text = DirectoryScelta; - //} - - // Dim openFileDialog As OpenFileDialog = New OpenFileDialog - - // Dim openFileDialog As OpenFileDialog = New OpenFileDialog - - // openFileDialog.InitialDirectory = TextBox1.Text - // openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg files (*.jpg)|*.jpg|All valid files (*.*)|*.*" - // openFileDialog.FilterIndex = 2 - // openFileDialog.RestoreDirectory = True - - // If DialogResult.OK = openFileDialog.ShowDialog() Then - // Dim IlNome As String = openFileDialog.FileName - // Dim NomeFine As String = "" - // Dim i As Integer - - // Dim Elenco As String() - // Elenco = IlNome.Split(New Char() {"\"c}) - // For i = 0 To Elenco.Length - 1 - // NomeFine &= Elenco(i) & "\" - // Next - - // TextBox1.Text = NomeFine - // End If - } - - private void Button5_Click(object sender, EventArgs e) - { - var SaveFileDlg = new SaveFileDialog(); - - // SaveFileDlg.InitialDirectory = "c:\" - SaveFileDlg.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*"; - SaveFileDlg.FilterIndex = 0; - SaveFileDlg.RestoreDirectory = true; - if (DialogResult.OK == SaveFileDlg.ShowDialog()) - { - string IlNome = SaveFileDlg.FileName; - Module1.SetupIni.NomeFileSetup = IlNome; - Module1.SetupIni.AggiornaParametro("DirSorgente", Model.SourcePath); - Module1.SetupIni.AggiornaParametro("DirDestinazione", Model.DestinationPath); - Module1.SetupIni.AggiornaParametro("DirSottoDirectory", chkAggiornaSottodirectory.Checked); - Module1.SetupIni.AggiornaParametro("DirDividiDestinazione", chkCreaSottocartelle.Checked); - Module1.SetupIni.AggiornaParametro("DirDividiNumFile", txtFilePerCartella.Text); - Module1.SetupIni.AggiornaParametro("DirDividiSuffisso", txtSuffissoCartelle.Text); - Module1.SetupIni.AggiornaParametro("DirDividiNumCifre", txtCifreContatore.Text); - if (rdbNumProgressiva.Checked == true) - { - Module1.SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Progressiva"); - } - else - { - Module1.SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Files"); - } - - Module1.SetupIni.AggiornaParametro("MiniatureCrea", CheckBox1.Checked); - Module1.SetupIni.AggiornaParametro("MiniatureSuffisso", TextBox3.Text); - Module1.SetupIni.AggiornaParametro("MiniatureAltezza", TextBox5.Text); - Module1.SetupIni.AggiornaParametro("MiniatureLarghezza", TextBox6.Text); - Module1.SetupIni.AggiornaParametro("MiniatureAddScritta", RadioButton3.Checked); - Module1.SetupIni.AggiornaParametro("MiniatureAddOrario", RadioButton4.Checked); - Module1.SetupIni.AggiornaParametro("FotoAltezza", TextBox27.Text); - Module1.SetupIni.AggiornaParametro("FotoLarghezza", TextBox28.Text); - // SetupIni.AggiornaParametro("FotoCodice", TextBox13.Text) - // SetupIni.AggiornaParametro("FotoDimOriginali", CheckBox2.Checked) - - Module1.SetupIni.AggiornaParametro("FontDimensione", TextBox11.Text); - Module1.SetupIni.AggiornaParametro("FontDimensioneMiniatura", TextBox25.Text); - Module1.SetupIni.AggiornaParametro("FontBold", CheckBox3.Checked); - Module1.SetupIni.AggiornaParametro("FontNome", ComboBox3.Text); - Module1.SetupIni.AggiornaParametro("TestoTesto", TextBox4.Text); - Module1.SetupIni.AggiornaParametro("TestoTrasparente", TextBox9.Text); - Module1.SetupIni.AggiornaParametro("TestoMargine", TextBox12.Text); - Module1.SetupIni.AggiornaParametro("TestoPosizione", ComboBox1.Text); - Module1.SetupIni.AggiornaParametro("TestoAllineamento", ComboBox2.Text); - Module1.SetupIni.AggiornaParametro("MarchioFile", TextBox10.Text); - Module1.SetupIni.AggiornaParametro("MarchioAltezza", TextBox14.Text); - Module1.SetupIni.AggiornaParametro("MarchioLarghezza", TextBox15.Text); - Module1.SetupIni.AggiornaParametro("MarchioMargine", TextBox16.Text); - Module1.SetupIni.AggiornaParametro("MarchioAllOrizzontale", ComboBox4.Text); - Module1.SetupIni.AggiornaParametro("MarchioAllVerticale", ComboBox5.Text); - Module1.SetupIni.AggiornaParametro("MarchioTrasparenza", TextBox19.Text); - Module1.SetupIni.AggiornaParametro("MarchioAggiungi", CheckBox5.Checked); - Module1.SetupIni.AggiornaParametro("TempoGara", CheckBox7.Checked); - Module1.SetupIni.AggiornaParametro("Orario", CheckBox8.Checked); - Module1.SetupIni.AggiornaParametro("EtichettaOrario", TextBox18.Text); - Module1.SetupIni.AggiornaParametro("GeneraleForzaJpg", chkForzaJpg.Checked); - Module1.SetupIni.AggiornaParametro("GeneraleRotazioneAutomatica", chkRotazioneAutomatica.Checked); - Module1.SetupIni.AggiornaParametro("GrandezzaVerticale", TextBox30.Text); - Module1.SetupIni.AggiornaParametro("MargineVerticale", TextBox31.Text); - Module1.SetupIni.AggiornaParametro("DimensioniOriginali", CheckBox15.Checked); - Module1.SetupIni.AggiornaParametro("TestoVerticale", TextBox29.Text); - Module1.SetupIni.AggiornaParametro("NomeMiniatura", RadioButton6.Checked); - Module1.SetupIni.AggiornaParametro("DataFoto", CheckBox16.Checked); - Module1.SetupIni.AggiornaParametro("NumeroFoto", CheckBox17.Checked); - Module1.SetupIni.AggiornaParametro("ColoreTestoRGB", TextBox34.Text); - Module1.SetupIni.AggiornaParametro("TempoSmall", RadioButton5.Checked); - Module1.SetupIni.AggiornaParametro("NumTempoSmall", RadioButton7.Checked); - Module1.SetupIni.AggiornaParametro("CompressioneJpeg", TextBox32.Text); - Module1.SetupIni.AggiornaParametro("CompressioneJpegMiniatura", TextBox33.Text); - // 2021 - Module1.SetupIni.AggiornaParametro("ChunkSize", TextBox8.Text); - Module1.SetupIni.AggiornaParametro("ThreadsCount", TextBox7.Text); - Module1.SetupIni.SalvaParametriSetup(); - Text = "Image Catalog - " + LeggiSoloNomeFile(IlNome); - } - } - - private void Button6_Click(object sender, EventArgs e) - { - var openFileDialog = new OpenFileDialog(); - - // openFileDialog.InitialDirectory = TextBox1.Text - openFileDialog.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*"; - openFileDialog.FilterIndex = 0; - openFileDialog.RestoreDirectory = true; - if (DialogResult.OK == openFileDialog.ShowDialog()) - { - string IlNome = openFileDialog.FileName; - Module1.SetupIni.NomeFileSetup = IlNome; - Module1.SetupIni.CaricaParametriSetup(); - Model.SourcePath = Module1.SetupIni.LeggiParametroString("DirSorgente"); - Model.DestinationPath = Module1.SetupIni.LeggiParametroString("DirDestinazione"); - chkAggiornaSottodirectory.Checked = Module1.SetupIni.LeggiParametroBoolean("DirSottoDirectory"); - chkCreaSottocartelle.Checked = Module1.SetupIni.LeggiParametroBoolean("DirDividiDestinazione"); - txtFilePerCartella.Text = Module1.SetupIni.LeggiParametroString("DirDividiNumFile"); - txtSuffissoCartelle.Text = Module1.SetupIni.LeggiParametroString("DirDividiSuffisso"); - txtCifreContatore.Text = Module1.SetupIni.LeggiParametroString("DirDividiNumCifre"); - string TestoTemp = Module1.SetupIni.LeggiParametroString("DirDividiTipoNumerazione"); - if (TestoTemp.ToUpper() == "PROGRESSIVA") - { - rdbNumProgressiva.Checked = true; - } - else - { - rdbNumFiles.Checked = true; - } - - CheckBox1.Checked = Module1.SetupIni.LeggiParametroBoolean("MiniatureCrea"); - TextBox3.Text = Module1.SetupIni.LeggiParametroString("MiniatureSuffisso"); - TextBox5.Text = Module1.SetupIni.LeggiParametroString("MiniatureAltezza"); - TextBox6.Text = Module1.SetupIni.LeggiParametroString("MiniatureLarghezza"); - RadioButton3.Checked = Module1.SetupIni.LeggiParametroBoolean("MiniatureAddScritta"); - RadioButton4.Checked = Module1.SetupIni.LeggiParametroBoolean("MiniatureAddOrario"); - TextBox27.Text = Module1.SetupIni.LeggiParametroString("FotoAltezza"); - TextBox28.Text = Module1.SetupIni.LeggiParametroString("FotoLarghezza"); - // TextBox13.Text = SetupIni.LeggiParametroString("FotoCodice") - // CheckBox2.Checked = SetupIni.LeggiParametroBoolean("FotoDimOriginali") - - TextBox11.Text = Module1.SetupIni.LeggiParametroString("FontDimensione"); - TextBox25.Text = Module1.SetupIni.LeggiParametroString("FontDimensioneMiniatura"); - CheckBox3.Checked = Module1.SetupIni.LeggiParametroBoolean("FontBold"); - ComboBox3.Text = Module1.SetupIni.LeggiParametroString("FontNome"); - if (string.IsNullOrEmpty(TextBox25.Text)) - { - TextBox25.Text = "0"; - } - - TextBox4.Text = Module1.SetupIni.LeggiParametroString("TestoTesto"); - TextBox9.Text = Module1.SetupIni.LeggiParametroString("TestoTrasparente"); - TextBox12.Text = Module1.SetupIni.LeggiParametroString("TestoMargine"); - ComboBox1.Text = Module1.SetupIni.LeggiParametroString("TestoPosizione"); - ComboBox2.Text = Module1.SetupIni.LeggiParametroString("TestoAllineamento"); - TextBox10.Text = Module1.SetupIni.LeggiParametroString("MarchioFile"); - TextBox14.Text = Module1.SetupIni.LeggiParametroString("MarchioAltezza"); - TextBox15.Text = Module1.SetupIni.LeggiParametroString("MarchioLarghezza"); - TextBox16.Text = Module1.SetupIni.LeggiParametroString("MarchioMargine"); - ComboBox4.Text = Module1.SetupIni.LeggiParametroString("MarchioAllOrizzontale"); - ComboBox5.Text = Module1.SetupIni.LeggiParametroString("MarchioAllVerticale"); - TextBox19.Text = Module1.SetupIni.LeggiParametroString("MarchioTrasparenza"); - CheckBox5.Checked = Module1.SetupIni.LeggiParametroBoolean("MarchioAggiungi"); - CheckBox7.Checked = Module1.SetupIni.LeggiParametroBoolean("TempoGara"); - CheckBox8.Checked = Module1.SetupIni.LeggiParametroBoolean("Orario"); - TextBox18.Text = Module1.SetupIni.LeggiParametroString("EtichettaOrario"); - chkForzaJpg.Checked = Module1.SetupIni.LeggiParametroBoolean("GeneraleForzaJpg"); - chkRotazioneAutomatica.Checked = Module1.SetupIni.LeggiParametroBoolean("GeneraleRotazioneAutomatica"); - TextBox30.Text = Module1.SetupIni.LeggiParametroString("GrandezzaVerticale"); - TextBox31.Text = Module1.SetupIni.LeggiParametroString("MargineVerticale"); - CheckBox15.Checked = Module1.SetupIni.LeggiParametroBoolean("DimensioniOriginali"); - TextBox29.Text = Module1.SetupIni.LeggiParametroString("TestoVerticale"); - RadioButton6.Checked = Module1.SetupIni.LeggiParametroBoolean("NomeMiniatura"); - CheckBox16.Checked = Module1.SetupIni.LeggiParametroBoolean("DataFoto"); - CheckBox17.Checked = Module1.SetupIni.LeggiParametroBoolean("NumeroFoto"); - RadioButton5.Checked = Module1.SetupIni.LeggiParametroBoolean("TempoSmall"); - RadioButton7.Checked = Module1.SetupIni.LeggiParametroBoolean("NumTempoSmall"); - TextBox32.Text = Module1.SetupIni.LeggiParametroString("CompressioneJpeg"); - TextBox33.Text = Module1.SetupIni.LeggiParametroString("CompressioneJpegMiniatura"); - TextBox34.Text = Module1.SetupIni.LeggiParametroString("ColoreTestoRGB"); - if (File.Exists(TextBox10.Text)) - { - PictureBox1.Image = Image.FromFile(TextBox10.Text); - if (PictureBox1.Image.Height >= PictureBox1.Image.Width) - { - PictureBox1.Height = 160; - PictureBox1.Width = - Conversions.ToInteger(160 * PictureBox1.Image.Width / (double)PictureBox1.Image.Height); - } - else - { - PictureBox1.Width = 224; - PictureBox1.Height = - Conversions.ToInteger(224 * PictureBox1.Image.Height / (double)PictureBox1.Image.Width); - } - } - - Text = "Image Catalog - " + LeggiSoloNomeFile(IlNome); - - // 2021 - TextBox8.Text = Module1.SetupIni.LeggiParametroString("ChunkSize"); - TextBox7.Text = Module1.SetupIni.LeggiParametroString("ThreadsCount"); - } - } - - private void setPicSettings(string SourcePath, string DestPath) - { - var SourceDir = new DirectoryInfo(SourcePath); - var DestDirStart = new DirectoryInfo(DestPath); - DirectoryInfo DestDir = null; - PicSettings.DirectorySorgente = SourcePath; - PicSettings.DirectoryDestinazione = Model.DestinationPath; - - // PicSettings.DestDir = DestDir - // PicSettings.SourceDir = SourceDir - // PicSettings.DestDirStart = DestDirStart - - PicSettings.DimStandard = Conversions.ToInteger(TextBox11.Text); - PicSettings.DimStandardMiniatura = Conversions.ToInteger(TextBox25.Text); - PicSettings.UsaOrarioMiniatura = CheckBox12.Checked; - PicSettings.UsaOrarioTestoApplicare = CheckBox8.Checked; - PicSettings.UsaTempoGaraTestoApplicare = CheckBox7.Checked; - PicSettings.UsaRotazioneAutomatica = chkRotazioneAutomatica.Checked; - PicSettings.UsaForzaJpg = chkForzaJpg.Checked; - if (CheckBox17.Checked) - { - PicSettings.TestoNome = true; + Module1.SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Progressiva"); } else { - PicSettings.TestoNome = false; + Module1.SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Files"); } - if (CheckBox16.Checked) + Module1.SetupIni.AggiornaParametro("MiniatureCrea", CheckBox1.Checked); + Module1.SetupIni.AggiornaParametro("MiniatureSuffisso", TextBox3.Text); + Module1.SetupIni.AggiornaParametro("MiniatureAltezza", TextBox5.Text); + Module1.SetupIni.AggiornaParametro("MiniatureLarghezza", TextBox6.Text); + Module1.SetupIni.AggiornaParametro("MiniatureAddScritta", RadioButton3.Checked); + Module1.SetupIni.AggiornaParametro("MiniatureAddOrario", RadioButton4.Checked); + Module1.SetupIni.AggiornaParametro("FotoAltezza", TextBox27.Text); + Module1.SetupIni.AggiornaParametro("FotoLarghezza", TextBox28.Text); + // SetupIni.AggiornaParametro("FotoCodice", TextBox13.Text) + // SetupIni.AggiornaParametro("FotoDimOriginali", CheckBox2.Checked) + + Module1.SetupIni.AggiornaParametro("FontDimensione", TextBox11.Text); + Module1.SetupIni.AggiornaParametro("FontDimensioneMiniatura", TextBox25.Text); + Module1.SetupIni.AggiornaParametro("FontBold", CheckBox3.Checked); + Module1.SetupIni.AggiornaParametro("FontNome", ComboBox3.Text); + Module1.SetupIni.AggiornaParametro("TestoTesto", TextBox4.Text); + Module1.SetupIni.AggiornaParametro("TestoTrasparente", TextBox9.Text); + Module1.SetupIni.AggiornaParametro("TestoMargine", TextBox12.Text); + Module1.SetupIni.AggiornaParametro("TestoPosizione", ComboBox1.Text); + Module1.SetupIni.AggiornaParametro("TestoAllineamento", ComboBox2.Text); + Module1.SetupIni.AggiornaParametro("MarchioFile", TextBox10.Text); + Module1.SetupIni.AggiornaParametro("MarchioAltezza", TextBox14.Text); + Module1.SetupIni.AggiornaParametro("MarchioLarghezza", TextBox15.Text); + Module1.SetupIni.AggiornaParametro("MarchioMargine", TextBox16.Text); + Module1.SetupIni.AggiornaParametro("MarchioAllOrizzontale", ComboBox4.Text); + Module1.SetupIni.AggiornaParametro("MarchioAllVerticale", ComboBox5.Text); + Module1.SetupIni.AggiornaParametro("MarchioTrasparenza", TextBox19.Text); + Module1.SetupIni.AggiornaParametro("MarchioAggiungi", CheckBox5.Checked); + Module1.SetupIni.AggiornaParametro("TempoGara", CheckBox7.Checked); + Module1.SetupIni.AggiornaParametro("Orario", CheckBox8.Checked); + Module1.SetupIni.AggiornaParametro("EtichettaOrario", TextBox18.Text); + Module1.SetupIni.AggiornaParametro("GeneraleForzaJpg", chkForzaJpg.Checked); + Module1.SetupIni.AggiornaParametro("GeneraleRotazioneAutomatica", chkRotazioneAutomatica.Checked); + Module1.SetupIni.AggiornaParametro("GrandezzaVerticale", TextBox30.Text); + Module1.SetupIni.AggiornaParametro("MargineVerticale", TextBox31.Text); + Module1.SetupIni.AggiornaParametro("DimensioniOriginali", CheckBox15.Checked); + Module1.SetupIni.AggiornaParametro("TestoVerticale", TextBox29.Text); + Module1.SetupIni.AggiornaParametro("NomeMiniatura", RadioButton6.Checked); + Module1.SetupIni.AggiornaParametro("DataFoto", CheckBox16.Checked); + Module1.SetupIni.AggiornaParametro("NumeroFoto", CheckBox17.Checked); + Module1.SetupIni.AggiornaParametro("ColoreTestoRGB", TextBox34.Text); + Module1.SetupIni.AggiornaParametro("TempoSmall", RadioButton5.Checked); + Module1.SetupIni.AggiornaParametro("NumTempoSmall", RadioButton7.Checked); + Module1.SetupIni.AggiornaParametro("CompressioneJpeg", TextBox32.Text); + Module1.SetupIni.AggiornaParametro("CompressioneJpegMiniatura", TextBox33.Text); + // 2021 + Module1.SetupIni.AggiornaParametro("ChunkSize", TextBox8.Text); + Module1.SetupIni.AggiornaParametro("ThreadsCount", TextBox7.Text); + Module1.SetupIni.SalvaParametriSetup(); + Text = "Image Catalog - " + LeggiSoloNomeFile(IlNome); + } + } + + private void Button6_Click(object sender, EventArgs e) + { + var openFileDialog = new OpenFileDialog(); + + // openFileDialog.InitialDirectory = TextBox1.Text + openFileDialog.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*"; + openFileDialog.FilterIndex = 0; + openFileDialog.RestoreDirectory = true; + if (DialogResult.OK == openFileDialog.ShowDialog()) + { + string IlNome = openFileDialog.FileName; + Module1.SetupIni.NomeFileSetup = IlNome; + Module1.SetupIni.CaricaParametriSetup(); + Model.SourcePath = Module1.SetupIni.LeggiParametroString("DirSorgente"); + Model.DestinationPath = Module1.SetupIni.LeggiParametroString("DirDestinazione"); + chkAggiornaSottodirectory.Checked = Module1.SetupIni.LeggiParametroBoolean("DirSottoDirectory"); + chkCreaSottocartelle.Checked = Module1.SetupIni.LeggiParametroBoolean("DirDividiDestinazione"); + txtFilePerCartella.Text = Module1.SetupIni.LeggiParametroString("DirDividiNumFile"); + txtSuffissoCartelle.Text = Module1.SetupIni.LeggiParametroString("DirDividiSuffisso"); + txtCifreContatore.Text = Module1.SetupIni.LeggiParametroString("DirDividiNumCifre"); + string TestoTemp = Module1.SetupIni.LeggiParametroString("DirDividiTipoNumerazione"); + if (TestoTemp.ToUpper() == "PROGRESSIVA") { - PicSettings.NomeData = true; + rdbNumProgressiva.Checked = true; } else { - PicSettings.NomeData = false; + rdbNumFiles.Checked = true; } - PicSettings.TestoFirmaStart = TextBox4.Text; - PicSettings.TestoFirmaStartV = TextBox29.Text; - PicSettings.DataPartenza = DateTimePicker1.Value; - PicSettings.TestoOrario = TextBox18.Text; - PicSettings.AltezzaSmall = Conversions.ToInteger(TextBox6.Text); - PicSettings.LarghezzaSmall = Conversions.ToInteger(TextBox5.Text); - PicSettings.CreaMiniature = CheckBox1.Checked; - PicSettings.AggiungiScritteMiniature = RadioButton3.Checked; - PicSettings.AggTempoGaraMin = RadioButton5.Checked; - PicSettings.AggNumTempMin = RadioButton7.Checked; - PicSettings.DimVert = Conversions.ToInteger(TextBox30.Text); - PicSettings.MargVert = Conversions.ToInteger(TextBox31.Text); + CheckBox1.Checked = Module1.SetupIni.LeggiParametroBoolean("MiniatureCrea"); + TextBox3.Text = Module1.SetupIni.LeggiParametroString("MiniatureSuffisso"); + TextBox5.Text = Module1.SetupIni.LeggiParametroString("MiniatureAltezza"); + TextBox6.Text = Module1.SetupIni.LeggiParametroString("MiniatureLarghezza"); + RadioButton3.Checked = Module1.SetupIni.LeggiParametroBoolean("MiniatureAddScritta"); + RadioButton4.Checked = Module1.SetupIni.LeggiParametroBoolean("MiniatureAddOrario"); + TextBox27.Text = Module1.SetupIni.LeggiParametroString("FotoAltezza"); + TextBox28.Text = Module1.SetupIni.LeggiParametroString("FotoLarghezza"); + // TextBox13.Text = SetupIni.LeggiParametroString("FotoCodice") + // CheckBox2.Checked = SetupIni.LeggiParametroBoolean("FotoDimOriginali") - // PicSettings.NomeFileChild = childFile.Name - PicSettings.Suffisso = TextBox3.Text; - // PicSettings.Codice = TextBox13.Text - - PicSettings.Trasparenza = Conversions.ToInteger(TextBox9.Text); - PicSettings.IlFont = ComboBox3.SelectedItem.ToString(); - PicSettings.Grassetto = CheckBox3.Checked; - PicSettings.Posizione = ComboBox1.SelectedItem.ToString(); - PicSettings.Allineamento = ComboBox2.SelectedItem.ToString(); - PicSettings.Margine = Conversions.ToInteger(TextBox12.Text); - PicSettings.LogoAltezza = Conversions.ToInteger(TextBox14.Text); - PicSettings.LogoLarghezza = Conversions.ToInteger(TextBox15.Text); - PicSettings.fontColoreRGB = ColorTranslator.FromHtml(TextBox34.Text); - PicSettings.LogoAggiungi = CheckBox5.Checked; - PicSettings.LogoNomeFile = TextBox10.Text; - PicSettings.LogoTrasparenza = TextBox19.Text; - PicSettings.LogoMargine = TextBox16.Text; - PicSettings.LogoPosizioneH = ComboBox4.Text; - PicSettings.LogoPosizioneV = ComboBox5.Text; - PicSettings.FotoGrandeDimOrigina = CheckBox15.Checked; - PicSettings.AltezzaBig = Conversions.ToInteger(TextBox27.Text); - PicSettings.LarghezzaBig = Conversions.ToInteger(TextBox28.Text); - PicSettings.DimMin = Conversions.ToInteger(TextBox25.Text); - PicSettings.TestoMin = RadioButton6.Checked; - PicSettings.jpegQuality = Conversions.ToLong(TextBox32.Text); - PicSettings.jpegQualityMin = Conversions.ToLong(TextBox33.Text); - PicSettings.mainForm = this; - } - - private List> makeFilesList(string SourcePath) - { - var SourceDir = new DirectoryInfo(SourcePath); - DirectoryInfo DestDir = null; - int NumFileXDir = Conversions.ToInteger(txtFilePerCartella.Text); - string SuffixDir = txtSuffissoCartelle.Text; - int NumCifreDir = Conversions.ToInteger(txtCifreContatore.Text); - bool DividiFile = false; - StopAttivo = false; - int FileConta = 0; - int ContaFileXDir = 0; - int ContaDirXDir = 0; - string TestoTemp = ""; - int ContaTemp = 0; - var picList = new List(); - var dirList = new List>(); - - - // controlla directory principale - // Dim childFile As FileInfo - // For Each childFile In SourceDir.GetFiles("*.jpg") - // picList.Add(childFile) - // Next - - // picList = getFiles(SourceDir, SearchOption.AllDirectories) - - // dirList.Add(picList) - - // controlla sottodirectory - if (chkAggiornaSottodirectory.Checked == true) + TextBox11.Text = Module1.SetupIni.LeggiParametroString("FontDimensione"); + TextBox25.Text = Module1.SetupIni.LeggiParametroString("FontDimensioneMiniatura"); + CheckBox3.Checked = Module1.SetupIni.LeggiParametroBoolean("FontBold"); + ComboBox3.Text = Module1.SetupIni.LeggiParametroString("FontNome"); + if (string.IsNullOrEmpty(TextBox25.Text)) { - foreach (var subDir in SourceDir.GetDirectories()) - { - var filesList = new List(); - filesList = getFiles(subDir); - dirList.Add(filesList); - } + TextBox25.Text = "0"; } - return dirList; - } - - private List getFiles(DirectoryInfo sourceDir) - { - var picList = new List(); - foreach (var childFile in sourceDir.GetFiles("*.jpg")) - picList.Add(childFile); - return picList; - } - - private Dictionary getDirsDict(string SourcePath, string DestPath) - { - var SourceDir = new DirectoryInfo(SourcePath); - var DestDirStart = new DirectoryInfo(DestPath); - DirectoryInfo DestDir = null; - int NumFileXDir = Conversions.ToInteger(txtFilePerCartella.Text); - string SuffixDir = txtSuffissoCartelle.Text; - int NumCifreDir = Conversions.ToInteger(txtCifreContatore.Text); - bool DividiFile = false; - StopAttivo = false; - int FileConta = 0; - int ContaFileXDir = 0; - int ContaDirXDir = 0; - // Dim TestoTemp As String = "" - // Dim ContaTemp As Integer = 0 - var dirSourceDest = new Dictionary(); - if (SourceDir.Exists) + TextBox4.Text = Module1.SetupIni.LeggiParametroString("TestoTesto"); + TextBox9.Text = Module1.SetupIni.LeggiParametroString("TestoTrasparente"); + TextBox12.Text = Module1.SetupIni.LeggiParametroString("TestoMargine"); + ComboBox1.Text = Module1.SetupIni.LeggiParametroString("TestoPosizione"); + ComboBox2.Text = Module1.SetupIni.LeggiParametroString("TestoAllineamento"); + TextBox10.Text = Module1.SetupIni.LeggiParametroString("MarchioFile"); + TextBox14.Text = Module1.SetupIni.LeggiParametroString("MarchioAltezza"); + TextBox15.Text = Module1.SetupIni.LeggiParametroString("MarchioLarghezza"); + TextBox16.Text = Module1.SetupIni.LeggiParametroString("MarchioMargine"); + ComboBox4.Text = Module1.SetupIni.LeggiParametroString("MarchioAllOrizzontale"); + ComboBox5.Text = Module1.SetupIni.LeggiParametroString("MarchioAllVerticale"); + TextBox19.Text = Module1.SetupIni.LeggiParametroString("MarchioTrasparenza"); + CheckBox5.Checked = Module1.SetupIni.LeggiParametroBoolean("MarchioAggiungi"); + CheckBox7.Checked = Module1.SetupIni.LeggiParametroBoolean("TempoGara"); + CheckBox8.Checked = Module1.SetupIni.LeggiParametroBoolean("Orario"); + TextBox18.Text = Module1.SetupIni.LeggiParametroString("EtichettaOrario"); + chkForzaJpg.Checked = Module1.SetupIni.LeggiParametroBoolean("GeneraleForzaJpg"); + chkRotazioneAutomatica.Checked = Module1.SetupIni.LeggiParametroBoolean("GeneraleRotazioneAutomatica"); + TextBox30.Text = Module1.SetupIni.LeggiParametroString("GrandezzaVerticale"); + TextBox31.Text = Module1.SetupIni.LeggiParametroString("MargineVerticale"); + CheckBox15.Checked = Module1.SetupIni.LeggiParametroBoolean("DimensioniOriginali"); + TextBox29.Text = Module1.SetupIni.LeggiParametroString("TestoVerticale"); + RadioButton6.Checked = Module1.SetupIni.LeggiParametroBoolean("NomeMiniatura"); + CheckBox16.Checked = Module1.SetupIni.LeggiParametroBoolean("DataFoto"); + CheckBox17.Checked = Module1.SetupIni.LeggiParametroBoolean("NumeroFoto"); + RadioButton5.Checked = Module1.SetupIni.LeggiParametroBoolean("TempoSmall"); + RadioButton7.Checked = Module1.SetupIni.LeggiParametroBoolean("NumTempoSmall"); + TextBox32.Text = Module1.SetupIni.LeggiParametroString("CompressioneJpeg"); + TextBox33.Text = Module1.SetupIni.LeggiParametroString("CompressioneJpegMiniatura"); + TextBox34.Text = Module1.SetupIni.LeggiParametroString("ColoreTestoRGB"); + if (File.Exists(TextBox10.Text)) { - if (chkAggiornaSottodirectory.Checked) + PictureBox1.Image = Image.FromFile(TextBox10.Text); + if (PictureBox1.Image.Height >= PictureBox1.Image.Width) { - FileConta = SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories).GetLength(0); + PictureBox1.Height = 160; + PictureBox1.Width = + (int)(160 * PictureBox1.Image.Width / (double)PictureBox1.Image.Height); } else { - FileConta = SourceDir.GetFiles("*.jpg", SearchOption.TopDirectoryOnly).GetLength(0); + PictureBox1.Width = 224; + PictureBox1.Height = + (int)(224 * PictureBox1.Image.Height / (double)PictureBox1.Image.Width); + } + } + + Text = "Image Catalog - " + LeggiSoloNomeFile(IlNome); + + // 2021 + TextBox8.Text = Module1.SetupIni.LeggiParametroString("ChunkSize"); + TextBox7.Text = Module1.SetupIni.LeggiParametroString("ThreadsCount"); + } + } + + private void setPicSettings(string SourcePath, string DestPath) + { + var SourceDir = new DirectoryInfo(SourcePath); + var DestDirStart = new DirectoryInfo(DestPath); + DirectoryInfo DestDir = null; + PicSettings.DirectorySorgente = SourcePath; + PicSettings.DirectoryDestinazione = Model.DestinationPath; + + // PicSettings.DestDir = DestDir + // PicSettings.SourceDir = SourceDir + // PicSettings.DestDirStart = DestDirStart + + PicSettings.DimStandard = int.Parse(TextBox11.Text); + PicSettings.DimStandardMiniatura = int.Parse(TextBox25.Text); + PicSettings.UsaOrarioMiniatura = CheckBox12.Checked; + PicSettings.UsaOrarioTestoApplicare = CheckBox8.Checked; + PicSettings.UsaTempoGaraTestoApplicare = CheckBox7.Checked; + PicSettings.UsaRotazioneAutomatica = chkRotazioneAutomatica.Checked; + PicSettings.UsaForzaJpg = chkForzaJpg.Checked; + if (CheckBox17.Checked) + { + PicSettings.TestoNome = true; + } + else + { + PicSettings.TestoNome = false; + } + + if (CheckBox16.Checked) + { + PicSettings.NomeData = true; + } + else + { + PicSettings.NomeData = false; + } + + PicSettings.TestoFirmaStart = TextBox4.Text; + PicSettings.TestoFirmaStartV = TextBox29.Text; + PicSettings.DataPartenza = DateTimePicker1.Value; + PicSettings.TestoOrario = TextBox18.Text; + PicSettings.AltezzaSmall = int.Parse(TextBox6.Text); + PicSettings.LarghezzaSmall = int.Parse(TextBox5.Text); + PicSettings.CreaMiniature = CheckBox1.Checked; + PicSettings.AggiungiScritteMiniature = RadioButton3.Checked; + PicSettings.AggTempoGaraMin = RadioButton5.Checked; + PicSettings.AggNumTempMin = RadioButton7.Checked; + PicSettings.DimVert = int.Parse(TextBox30.Text); + PicSettings.MargVert = int.Parse(TextBox31.Text); + + // PicSettings.NomeFileChild = childFile.Name + PicSettings.Suffisso = TextBox3.Text; + // PicSettings.Codice = TextBox13.Text + + PicSettings.Trasparenza = int.Parse(TextBox9.Text); + PicSettings.IlFont = ComboBox3.SelectedItem.ToString(); + PicSettings.Grassetto = CheckBox3.Checked; + PicSettings.Posizione = ComboBox1.SelectedItem.ToString(); + PicSettings.Allineamento = ComboBox2.SelectedItem.ToString(); + PicSettings.Margine = int.Parse(TextBox12.Text); + PicSettings.LogoAltezza = int.Parse(TextBox14.Text); + PicSettings.LogoLarghezza = int.Parse(TextBox15.Text); + PicSettings.fontColoreRGB = ColorTranslator.FromHtml(TextBox34.Text); + PicSettings.LogoAggiungi = CheckBox5.Checked; + PicSettings.LogoNomeFile = TextBox10.Text; + PicSettings.LogoTrasparenza = TextBox19.Text; + PicSettings.LogoMargine = TextBox16.Text; + PicSettings.LogoPosizioneH = ComboBox4.Text; + PicSettings.LogoPosizioneV = ComboBox5.Text; + PicSettings.FotoGrandeDimOrigina = CheckBox15.Checked; + PicSettings.AltezzaBig = int.Parse(TextBox27.Text); + PicSettings.LarghezzaBig = int.Parse(TextBox28.Text); + PicSettings.DimMin = int.Parse(TextBox25.Text); + PicSettings.TestoMin = RadioButton6.Checked; + PicSettings.jpegQuality = int.Parse(TextBox32.Text); + PicSettings.jpegQualityMin = int.Parse(TextBox33.Text); + PicSettings.mainForm = this; + } + + private List> makeFilesList(string SourcePath) + { + var SourceDir = new DirectoryInfo(SourcePath); + DirectoryInfo DestDir = null; + int NumFileXDir = int.Parse(txtFilePerCartella.Text); + string SuffixDir = txtSuffissoCartelle.Text; + int NumCifreDir = int.Parse(txtCifreContatore.Text); + bool DividiFile = false; + StopAttivo = false; + int FileConta = 0; + int ContaFileXDir = 0; + int ContaDirXDir = 0; + string TestoTemp = ""; + int ContaTemp = 0; + var picList = new List(); + var dirList = new List>(); + + + // controlla directory principale + // Dim childFile As FileInfo + // For Each childFile In SourceDir.GetFiles("*.jpg") + // picList.Add(childFile) + // Next + + // picList = getFiles(SourceDir, SearchOption.AllDirectories) + + // dirList.Add(picList) + + // controlla sottodirectory + if (chkAggiornaSottodirectory.Checked == true) + { + foreach (var subDir in SourceDir.GetDirectories()) + { + var filesList = new List(); + filesList = getFiles(subDir); + dirList.Add(filesList); + } + } + + return dirList; + } + + private List getFiles(DirectoryInfo sourceDir) + { + var picList = new List(); + foreach (var childFile in sourceDir.GetFiles("*.jpg")) + picList.Add(childFile); + return picList; + } + + private Dictionary getDirsDict(string SourcePath, string DestPath) + { + var SourceDir = new DirectoryInfo(SourcePath); + var DestDirStart = new DirectoryInfo(DestPath); + DirectoryInfo DestDir = null; + int NumFileXDir = int.Parse(txtFilePerCartella.Text); + string SuffixDir = txtSuffissoCartelle.Text; + int NumCifreDir = int.Parse(txtCifreContatore.Text); + bool DividiFile = false; + StopAttivo = false; + int FileConta = 0; + int ContaFileXDir = 0; + int ContaDirXDir = 0; + // Dim TestoTemp As String = "" + // Dim ContaTemp As Integer = 0 + var dirSourceDest = new Dictionary(); + if (SourceDir.Exists) + { + if (chkAggiornaSottodirectory.Checked) + { + FileConta = SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories).GetLength(0); + } + else + { + FileConta = SourceDir.GetFiles("*.jpg", SearchOption.TopDirectoryOnly).GetLength(0); + } + + var a = (int.Parse(lblFotoTotaliNum.Text) + FileConta); + setLabel17Text(a.ToString()); + setProgressBarMaximum(a); + if (chkAggiornaSottodirectory.Checked) + { + foreach (DirectoryInfo directory in SourceDir.GetDirectories()) + { + foreach (FileInfo file in directory.GetFiles(".jpg")) + { + } + } + } + + foreach (FileInfo file in SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories)) + { + } + + if (NumFileXDir > 0 & chkCreaSottocartelle.Checked == true & FileConta > NumFileXDir) + { + DividiFile = true; + } + else + { + DestDir = DestDirStart; + if (!DestDir.Exists) + { + DestDir.Create(); } - string a = (Conversions.ToInteger(lblFotoTotaliNum.Text) + FileConta).ToString(); - setLabel17Text(a); - setProgressBarMaximum(Conversions.ToInteger(a)); - if (chkAggiornaSottodirectory.Checked) + DividiFile = false; + } + + var filesList = new List(); + if (chkAggiornaSottodirectory.Checked) + { + filesList.AddRange(SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories)); + filesList.AddRange(SourceDir.GetFiles("*.png", SearchOption.AllDirectories)); + } + else + { + filesList.AddRange(SourceDir.GetFiles("*.jpg", SearchOption.TopDirectoryOnly)); + filesList.AddRange(SourceDir.GetFiles("*.png", SearchOption.TopDirectoryOnly)); + } + + foreach (FileInfo file in filesList) + { + ContaFileXDir += 1; + if (DividiFile == true) { - foreach (DirectoryInfo directory in SourceDir.GetDirectories()) + if (ContaFileXDir == ContaDirXDir * NumFileXDir + 1) { - foreach (FileInfo file in directory.GetFiles(".jpg")) + ContaDirXDir += 1; + string TestoTemp; + if (rdbNumProgressiva.Checked == true) { + TestoTemp = ContaDirXDir.ToString(); + } + else + { + TestoTemp = (ContaDirXDir * NumFileXDir).ToString(); + } + + for (int ContaTemp = 1, loopTo = NumCifreDir - TestoTemp.Length; + ContaTemp <= loopTo; + ContaTemp++) + TestoTemp = "0" + TestoTemp; + DestDir = new DirectoryInfo(Path.Combine(DestDirStart.FullName, SuffixDir, TestoTemp)); + // DestDir = New DirectoryInfo(DestDirStart.FullName & IIf(Not DestDirStart.FullName.EndsWith("\"), "\", String.Empty).ToString & SuffixDir & TestoTemp) + dirSourceDest.Add(file, DestDir); + if (!DestDir.Exists) + { + DestDir.Create(); } } } + } + } - foreach (FileInfo file in SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories)) - { - } + return dirSourceDest; + } - if (NumFileXDir > 0 & chkCreaSottocartelle.Checked == true & FileConta > NumFileXDir) + private void setLabel17Text(string text) + { + if (lblFotoTotaliNum.InvokeRequired) + { + lblFotoTotaliNum.Invoke(new Action(setLabel17Text), text); + } + else + { + lblFotoTotaliNum.Text = text; + } + } + + private void setLabel10Text(string text) + { + if (Label10.InvokeRequired) + { + Label10.Invoke(new Action(setLabel10Text), text); + } + else + { + Label10.Text = text; + } + } + + public void stepProgressBar() + { + if (ProgressBar1.InvokeRequired) + { + ProgressBar1.Invoke(new System.Windows.Forms.MethodInvoker(ProgressBar1.PerformStep)); + } + else + { + ProgressBar1.PerformStep(); + } + + setLabel18Text(ProgressBar1.Value.ToString()); + } + + private void setProgressBarMaximum(int value) + { + if (ProgressBar1.InvokeRequired) + { + ProgressBar1.Invoke(new Action(setProgressBarMaximum), (object)value); + } + else + { + ProgressBar1.Maximum = value; + } + } + + private void setProgressBarValue(int value) + { + if (ProgressBar1.InvokeRequired) + { + ProgressBar1.Invoke(new Action(setProgressBarValue), (object)value); + } + else + { + ProgressBar1.Value = value; + } + } + + private void setLabel18Text(string text) + { + if (Label18.InvokeRequired) + { + Label18.Invoke(new Action(setLabel18Text), text); + } + else + { + Label18.Text = text; + } + } + + private void setLabel43Text(string text) + { + if (Label43.InvokeRequired) + { + Label43.Invoke(new Action(setLabel43Text), text); + } + else + { + Label43.Text = text; + } + } + + private void creaImmaginiWithThreadMod(string SourcePath, string DestPath) + { + var SourceDir = new DirectoryInfo(SourcePath); + var DestDirStart = new DirectoryInfo(DestPath); + DirectoryInfo DestDir = null; + int NumFileXDir = int.Parse(txtFilePerCartella.Text); + string SuffixDir = txtSuffissoCartelle.Text; + int NumCifreDir = int.Parse(txtCifreContatore.Text); + bool DividiFile = false; + StopAttivo = false; + int FileConta = 0; + int ContaFileXDir = 0; + int ContaDirXDir = 0; + string TestoTemp = ""; + int ContaTemp = 0; + if (SourceDir.Exists) + { + FileConta = SourceDir.GetFiles("*.jpg").GetLength(0); + // Label17.Text = (CType(Label17.Text, Integer) + FileConta).ToString + var a = (int.Parse(lblFotoTotaliNum.Text) + FileConta); + setLabel17Text(a.ToString()); + setProgressBarMaximum(a); + if (NumFileXDir > 0 & chkCreaSottocartelle.Checked == true) + { + if (FileConta > NumFileXDir) { DividiFile = true; } @@ -856,922 +968,747 @@ namespace ImageCatalog DividiFile = false; } - - var filesList = new List(); - if (chkAggiornaSottodirectory.Checked) - { - filesList.AddRange(SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories)); - filesList.AddRange(SourceDir.GetFiles("*.png", SearchOption.AllDirectories)); - } - else - { - filesList.AddRange(SourceDir.GetFiles("*.jpg", SearchOption.TopDirectoryOnly)); - filesList.AddRange(SourceDir.GetFiles("*.png", SearchOption.TopDirectoryOnly)); - } - - foreach (FileInfo file in filesList) - { - ContaFileXDir += 1; - if (DividiFile == true) - { - if (ContaFileXDir == ContaDirXDir * NumFileXDir + 1) - { - ContaDirXDir += 1; - string TestoTemp; - if (rdbNumProgressiva.Checked == true) - { - TestoTemp = ContaDirXDir.ToString(); - } - else - { - TestoTemp = (ContaDirXDir * NumFileXDir).ToString(); - } - - for (int ContaTemp = 1, loopTo = NumCifreDir - TestoTemp.Length; - ContaTemp <= loopTo; - ContaTemp++) - TestoTemp = "0" + TestoTemp; - DestDir = new DirectoryInfo(Path.Combine(DestDirStart.FullName, SuffixDir, TestoTemp)); - // DestDir = New DirectoryInfo(DestDirStart.FullName & IIf(Not DestDirStart.FullName.EndsWith("\"), "\", String.Empty).ToString & SuffixDir & TestoTemp) - dirSourceDest.Add(file, DestDir); - if (!DestDir.Exists) - { - DestDir.Create(); - } - } - } - } - } - - return dirSourceDest; - } - - private void setLabel17Text(string text) - { - if (lblFotoTotaliNum.InvokeRequired) - { - lblFotoTotaliNum.Invoke(new Action(setLabel17Text), text); } else { - lblFotoTotaliNum.Text = text; - } - } - - private void setLabel10Text(string text) - { - if (Label10.InvokeRequired) - { - Label10.Invoke(new Action(setLabel10Text), text); - } - else - { - Label10.Text = text; - } - } - - public void stepProgressBar() - { - if (ProgressBar1.InvokeRequired) - { - ProgressBar1.Invoke(new System.Windows.Forms.MethodInvoker(ProgressBar1.PerformStep)); - } - else - { - ProgressBar1.PerformStep(); - } - - setLabel18Text(ProgressBar1.Value.ToString()); - } - - private void setProgressBarMaximum(int value) - { - if (ProgressBar1.InvokeRequired) - { - ProgressBar1.Invoke(new Action(setProgressBarMaximum), (object)value); - } - else - { - ProgressBar1.Maximum = value; - } - } - - private void setProgressBarValue(int value) - { - if (ProgressBar1.InvokeRequired) - { - ProgressBar1.Invoke(new Action(setProgressBarValue), (object)value); - } - else - { - ProgressBar1.Value = value; - } - } - - private void setLabel18Text(string text) - { - if (Label18.InvokeRequired) - { - Label18.Invoke(new Action(setLabel18Text), text); - } - else - { - Label18.Text = text; - } - } - - private void setLabel43Text(string text) - { - if (Label43.InvokeRequired) - { - Label43.Invoke(new Action(setLabel43Text), text); - } - else - { - Label43.Text = text; - } - } - - private void creaImmaginiWithThreadMod(string SourcePath, string DestPath) - { - var SourceDir = new DirectoryInfo(SourcePath); - var DestDirStart = new DirectoryInfo(DestPath); - DirectoryInfo DestDir = null; - int NumFileXDir = Conversions.ToInteger(txtFilePerCartella.Text); - string SuffixDir = txtSuffissoCartelle.Text; - int NumCifreDir = Conversions.ToInteger(txtCifreContatore.Text); - bool DividiFile = false; - StopAttivo = false; - int FileConta = 0; - int ContaFileXDir = 0; - int ContaDirXDir = 0; - string TestoTemp = ""; - int ContaTemp = 0; - if (SourceDir.Exists) - { - FileConta = SourceDir.GetFiles("*.jpg").GetLength(0); - // Label17.Text = (CType(Label17.Text, Integer) + FileConta).ToString - string a = (Conversions.ToInteger(lblFotoTotaliNum.Text) + FileConta).ToString(); - setLabel17Text(a); - setProgressBarMaximum(Conversions.ToInteger(a)); - if (NumFileXDir > 0 & chkCreaSottocartelle.Checked == true) - { - if (FileConta > NumFileXDir) - { - DividiFile = true; - } - else - { - DestDir = DestDirStart; - if (!DestDir.Exists) - { - DestDir.Create(); - } - - DividiFile = false; - } - } - else - { - DestDir = DestDirStart; - if (!DestDir.Exists) - { - DestDir.Create(); - } - - DividiFile = false; - } - - foreach (var childFile in SourceDir.GetFiles("*.jpg")) - { - if (StopAttivo == true) - { - break; - } - - setLabel10Text("File: " + childFile.Name); - string b = (Conversions.ToInteger(Label18.Text) + 1).ToString(); - // setLabel18Text(b) - // setProgressBarValue(CInt(b)) - // Label10.Text = "File: " & childFile.Name - // Label18.Text = (CType(Label18.Text, Integer) + 1).ToString - // Application.DoEvents() - - ContaFileXDir += 1; - if (DividiFile == true) - { - if (ContaFileXDir == ContaDirXDir * NumFileXDir + 1) - { - ContaDirXDir += 1; - if (rdbNumProgressiva.Checked == true) - { - TestoTemp = ContaDirXDir.ToString(); - } - else - { - TestoTemp = (ContaDirXDir * NumFileXDir).ToString(); - } - - var loopTo = NumCifreDir - TestoTemp.Length; - for (ContaTemp = 1; ContaTemp <= loopTo; ContaTemp++) - TestoTemp = "0" + TestoTemp; - if (DestDirStart.FullName.EndsWith(@"\")) - { - DestDir = new DirectoryInfo(DestDirStart.FullName + SuffixDir + TestoTemp); - } - else - { - DestDir = new DirectoryInfo(DestDirStart.FullName + @"\" + SuffixDir + TestoTemp); - } - - if (!DestDir.Exists) - { - DestDir.Create(); - } - } - } - - // Application.DoEvents() - - - var ClsCreaImmagine = new ImageCreatorSharp(childFile.Name, SourceDir, DestDir, DestDirStart); - // ClsCreaImmagine.NomeFileChild = childFile.Name - // ClsCreaImmagine.DestDir = DestDir - // ClsCreaImmagine.SourceDir = SourceDir - // ClsCreaImmagine.DestDirStart = DestDirStart - - ContaImmaginiThread += 1; - //MyPool.InsertWorkItem(childFile.Name, new XyThreadAdd((_) => ClsCreaImmagine.CreaImmagineThread()), new object[1] { childFile.Name }, true); - } - - // copy all the sub-directories by recursively calling this same routine - if (chkAggiornaSottodirectory.Checked == true) - { - foreach (var subDir in SourceDir.GetDirectories()) - creaImmaginiWithThreadMod(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name)); - } - } - } - - private int getNumerazione() - { - int numerazione; - if (rdbNumProgressiva.Checked) - { - numerazione = (int)FileHelper.numerazione.Progressiva; - } - else - { - numerazione = (int)FileHelper.numerazione.Files; - } - - return numerazione; - } - - private NumerazioneType GetNumerazioneEnum() - { - NumerazioneType numerazioneType; - if (rdbNumProgressiva.Checked) - { - numerazioneType = NumerazioneType.Progressiva; // FileHelper.numerazione.Progressiva - } - else - { - numerazioneType = NumerazioneType.Files; - } // FileHelper.numerazione.Files - - return numerazioneType; - } - - private void CreaimmaginiWithThreadDict(string SourcePath, string DestPath) - { - var dirSourceDest = new Dictionary(); - if (chkAggiornaSottodirectory.Checked & chkCreaSottocartelle.Checked) - { - var helper = new FileHelper(Conversions.ToInteger(txtFilePerCartella.Text), txtSuffissoCartelle.Text, - Conversions.ToInteger(txtCifreContatore.Text), getNumerazione()); - // getfilesrecursive - dirSourceDest = - helper.GetFilesRecursive(new DirectoryInfo(SourcePath), new DirectoryInfo(DestPath), "*.jpg"); - } - else if (chkAggiornaSottodirectory.Checked & !chkCreaSottocartelle.Checked) - { - // = getDirsDict(SourcePath, DestPath) - } - - foreach (var pair in dirSourceDest) - { - setLabel10Text("File: " + pair.Key.Name); - string b = (Conversions.ToInteger(Label18.Text) + 1).ToString(); - var ClsCreaImmagine = new ImageCreatorSharp(pair.Key, pair.Value); - ContaImmaginiThread += 1; - //MyPool.InsertWorkItem(pair.Key.Name, new XyThreadAdd((_) => ClsCreaImmagine.CreaImmagineThread()), new object[1] { pair.Key.Name }, true); - } - } - - // il posto giusto dove fare modifiche - private void CreaImmaginiWithThread(string SourcePath, string DestPath) - { - var SourceDir = new DirectoryInfo(SourcePath); - var DestDirStart = new DirectoryInfo(DestPath); - DirectoryInfo DestDir = null; - int NumFileXDir = Conversions.ToInteger(txtFilePerCartella.Text); - string SuffixDir = txtSuffissoCartelle.Text; - int NumCifreDir = Conversions.ToInteger(txtCifreContatore.Text); - bool DividiFile = false; - StopAttivo = false; - int FileConta = 0; - int ContaFileXDir = 0; - int ContaDirXDir = 0; - string TestoTemp = ""; - int ContaTemp = 0; - if (SourceDir.Exists) - { - FileConta = SourceDir.GetFiles("*.jpg").GetLength(0); - lblFotoTotaliNum.Text = (Conversions.ToInteger(lblFotoTotaliNum.Text) + FileConta).ToString(); - if (NumFileXDir > 0 & chkCreaSottocartelle.Checked == true) - { - if (FileConta > NumFileXDir) - { - DividiFile = true; - } - else - { - DestDir = DestDirStart; - if (!DestDir.Exists) - { - DestDir.Create(); - } - - DividiFile = false; - } - } - else - { - DestDir = DestDirStart; - if (!DestDir.Exists) - { - DestDir.Create(); - } - - DividiFile = false; - } - - foreach (var childFile in SourceDir.GetFiles("*.jpg")) - { - if (StopAttivo == true) - { - break; - } - // Label10.Text = "File: " & childFile.Name - // Label18.Text = (CType(Label18.Text, Integer) + 1).ToString - // Application.DoEvents() - - ContaFileXDir += 1; - if (DividiFile == true) - { - if (ContaFileXDir == ContaDirXDir * NumFileXDir + 1) - { - ContaDirXDir += 1; - if (rdbNumProgressiva.Checked == true) - { - TestoTemp = ContaDirXDir.ToString(); - } - else - { - TestoTemp = (ContaDirXDir * NumFileXDir).ToString(); - } - - var loopTo = NumCifreDir - TestoTemp.Length; - for (ContaTemp = 1; ContaTemp <= loopTo; ContaTemp++) - TestoTemp = "0" + TestoTemp; - if (DestDirStart.FullName.EndsWith(@"\")) - { - DestDir = new DirectoryInfo(DestDirStart.FullName + SuffixDir + TestoTemp); - } - else - { - DestDir = new DirectoryInfo(DestDirStart.FullName + @"\" + SuffixDir + TestoTemp); - } - - if (!DestDir.Exists) - { - DestDir.Create(); - } - } - } - - Application.DoEvents(); - var ClsCreaImmagine = new CreaImmagineSeparateThread(); - ClsCreaImmagine.DirectorySorgente = SourcePath; - ClsCreaImmagine.DirectoryDestinazione = Model.DestinationPath; - ClsCreaImmagine.DestDir = DestDir; - ClsCreaImmagine.SourceDir = SourceDir; - ClsCreaImmagine.DestDirStart = DestDirStart; - ClsCreaImmagine.DimStandard = Conversions.ToInteger(TextBox11.Text); - ClsCreaImmagine.DimStandardMiniatura = Conversions.ToInteger(TextBox25.Text); - ClsCreaImmagine.UsaOrarioMiniatura = CheckBox12.Checked; - ClsCreaImmagine.UsaOrarioTestoApplicare = CheckBox8.Checked; - ClsCreaImmagine.UsaTempoGaraTestoApplicare = CheckBox7.Checked; - ClsCreaImmagine.UsaRotazioneAutomatica = chkRotazioneAutomatica.Checked; - ClsCreaImmagine.UsaForzaJpg = chkForzaJpg.Checked; - if (CheckBox17.Checked) - { - ClsCreaImmagine.TestoNome = true; - } - else - { - ClsCreaImmagine.TestoNome = false; - } - - if (CheckBox16.Checked) - { - ClsCreaImmagine.NomeData = true; - } - else - { - ClsCreaImmagine.NomeData = false; - } - - ClsCreaImmagine.TestoFirmaStart = TextBox4.Text; - ClsCreaImmagine.TestoFirmaStartV = TextBox29.Text; - ClsCreaImmagine.DataPartenza = DateTimePicker1.Value; - ClsCreaImmagine.TestoOrario = TextBox18.Text; - ClsCreaImmagine.AltezzaSmall = Conversions.ToInteger(TextBox5.Text); - ClsCreaImmagine.LarghezzaSmall = Conversions.ToInteger(TextBox5.Text); - ClsCreaImmagine.CreaMiniature = CheckBox1.Checked; - ClsCreaImmagine.AggiungiScritteMiniature = RadioButton3.Checked; - ClsCreaImmagine.AggTempoGaraMin = RadioButton5.Checked; - ClsCreaImmagine.AggNumTempMin = RadioButton7.Checked; - ClsCreaImmagine.DimVert = Conversions.ToInteger(TextBox30.Text); - ClsCreaImmagine.MargVert = Conversions.ToInteger(TextBox31.Text); - ClsCreaImmagine.NomeFileChild = childFile.Name; - ClsCreaImmagine.Suffisso = TextBox3.Text; - // ClsCreaImmagine.Codice = TextBox13.Text - - ClsCreaImmagine.Trasparenza = Conversions.ToInteger(TextBox9.Text); - ClsCreaImmagine.IlFont = ComboBox3.SelectedItem.ToString(); - ClsCreaImmagine.Grassetto = CheckBox3.Checked; - ClsCreaImmagine.Posizione = ComboBox1.SelectedItem.ToString(); - ClsCreaImmagine.Allineamento = ComboBox2.SelectedItem.ToString(); - ClsCreaImmagine.Margine = Conversions.ToInteger(TextBox12.Text); - ClsCreaImmagine.LogoAltezza = Conversions.ToInteger(TextBox14.Text); - ClsCreaImmagine.LogoLarghezza = Conversions.ToInteger(TextBox15.Text); - - // ClsCreaImmagine.FontColoreR = CType(TextBox22.Text, Integer) - // ClsCreaImmagine.FontColoreG = CType(TextBox23.Text, Integer) - // ClsCreaImmagine.FontColoreB = CType(TextBox24.Text, Integer) - ClsCreaImmagine.fontColoreRGB = ColorTranslator.FromHtml(TextBox34.Text); - ClsCreaImmagine.LogoAggiungi = CheckBox5.Checked; - ClsCreaImmagine.LogoNomeFile = TextBox10.Text; - ClsCreaImmagine.LogoTrasparenza = TextBox19.Text; - ClsCreaImmagine.LogoMargine = TextBox16.Text; - ClsCreaImmagine.LogoPosizioneH = ComboBox4.Text; - ClsCreaImmagine.LogoPosizioneV = ComboBox5.Text; - ClsCreaImmagine.FotoGrandeDimOrigina = CheckBox15.Checked; - ClsCreaImmagine.AltezzaBig = Conversions.ToInteger(TextBox27.Text); - ClsCreaImmagine.LarghezzaBig = Conversions.ToInteger(TextBox28.Text); - ClsCreaImmagine.DimMin = Conversions.ToInteger(TextBox25.Text); - ClsCreaImmagine.TestoMin = RadioButton6.Checked; - ClsCreaImmagine.jpegQuality = Conversions.ToLong(TextBox32.Text); - ClsCreaImmagine.jpegQualityMin = Conversions.ToLong(TextBox33.Text); - ContaImmaginiThread += 1; - MyPool.InsertWorkItem(childFile.Name, new XyThreadAdd(ClsCreaImmagine.CreaImmagineThread), - new object[1] { childFile.Name }, true); - } - - // copy all the sub-directories by recursively calling this same routine - if (chkAggiornaSottodirectory.Checked == true) - { - foreach (var subDir in SourceDir.GetDirectories()) - CreaImmaginiWithThread(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name)); - } - } - } - - private void CopyDirectoryFile(string SourcePath, string DestPath, bool OverWrite = false) - { - var SourceDir = new DirectoryInfo(SourcePath); - var DestDir = new DirectoryInfo(DestPath); - if (SourceDir.Exists) - { + DestDir = DestDirStart; if (!DestDir.Exists) { DestDir.Create(); - // copy all the files of the current directory } - foreach (var childFile in SourceDir.GetFiles()) + DividiFile = false; + } + + foreach (var childFile in SourceDir.GetFiles("*.jpg")) + { + if (StopAttivo == true) { - if (OverWrite) - { - childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), true); - } - // if overwrite = false, copy the file only if it does not exist - // this is done to avoid an IOException if a file already exists - // this way the other files can be copied anyway... - else if (!File.Exists(Path.Combine(DestDir.FullName, childFile.Name))) - { - childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), false); - } - // copy all the sub-directories by recursively calling this same routine + break; } + setLabel10Text("File: " + childFile.Name); + string b = (int.Parse(Label18.Text) + 1).ToString(); + // setLabel18Text(b) + // setProgressBarValue(CInt(b)) + // Label10.Text = "File: " & childFile.Name + // Label18.Text = (CType(Label18.Text, Integer) + 1).ToString + // Application.DoEvents() + + ContaFileXDir += 1; + if (DividiFile == true) + { + if (ContaFileXDir == ContaDirXDir * NumFileXDir + 1) + { + ContaDirXDir += 1; + if (rdbNumProgressiva.Checked == true) + { + TestoTemp = ContaDirXDir.ToString(); + } + else + { + TestoTemp = (ContaDirXDir * NumFileXDir).ToString(); + } + + var loopTo = NumCifreDir - TestoTemp.Length; + for (ContaTemp = 1; ContaTemp <= loopTo; ContaTemp++) + TestoTemp = "0" + TestoTemp; + if (DestDirStart.FullName.EndsWith(@"\")) + { + DestDir = new DirectoryInfo(DestDirStart.FullName + SuffixDir + TestoTemp); + } + else + { + DestDir = new DirectoryInfo(DestDirStart.FullName + @"\" + SuffixDir + TestoTemp); + } + + if (!DestDir.Exists) + { + DestDir.Create(); + } + } + } + + // Application.DoEvents() + + + var ClsCreaImmagine = new ImageCreatorSharp(childFile.Name, SourceDir, DestDir, DestDirStart); + // ClsCreaImmagine.NomeFileChild = childFile.Name + // ClsCreaImmagine.DestDir = DestDir + // ClsCreaImmagine.SourceDir = SourceDir + // ClsCreaImmagine.DestDirStart = DestDirStart + + ContaImmaginiThread += 1; + //MyPool.InsertWorkItem(childFile.Name, new XyThreadAdd((_) => ClsCreaImmagine.CreaImmagineThread()), new object[1] { childFile.Name }, true); + } + + // copy all the sub-directories by recursively calling this same routine + if (chkAggiornaSottodirectory.Checked == true) + { foreach (var subDir in SourceDir.GetDirectories()) - CopyDirectoryFile(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name), OverWrite); + creaImmaginiWithThreadMod(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name)); } } + } - public Size NewthumbSize(int currentwidth, int currentheight, int MaxPixel, string TipoSize) + private int getNumerazione() + { + int numerazione; + if (rdbNumProgressiva.Checked) { - // Calculate the Size of the New image - // *** Larghezza, Altezza, Auto - - double tempMultiplier; - if ((TipoSize.ToUpper() ?? "") == ("Larghezza".ToUpper() ?? "")) - { - tempMultiplier = MaxPixel / (double)currentwidth; - } - else if ((TipoSize.ToUpper() ?? "") == ("Altezza".ToUpper() ?? "")) - { - tempMultiplier = MaxPixel / (double)currentheight; - } - else if (currentheight > currentwidth) // portrait - { - tempMultiplier = MaxPixel / (double)currentheight; - } - else - { - tempMultiplier = MaxPixel / (double)currentwidth; - } - - var NewSize = new Size((int)Math.Round(currentwidth * tempMultiplier), - (int)Math.Round(currentheight * tempMultiplier)); - return NewSize; + numerazione = (int)FileHelper.numerazione.Progressiva; + } + else + { + numerazione = (int)FileHelper.numerazione.Files; } - private void Button7_Click(object sender, EventArgs e) - { - StopAttivo = true; - //MyPool.StopThreadPool(); - try - { - _mainToken?.Cancel(); - } - catch (Exception exception) - { - _logger.LogError(exception.Message); - _logger.LogInformation("Ignora questo errore"); - // Console.WriteLine(exception); - // Console.WriteLine("Ignora questo errore"); - } + return numerazione; + } - unlockUI(); + private NumerazioneType GetNumerazioneEnum() + { + NumerazioneType numerazioneType; + if (rdbNumProgressiva.Checked) + { + numerazioneType = NumerazioneType.Progressiva; // FileHelper.numerazione.Progressiva + } + else + { + numerazioneType = NumerazioneType.Files; + } // FileHelper.numerazione.Files + + return numerazioneType; + } + + private void CreaimmaginiWithThreadDict(string SourcePath, string DestPath) + { + var dirSourceDest = new Dictionary(); + if (chkAggiornaSottodirectory.Checked & chkCreaSottocartelle.Checked) + { + var helper = new FileHelper(int.Parse(txtFilePerCartella.Text), txtSuffissoCartelle.Text, + int.Parse(txtCifreContatore.Text), getNumerazione()); + // getfilesrecursive + dirSourceDest = + helper.GetFilesRecursive(new DirectoryInfo(SourcePath), new DirectoryInfo(DestPath), "*.jpg"); + } + else if (chkAggiornaSottodirectory.Checked & !chkCreaSottocartelle.Checked) + { + // = getDirsDict(SourcePath, DestPath) } - private void Button4_Click(object sender, EventArgs e) + foreach (var pair in dirSourceDest) { - var openFileDialog = new OpenFileDialog(); + setLabel10Text("File: " + pair.Key.Name); + string b = (int.Parse(Label18.Text) + 1).ToString(); + var ClsCreaImmagine = new ImageCreatorSharp(pair.Key, pair.Value); + ContaImmaginiThread += 1; + //MyPool.InsertWorkItem(pair.Key.Name, new XyThreadAdd((_) => ClsCreaImmagine.CreaImmagineThread()), new object[1] { pair.Key.Name }, true); + } + } - // openFileDialog.InitialDirectory = TextBox1.Text - openFileDialog.Filter = "Immagini jpg (*.jpg)|*.jpg|Immagini gif (*.gif)|*.gif|Tutti i file (*.*)|*.*"; - if (TextBox10.Text.Length > 0) + // il posto giusto dove fare modifiche + private void CreaImmaginiWithThread(string SourcePath, string DestPath) + { + var SourceDir = new DirectoryInfo(SourcePath); + var DestDirStart = new DirectoryInfo(DestPath); + DirectoryInfo DestDir = null; + int NumFileXDir = int.Parse(txtFilePerCartella.Text); + string SuffixDir = txtSuffissoCartelle.Text; + int NumCifreDir = int.Parse(txtCifreContatore.Text); + bool DividiFile = false; + StopAttivo = false; + int FileConta = 0; + int ContaFileXDir = 0; + int ContaDirXDir = 0; + string TestoTemp = ""; + int ContaTemp = 0; + if (SourceDir.Exists) + { + FileConta = SourceDir.GetFiles("*.jpg").GetLength(0); + lblFotoTotaliNum.Text = (int.Parse(lblFotoTotaliNum.Text) + FileConta).ToString(); + if (NumFileXDir > 0 & chkCreaSottocartelle.Checked == true) { - openFileDialog.FileName = TextBox10.Text; - } - - openFileDialog.FilterIndex = 0; - openFileDialog.RestoreDirectory = true; - if (DialogResult.OK == openFileDialog.ShowDialog()) - { - TextBox10.Text = openFileDialog.FileName; - PictureBox1.Image = Image.FromFile(TextBox10.Text); - if (PictureBox1.Image.Height >= PictureBox1.Image.Width) + if (FileConta > NumFileXDir) { - PictureBox1.Height = 160; - PictureBox1.Width = - Conversions.ToInteger(160 * PictureBox1.Image.Width / (double)PictureBox1.Image.Height); + DividiFile = true; } else { - PictureBox1.Width = 224; - PictureBox1.Height = - Conversions.ToInteger(224 * PictureBox1.Image.Height / (double)PictureBox1.Image.Width); + DestDir = DestDirStart; + if (!DestDir.Exists) + { + DestDir.Create(); + } + + DividiFile = false; } } - } - - private string LeggiSoloNomeFile(string FileName) - { - string Testo = FileName; - string Risposta = ""; - var Nomi = Testo.Split(new char[] { '\\' }); - if (Nomi.Length > 1) - { - Risposta = Nomi[Nomi.Length - 1]; - } - - return Risposta; - } - - private void PictureBox1_MouseMove(object sender, MouseEventArgs e) - { - // GetColor() - // GetPixelColor(PictureBox1.PointToScreen(e.Location)).ToArgb.ToString("X8") - } - - private void PictureBox1_MouseUp(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Left) - { - WaterSelectColor = true; - } else { - WaterSelectColor = false; - } - } + DestDir = DestDirStart; + if (!DestDir.Exists) + { + DestDir.Create(); + } - - // Private Declare Function CreateDC Lib "gdi32.dll" (ByVal strDriver As String, ByVal strDevice As String, ByVal strOutput As String, ByVal pData As IntPtr) As IntPtr - // Private Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As IntPtr) As Boolean - // Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal x As Integer, ByVal y As Integer) As Integer - // Private Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As Point) As Boolean - - - // ''' - // ''' Get the color relative to mouse position - // ''' - // Private Sub GetColor() - // Dim hdcScreen As IntPtr = CreateDC("Display", Nothing, Nothing, IntPtr.Zero) - // Dim pt As Point = New Point - // GetCursorPos(pt) - // Dim cr As Integer = GetPixel(hdcScreen, pt.X, pt.Y) - // DeleteDC(hdcScreen) - // Dim clr As Color = Color.FromArgb((cr And &HFF), (cr And &HFF00) >> 8, (cr And &HFF0000) >> 16) - // PictureBox3.BackColor = clr - // If WaterSelectColor = True Then - // PictureBox2.BackColor = clr - // End If - // WaterSelectColor = False - // End Sub - - - private Color[] GetPixelColor(Point screenLocation) - { - // Dim bm As New Bitmap(1, 1, Imaging.PixelFormat.Format24bppRgb) - // Dim g As Graphics = Graphics.FromImage(bm) - // g.CopyFromScreen(screenLocation, New Point(0, 0), New Size(1, 1)) - // Dim result As Color = bm.GetPixel(0, 0) - // g.Dispose() - // bm.Dispose() - // Return result - return null; - } - - private void Button8_Click(object sender, EventArgs e) - { - var MyDialog = new ColorDialog(); - MyDialog.AllowFullOpen = true; - // If TextBox22.Text.Length > 0 And TextBox23.Text.Length > 0 And TextBox24.Text.Length > 0 Then - // If CType(TextBox22.Text, Integer) >= 0 And CType(TextBox23.Text, Integer) >= 0 And CType(TextBox24.Text, Integer) >= 0 Then - // MyDialog.Color = Color.FromArgb(0, CType(TextBox22.Text, Integer), CType(TextBox23.Text, Integer), CType(TextBox24.Text, Integer)) - // End If - // End If - - if (MyDialog.ShowDialog() == DialogResult.OK) - { - // TextBox22.Text = MyDialog.Color.R.ToString - // TextBox23.Text = MyDialog.Color.G.ToString - // TextBox24.Text = MyDialog.Color.B.ToString - TextBox34.Text = ColorTranslator.ToHtml(MyDialog.Color); - TextBox34.BackColor = MyDialog.Color; - } - } - - private void TextBox27_TextChanged(object sender, EventArgs e) - { - } - - private void CheckBox18_CheckedChanged(object sender, EventArgs e) - { - CheckBox4.Checked = false; - CheckBox12.Checked = false; - } - - private void CheckBox4_CheckedChanged(object sender, EventArgs e) - { - CheckBox18.Checked = false; - } - - private void CheckBox12_CheckedChanged(object sender, EventArgs e) - { - CheckBox18.Checked = false; - } - - private void Label27_Click(object sender, EventArgs e) - { - } - - private CancellationTokenSource? _mainToken; - - private async void Button1_Click(object sender, EventArgs e) - { - _logger.LogInformation("Avvio elaborazione..."); - lockUI(); - // Dim timeStart As Date - // Dim timeStop As Date - _mainToken?.Dispose(); - _mainToken = new CancellationTokenSource(); - var token = _mainToken.Token; - - // timeStart = TimeOfDay - FixPaths(); - Label10.Text = "Elaborazione in corso..."; - lblFotoTotaliNum.Text = "0"; - Label18.Text = "0"; - Label43.Text = "-s"; - setPicSettings(Model.SourcePath, Model.DestinationPath); - ProgressBar1.Minimum = 0; - ProgressBar1.Step = 1; - ProgressBar1.Value = 0; - - // Await CreaCatalogoParallel() - var imgStf = _imageCreationService; //new ImageCreationStuff(); - var imageCreationOptions = new ImageCreationStuff.Options - { - AggiornaSottodirectory = chkAggiornaSottodirectory.Checked, - CreaSottocartelle = chkCreaSottocartelle.Checked, - FilePerCartella = Conversions.ToInteger(txtFilePerCartella.Text), - SuffissoCartelle = txtSuffissoCartelle.Text, - CifreContatore = Conversions.ToInteger(txtCifreContatore.Text), - NumerazioneType = GetNumerazioneEnum(), - SourcePath = Model.SourcePath, - DestinationPath = Model.DestinationPath, - MaxThreads = Conversions.ToInteger(TextBox7.Text), - ChunksSize = Conversions.ToInteger(TextBox8.Text), - LinearExecution = rdbVecchioMetodo.Checked - }; - - try - { - _results = []; - _currentAmount = 0; - _previousAmount = 0; - timer1.Tick += Timer1OnTick; - - timer1.Interval = 1000 * 60; - timer1.Enabled = true; - - string time = await imgStf.CreaCatalogoParallel(imageCreationOptions, _results, UiUpdateEvent, token); - Label43.Text = time; - timer1.Enabled = false; - } - catch (OperationCanceledException operationCanceledException) - { - _logger.LogInformation("Operazione Cancellata"); - //Console.WriteLine("Operazione cancellata"); - } - finally - { - _mainToken?.Dispose(); - _mainToken = null; - - timer1.Tick -= Timer1OnTick; + DividiFile = false; } - Label10.Text = "Finito"; - unlockUI(); + foreach (var childFile in SourceDir.GetFiles("*.jpg")) + { + if (StopAttivo == true) + { + break; + } + // Label10.Text = "File: " & childFile.Name + // Label18.Text = (CType(Label18.Text, Integer) + 1).ToString + // Application.DoEvents() + + ContaFileXDir += 1; + if (DividiFile == true) + { + if (ContaFileXDir == ContaDirXDir * NumFileXDir + 1) + { + ContaDirXDir += 1; + if (rdbNumProgressiva.Checked == true) + { + TestoTemp = ContaDirXDir.ToString(); + } + else + { + TestoTemp = (ContaDirXDir * NumFileXDir).ToString(); + } + + var loopTo = NumCifreDir - TestoTemp.Length; + for (ContaTemp = 1; ContaTemp <= loopTo; ContaTemp++) + TestoTemp = "0" + TestoTemp; + if (DestDirStart.FullName.EndsWith(@"\")) + { + DestDir = new DirectoryInfo(DestDirStart.FullName + SuffixDir + TestoTemp); + } + else + { + DestDir = new DirectoryInfo(DestDirStart.FullName + @"\" + SuffixDir + TestoTemp); + } + + if (!DestDir.Exists) + { + DestDir.Create(); + } + } + } + + Application.DoEvents(); + var ClsCreaImmagine = new CreaImmagineSeparateThread(); + ClsCreaImmagine.DirectorySorgente = SourcePath; + ClsCreaImmagine.DirectoryDestinazione = Model.DestinationPath; + ClsCreaImmagine.DestDir = DestDir; + ClsCreaImmagine.SourceDir = SourceDir; + ClsCreaImmagine.DestDirStart = DestDirStart; + ClsCreaImmagine.DimStandard = int.Parse(TextBox11.Text); + ClsCreaImmagine.DimStandardMiniatura = int.Parse(TextBox25.Text); + ClsCreaImmagine.UsaOrarioMiniatura = CheckBox12.Checked; + ClsCreaImmagine.UsaOrarioTestoApplicare = CheckBox8.Checked; + ClsCreaImmagine.UsaTempoGaraTestoApplicare = CheckBox7.Checked; + ClsCreaImmagine.UsaRotazioneAutomatica = chkRotazioneAutomatica.Checked; + ClsCreaImmagine.UsaForzaJpg = chkForzaJpg.Checked; + if (CheckBox17.Checked) + { + ClsCreaImmagine.TestoNome = true; + } + else + { + ClsCreaImmagine.TestoNome = false; + } + + if (CheckBox16.Checked) + { + ClsCreaImmagine.NomeData = true; + } + else + { + ClsCreaImmagine.NomeData = false; + } + + ClsCreaImmagine.TestoFirmaStart = TextBox4.Text; + ClsCreaImmagine.TestoFirmaStartV = TextBox29.Text; + ClsCreaImmagine.DataPartenza = DateTimePicker1.Value; + ClsCreaImmagine.TestoOrario = TextBox18.Text; + ClsCreaImmagine.AltezzaSmall = int.Parse(TextBox5.Text); + ClsCreaImmagine.LarghezzaSmall = int.Parse(TextBox5.Text); + ClsCreaImmagine.CreaMiniature = CheckBox1.Checked; + ClsCreaImmagine.AggiungiScritteMiniature = RadioButton3.Checked; + ClsCreaImmagine.AggTempoGaraMin = RadioButton5.Checked; + ClsCreaImmagine.AggNumTempMin = RadioButton7.Checked; + ClsCreaImmagine.DimVert = int.Parse(TextBox30.Text); + ClsCreaImmagine.MargVert = int.Parse(TextBox31.Text); + ClsCreaImmagine.NomeFileChild = childFile.Name; + ClsCreaImmagine.Suffisso = TextBox3.Text; + // ClsCreaImmagine.Codice = TextBox13.Text + + ClsCreaImmagine.Trasparenza = int.Parse(TextBox9.Text); + ClsCreaImmagine.IlFont = ComboBox3.SelectedItem.ToString(); + ClsCreaImmagine.Grassetto = CheckBox3.Checked; + ClsCreaImmagine.Posizione = ComboBox1.SelectedItem.ToString(); + ClsCreaImmagine.Allineamento = ComboBox2.SelectedItem.ToString(); + ClsCreaImmagine.Margine = int.Parse(TextBox12.Text); + ClsCreaImmagine.LogoAltezza = int.Parse(TextBox14.Text); + ClsCreaImmagine.LogoLarghezza = int.Parse(TextBox15.Text); + + // ClsCreaImmagine.FontColoreR = CType(TextBox22.Text, Integer) + // ClsCreaImmagine.FontColoreG = CType(TextBox23.Text, Integer) + // ClsCreaImmagine.FontColoreB = CType(TextBox24.Text, Integer) + ClsCreaImmagine.fontColoreRGB = ColorTranslator.FromHtml(TextBox34.Text); + ClsCreaImmagine.LogoAggiungi = CheckBox5.Checked; + ClsCreaImmagine.LogoNomeFile = TextBox10.Text; + ClsCreaImmagine.LogoTrasparenza = TextBox19.Text; + ClsCreaImmagine.LogoMargine = TextBox16.Text; + ClsCreaImmagine.LogoPosizioneH = ComboBox4.Text; + ClsCreaImmagine.LogoPosizioneV = ComboBox5.Text; + ClsCreaImmagine.FotoGrandeDimOrigina = CheckBox15.Checked; + ClsCreaImmagine.AltezzaBig = int.Parse(TextBox27.Text); + ClsCreaImmagine.LarghezzaBig = int.Parse(TextBox28.Text); + ClsCreaImmagine.DimMin = int.Parse(TextBox25.Text); + ClsCreaImmagine.TestoMin = RadioButton6.Checked; + ClsCreaImmagine.jpegQuality = int.Parse(TextBox32.Text); + ClsCreaImmagine.jpegQualityMin = int.Parse(TextBox33.Text); + ContaImmaginiThread += 1; + MyPool.InsertWorkItem(childFile.Name, new XyThreadAdd(ClsCreaImmagine.CreaImmagineThread), + new object[1] { childFile.Name }, true); + } + + // copy all the sub-directories by recursively calling this same routine + if (chkAggiornaSottodirectory.Checked == true) + { + foreach (var subDir in SourceDir.GetDirectories()) + CreaImmaginiWithThread(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name)); + } } - - private int _currentAmount = 0; - private int _previousAmount = 0; - - private void Timer1OnTick(object sender, EventArgs e) - { - _previousAmount = _currentAmount; - _currentAmount = _results.Count; - int diff = _currentAmount - _previousAmount; - SetText(Label43, $"{diff} f/m"); - } - - private void UpdateCounter(string text) - { - Label10.Invoke(new Action(() => Label10.Text = text)); - } - - - private async Task CreaCatalogoParallel() - { - var timeStart = DateAndTime.TimeOfDay; - ContaImmaginiThread = 0; - setLabel10Text("Elaborazione in corso..."); - var imgStf = _imageCreationService; - var imageCreationOptions = new ImageCreationStuff.Options(); - imageCreationOptions.AggiornaSottodirectory = chkAggiornaSottodirectory.Checked; - imageCreationOptions.CreaSottocartelle = chkCreaSottocartelle.Checked; - imageCreationOptions.FilePerCartella = Conversions.ToInteger(txtFilePerCartella.Text); - imageCreationOptions.SuffissoCartelle = txtSuffissoCartelle.Text; - imageCreationOptions.CifreContatore = Conversions.ToInteger(txtCifreContatore.Text); - imageCreationOptions.NumerazioneType = GetNumerazioneEnum(); - imageCreationOptions.SourcePath = Model.SourcePath; - imageCreationOptions.DestinationPath = Model.DestinationPath; - await imgStf.ProcessImagesParallel(imageCreationOptions, _results, UiUpdateEvent); - - // Await CreaImmaginiParallel(txtSorgente.Text, txtDestinazione.Text) - - setLabel10Text("Finito"); - var timeStop = DateAndTime.TimeOfDay; - setLabel43Text(CalcTime(timeStart, timeStop, ContaImmaginiThread)); - } - - // Private Async Function CreaImmaginiParallel(ByVal SourcePath As String, ByVal DestPath As String) As Task - // Dim dataToProcess As List(Of FileData) = New List(Of FileData) - - // 'Dim dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo) = New Dictionary(Of FileInfo, DirectoryInfo) - // If chkAggiornaSottodirectory.Checked And chkCreaSottocartelle.Checked Then - - // Dim helperSharp As New FileHelperSharp() - - // 'Dim helper As New FileHelper(CInt(txtFilePerCartella.Text), txtSuffissoCartelle.Text, CInt(txtCifreContatore.Text), getNumerazione()) - // 'getfilesrecursive - - // Dim fileHelperOptions As FileHelperOptions = New FileHelperOptions() - // fileHelperOptions.FilesPerFolder = CInt(txtFilePerCartella.Text) - // fileHelperOptions.Suffix = txtSuffissoCartelle.Text - // fileHelperOptions.CounterSize = CInt(txtCifreContatore.Text) - // fileHelperOptions.NumerationType = GetNumerazioneEnum() - - // dataToProcess = helperSharp.GetFilesRecursive(New DirectoryInfo(SourcePath), New DirectoryInfo(DestPath), "*.jpg", fileHelperOptions) - - // 'dataToProcess = helper.GetFilesRecursiveParallel(New DirectoryInfo(SourcePath), New DirectoryInfo(DestPath), "*.jpg") - // ElseIf chkAggiornaSottodirectory.Checked And Not chkCreaSottocartelle.Checked Then - // ' TODO manca tutto?!?!?!? - // End If - - // Dim scheduler As TaskScheduler = New ConcurrentExclusiveSchedulerPair(TaskScheduler.Default, Environment.ProcessorCount * 2).ConcurrentScheduler - - // Dim test As IEnumerable(Of Task) = From d In dataToProcess Select Task.Factory.StartNew(Sub() - // 'setLabel10Text("File: " & p.File.Name) - - // Dim b As String = (CType(Label18.Text, Integer) + 1).ToString - - // Dim clsCreaImmagine As New ImageCreator(d.File, d.Directory) - - // clsCreaImmagine.CreaImmagineThread(d.File.Name) - - // ContaImmaginiThread += 1 - // UpdateCounter(ContaImmaginiThread & " " & d.File.Name) - // End Sub, CancellationToken.None, TaskCreationOptions.LongRunning, scheduler) 'TODO Cancellation Token - - // 'ThreadingHelper.StartAndWaitAllThrottled(test, CType(TextBox7.Text, Integer)) - - // Await Task.WhenAll(test) - - // '= getDirsDict(SourcePath, DestPath) - // 'Parallel.ForEach(dataToProcess, - // ' Sub(p, state) - // ' 'setLabel10Text("File: " & p.File.Name) - - // ' Dim b As String = (CType(Label18.Text, Integer) + 1).ToString - - // ' Dim clsCreaImmagine As New ImageCreator(p.File, p.Directory) - - // ' clsCreaImmagine.CreaImmagineThread(p.File.Name) - - // ' ContaImmaginiThread += 1 - // ' UpdateCounter(ContaImmaginiThread & " " & p.File.Name) - // ' 'MyPool.InsertWorkItem(p.File.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {p.File.Name}, True) - // ' ' TODO: BREAK ON STOP state.stop() - - // ' End Sub) - - // 'Dim pair As KeyValuePair(Of FileInfo, DirectoryInfo) - // 'For Each pair In dirSourceDest - - // ' setLabel10Text("File: " & pair.Key.Name) - // ' Dim b As String = (CType(Label18.Text, Integer) + 1).ToString - - // ' Dim ClsCreaImmagine As New ImageCreator(pair.Key, pair.Value) - // ' ContaImmaginiThread += 1 - // ' MyPool.InsertWorkItem(pair.Key.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {pair.Key.Name}, True) - - // 'Next - // End Function } - public class PicInfo + private void CopyDirectoryFile(string SourcePath, string DestPath, bool OverWrite = false) { - public DirectoryInfo DirSource, DirDest, DirDestStart; - public string NomeImmagine; - - public PicInfo(DirectoryInfo Dir_Source, DirectoryInfo Dir_Dest, DirectoryInfo Dir_DestStart, - string Nome_Immagine) + var SourceDir = new DirectoryInfo(SourcePath); + var DestDir = new DirectoryInfo(DestPath); + if (SourceDir.Exists) { - DirSource = Dir_Source; - DirDest = Dir_Dest; - DirDestStart = Dir_DestStart; - NomeImmagine = Nome_Immagine; + if (!DestDir.Exists) + { + DestDir.Create(); + // copy all the files of the current directory + } + + foreach (var childFile in SourceDir.GetFiles()) + { + if (OverWrite) + { + childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), true); + } + // if overwrite = false, copy the file only if it does not exist + // this is done to avoid an IOException if a file already exists + // this way the other files can be copied anyway... + else if (!File.Exists(Path.Combine(DestDir.FullName, childFile.Name))) + { + childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), false); + } + // copy all the sub-directories by recursively calling this same routine + } + + foreach (var subDir in SourceDir.GetDirectories()) + CopyDirectoryFile(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name), OverWrite); } } + + public Size NewthumbSize(int currentwidth, int currentheight, int MaxPixel, string TipoSize) + { + // Calculate the Size of the New image + // *** Larghezza, Altezza, Auto + + double tempMultiplier; + if ((TipoSize.ToUpper() ?? "") == ("Larghezza".ToUpper() ?? "")) + { + tempMultiplier = MaxPixel / (double)currentwidth; + } + else if ((TipoSize.ToUpper() ?? "") == ("Altezza".ToUpper() ?? "")) + { + tempMultiplier = MaxPixel / (double)currentheight; + } + else if (currentheight > currentwidth) // portrait + { + tempMultiplier = MaxPixel / (double)currentheight; + } + else + { + tempMultiplier = MaxPixel / (double)currentwidth; + } + + var NewSize = new Size((int)Math.Round(currentwidth * tempMultiplier), + (int)Math.Round(currentheight * tempMultiplier)); + return NewSize; + } + + private void Button7_Click(object sender, EventArgs e) + { + StopAttivo = true; + //MyPool.StopThreadPool(); + try + { + _mainToken?.Cancel(); + } + catch (Exception exception) + { + _logger.LogError(exception.Message); + _logger.LogInformation("Ignora questo errore"); + // Console.WriteLine(exception); + // Console.WriteLine("Ignora questo errore"); + } + + unlockUI(); + } + + private void Button4_Click(object sender, EventArgs e) + { + var openFileDialog = new OpenFileDialog(); + + // openFileDialog.InitialDirectory = TextBox1.Text + openFileDialog.Filter = "Immagini jpg (*.jpg)|*.jpg|Immagini gif (*.gif)|*.gif|Tutti i file (*.*)|*.*"; + if (TextBox10.Text.Length > 0) + { + openFileDialog.FileName = TextBox10.Text; + } + + openFileDialog.FilterIndex = 0; + openFileDialog.RestoreDirectory = true; + if (DialogResult.OK == openFileDialog.ShowDialog()) + { + TextBox10.Text = openFileDialog.FileName; + PictureBox1.Image = Image.FromFile(TextBox10.Text); + if (PictureBox1.Image.Height >= PictureBox1.Image.Width) + { + PictureBox1.Height = 160; + PictureBox1.Width = + (int)(160 * PictureBox1.Image.Width / (double)PictureBox1.Image.Height); + } + else + { + PictureBox1.Width = 224; + PictureBox1.Height = + (int)(224 * PictureBox1.Image.Height / (double)PictureBox1.Image.Width); + } + } + } + + private string LeggiSoloNomeFile(string FileName) + { + string Testo = FileName; + string Risposta = ""; + var Nomi = Testo.Split(new char[] { '\\' }); + if (Nomi.Length > 1) + { + Risposta = Nomi[Nomi.Length - 1]; + } + + return Risposta; + } + + private void PictureBox1_MouseMove(object sender, MouseEventArgs e) + { + // GetColor() + // GetPixelColor(PictureBox1.PointToScreen(e.Location)).ToArgb.ToString("X8") + } + + private void PictureBox1_MouseUp(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + WaterSelectColor = true; + } + else + { + WaterSelectColor = false; + } + } + + + // Private Declare Function CreateDC Lib "gdi32.dll" (ByVal strDriver As String, ByVal strDevice As String, ByVal strOutput As String, ByVal pData As IntPtr) As IntPtr + // Private Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As IntPtr) As Boolean + // Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal x As Integer, ByVal y As Integer) As Integer + // Private Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As Point) As Boolean + + + // ''' + // ''' Get the color relative to mouse position + // ''' + // Private Sub GetColor() + // Dim hdcScreen As IntPtr = CreateDC("Display", Nothing, Nothing, IntPtr.Zero) + // Dim pt As Point = New Point + // GetCursorPos(pt) + // Dim cr As Integer = GetPixel(hdcScreen, pt.X, pt.Y) + // DeleteDC(hdcScreen) + // Dim clr As Color = Color.FromArgb((cr And &HFF), (cr And &HFF00) >> 8, (cr And &HFF0000) >> 16) + // PictureBox3.BackColor = clr + // If WaterSelectColor = True Then + // PictureBox2.BackColor = clr + // End If + // WaterSelectColor = False + // End Sub + + + private Color[] GetPixelColor(Point screenLocation) + { + // Dim bm As New Bitmap(1, 1, Imaging.PixelFormat.Format24bppRgb) + // Dim g As Graphics = Graphics.FromImage(bm) + // g.CopyFromScreen(screenLocation, New Point(0, 0), New Size(1, 1)) + // Dim result As Color = bm.GetPixel(0, 0) + // g.Dispose() + // bm.Dispose() + // Return result + return null; + } + + private void Button8_Click(object sender, EventArgs e) + { + var MyDialog = new ColorDialog(); + MyDialog.AllowFullOpen = true; + // If TextBox22.Text.Length > 0 And TextBox23.Text.Length > 0 And TextBox24.Text.Length > 0 Then + // If CType(TextBox22.Text, Integer) >= 0 And CType(TextBox23.Text, Integer) >= 0 And CType(TextBox24.Text, Integer) >= 0 Then + // MyDialog.Color = Color.FromArgb(0, CType(TextBox22.Text, Integer), CType(TextBox23.Text, Integer), CType(TextBox24.Text, Integer)) + // End If + // End If + + if (MyDialog.ShowDialog() == DialogResult.OK) + { + // TextBox22.Text = MyDialog.Color.R.ToString + // TextBox23.Text = MyDialog.Color.G.ToString + // TextBox24.Text = MyDialog.Color.B.ToString + TextBox34.Text = ColorTranslator.ToHtml(MyDialog.Color); + TextBox34.BackColor = MyDialog.Color; + } + } + + private void TextBox27_TextChanged(object sender, EventArgs e) + { + } + + private void CheckBox18_CheckedChanged(object sender, EventArgs e) + { + CheckBox4.Checked = false; + CheckBox12.Checked = false; + } + + private void CheckBox4_CheckedChanged(object sender, EventArgs e) + { + CheckBox18.Checked = false; + } + + private void CheckBox12_CheckedChanged(object sender, EventArgs e) + { + CheckBox18.Checked = false; + } + + private void Label27_Click(object sender, EventArgs e) + { + } + + private CancellationTokenSource? _mainToken; + + private async void Button1_Click(object sender, EventArgs e) + { + _logger.LogInformation("Avvio elaborazione..."); + lockUI(); + // Dim timeStart As Date + // Dim timeStop As Date + _mainToken?.Dispose(); + _mainToken = new CancellationTokenSource(); + var token = _mainToken.Token; + + // timeStart = TimeOfDay + FixPaths(); + Label10.Text = "Elaborazione in corso..."; + lblFotoTotaliNum.Text = "0"; + Label18.Text = "0"; + Label43.Text = "-s"; + setPicSettings(Model.SourcePath, Model.DestinationPath); + ProgressBar1.Minimum = 0; + ProgressBar1.Step = 1; + ProgressBar1.Value = 0; + + // Await CreaCatalogoParallel() + var imgStf = _imageCreationService; //new ImageCreationStuff(); + var imageCreationOptions = new ImageCreationStuff.Options + { + AggiornaSottodirectory = chkAggiornaSottodirectory.Checked, + CreaSottocartelle = chkCreaSottocartelle.Checked, + FilePerCartella = int.Parse(txtFilePerCartella.Text), + SuffissoCartelle = txtSuffissoCartelle.Text, + CifreContatore = int.Parse(txtCifreContatore.Text), + NumerazioneType = GetNumerazioneEnum(), + SourcePath = Model.SourcePath, + DestinationPath = Model.DestinationPath, + MaxThreads = int.Parse(TextBox7.Text), + ChunksSize = int.Parse(TextBox8.Text), + LinearExecution = rdbVecchioMetodo.Checked + }; + + try + { + _results = []; + _currentAmount = 0; + _previousAmount = 0; + timer1.Tick += Timer1OnTick; + + timer1.Interval = 1000 * 60; + timer1.Enabled = true; + + string time = await imgStf.CreaCatalogoParallel(imageCreationOptions, _results, UiUpdateEvent, token); + Label43.Text = time; + timer1.Enabled = false; + } + catch (OperationCanceledException operationCanceledException) + { + _logger.LogInformation("Operazione Cancellata"); + //Console.WriteLine("Operazione cancellata"); + } + finally + { + _mainToken?.Dispose(); + _mainToken = null; + + timer1.Tick -= Timer1OnTick; + } + + Label10.Text = "Finito"; + unlockUI(); + } + + private int _currentAmount = 0; + private int _previousAmount = 0; + + private void Timer1OnTick(object sender, EventArgs e) + { + _previousAmount = _currentAmount; + _currentAmount = _results.Count; + int diff = _currentAmount - _previousAmount; + SetText(Label43, $"{diff} f/m"); + } + + private void UpdateCounter(string text) + { + Label10.Invoke(new Action(() => Label10.Text = text)); + } + + + private async Task CreaCatalogoParallel() + { + var timeStart = DateTime.Now; + ContaImmaginiThread = 0; + setLabel10Text("Elaborazione in corso..."); + var imgStf = _imageCreationService; + var imageCreationOptions = new ImageCreationStuff.Options(); + imageCreationOptions.AggiornaSottodirectory = chkAggiornaSottodirectory.Checked; + imageCreationOptions.CreaSottocartelle = chkCreaSottocartelle.Checked; + imageCreationOptions.FilePerCartella = int.Parse(txtFilePerCartella.Text); + imageCreationOptions.SuffissoCartelle = txtSuffissoCartelle.Text; + imageCreationOptions.CifreContatore = int.Parse(txtCifreContatore.Text); + imageCreationOptions.NumerazioneType = GetNumerazioneEnum(); + imageCreationOptions.SourcePath = Model.SourcePath; + imageCreationOptions.DestinationPath = Model.DestinationPath; + await imgStf.ProcessImagesParallel(imageCreationOptions, _results, UiUpdateEvent); + + // Await CreaImmaginiParallel(txtSorgente.Text, txtDestinazione.Text) + + setLabel10Text("Finito"); + var timeStop = DateTime.Now; + setLabel43Text(CalcTime(timeStart, timeStop, ContaImmaginiThread)); + } + + // Private Async Function CreaImmaginiParallel(ByVal SourcePath As String, ByVal DestPath As String) As Task + // Dim dataToProcess As List(Of FileData) = New List(Of FileData) + + // 'Dim dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo) = New Dictionary(Of FileInfo, DirectoryInfo) + // If chkAggiornaSottodirectory.Checked And chkCreaSottocartelle.Checked Then + + // Dim helperSharp As New FileHelperSharp() + + // 'Dim helper As New FileHelper(CInt(txtFilePerCartella.Text), txtSuffissoCartelle.Text, CInt(txtCifreContatore.Text), getNumerazione()) + // 'getfilesrecursive + + // Dim fileHelperOptions As FileHelperOptions = New FileHelperOptions() + // fileHelperOptions.FilesPerFolder = CInt(txtFilePerCartella.Text) + // fileHelperOptions.Suffix = txtSuffissoCartelle.Text + // fileHelperOptions.CounterSize = CInt(txtCifreContatore.Text) + // fileHelperOptions.NumerationType = GetNumerazioneEnum() + + // dataToProcess = helperSharp.GetFilesRecursive(New DirectoryInfo(SourcePath), New DirectoryInfo(DestPath), "*.jpg", fileHelperOptions) + + // 'dataToProcess = helper.GetFilesRecursiveParallel(New DirectoryInfo(SourcePath), New DirectoryInfo(DestPath), "*.jpg") + // ElseIf chkAggiornaSottodirectory.Checked And Not chkCreaSottocartelle.Checked Then + // ' TODO manca tutto?!?!?!? + // End If + + // Dim scheduler As TaskScheduler = New ConcurrentExclusiveSchedulerPair(TaskScheduler.Default, Environment.ProcessorCount * 2).ConcurrentScheduler + + // Dim test As IEnumerable(Of Task) = From d In dataToProcess Select Task.Factory.StartNew(Sub() + // 'setLabel10Text("File: " & p.File.Name) + + // Dim b As String = (CType(Label18.Text, Integer) + 1).ToString + + // Dim clsCreaImmagine As New ImageCreator(d.File, d.Directory) + + // clsCreaImmagine.CreaImmagineThread(d.File.Name) + + // ContaImmaginiThread += 1 + // UpdateCounter(ContaImmaginiThread & " " & d.File.Name) + // End Sub, CancellationToken.None, TaskCreationOptions.LongRunning, scheduler) 'TODO Cancellation Token + + // 'ThreadingHelper.StartAndWaitAllThrottled(test, CType(TextBox7.Text, Integer)) + + // Await Task.WhenAll(test) + + // '= getDirsDict(SourcePath, DestPath) + // 'Parallel.ForEach(dataToProcess, + // ' Sub(p, state) + // ' 'setLabel10Text("File: " & p.File.Name) + + // ' Dim b As String = (CType(Label18.Text, Integer) + 1).ToString + + // ' Dim clsCreaImmagine As New ImageCreator(p.File, p.Directory) + + // ' clsCreaImmagine.CreaImmagineThread(p.File.Name) + + // ' ContaImmaginiThread += 1 + // ' UpdateCounter(ContaImmaginiThread & " " & p.File.Name) + // ' 'MyPool.InsertWorkItem(p.File.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {p.File.Name}, True) + // ' ' TODO: BREAK ON STOP state.stop() + + // ' End Sub) + + // 'Dim pair As KeyValuePair(Of FileInfo, DirectoryInfo) + // 'For Each pair In dirSourceDest + + // ' setLabel10Text("File: " & pair.Key.Name) + // ' Dim b As String = (CType(Label18.Text, Integer) + 1).ToString + + // ' Dim ClsCreaImmagine As New ImageCreator(pair.Key, pair.Value) + // ' ContaImmaginiThread += 1 + // ' MyPool.InsertWorkItem(pair.Key.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {pair.Key.Name}, True) + + // 'Next + // End Function +} + +public class PicInfo +{ + public DirectoryInfo DirSource, DirDest, DirDestStart; + public string NomeImmagine; + + public PicInfo(DirectoryInfo Dir_Source, DirectoryInfo Dir_Dest, DirectoryInfo Dir_DestStart, + string Nome_Immagine) + { + DirSource = Dir_Source; + DirDest = Dir_Dest; + DirDestStart = Dir_DestStart; + NomeImmagine = Nome_Immagine; + } } \ No newline at end of file