diff --git a/Catalog.sln.ide/edb.chk b/Catalog.sln.ide/edb.chk
new file mode 100644
index 0000000..d0a48d9
Binary files /dev/null and b/Catalog.sln.ide/edb.chk differ
diff --git a/Catalog.sln.ide/edbres00001.jrs b/Catalog.sln.ide/edbres00001.jrs
new file mode 100644
index 0000000..3301331
Binary files /dev/null and b/Catalog.sln.ide/edbres00001.jrs differ
diff --git a/Catalog.sln.ide/edbres00002.jrs b/Catalog.sln.ide/edbres00002.jrs
new file mode 100644
index 0000000..3301331
Binary files /dev/null and b/Catalog.sln.ide/edbres00002.jrs differ
diff --git a/Catalog.sln.ide/storage.ide b/Catalog.sln.ide/storage.ide
new file mode 100644
index 0000000..4569100
Binary files /dev/null and b/Catalog.sln.ide/storage.ide differ
diff --git a/CatalogLib/CatalogLib.csproj b/CatalogLib/CatalogLib.csproj
new file mode 100644
index 0000000..b3be219
--- /dev/null
+++ b/CatalogLib/CatalogLib.csproj
@@ -0,0 +1,66 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {D27ACCF2-80FC-4DE8-AEB8-351FF076E6D5}
+ Library
+ Properties
+ CatalogLib
+ CatalogLib
+ v4.5
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {44465926-240d-473f-90b8-786ba4384406}
+ CatalogVbLib
+
+
+
+
+
\ No newline at end of file
diff --git a/CatalogLib/Class1.cs b/CatalogLib/Class1.cs
new file mode 100644
index 0000000..a63356c
--- /dev/null
+++ b/CatalogLib/Class1.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CatalogLib
+{
+ public class Class1
+ {
+ }
+}
diff --git a/CatalogLib/ImageCreator.cs b/CatalogLib/ImageCreator.cs
new file mode 100644
index 0000000..ba4f2f1
--- /dev/null
+++ b/CatalogLib/ImageCreator.cs
@@ -0,0 +1,569 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing.Drawing2D;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Drawing;
+using System.Drawing.Imaging;
+using CatalogVbLib;
+
+namespace CatalogLib
+{
+ public class ImageCreator
+ {
+
+ #region "dichiarazioni"
+
+
+ private bool FotoRuotaADestra = false;
+
+ private bool FotoRuotaASinistra = false;
+ private string TempMinText = "";
+ //Private crFont1 As Font
+
+ private string _NomeFileChild;
+ private DirectoryInfo _SourceDir;
+ private DirectoryInfo _DestDirStart;
+
+ private DirectoryInfo _DestDir;
+
+ private FileInfo _workFile;
+ private string testoFirma;
+ private string testoFirmaV;
+ private int alphaScelta;
+ private int _dimensioneStandard;
+ private int _dimensioneStandardMiniatura;
+ private DateTime dataFoto;
+ private DateTime dataPartenzaI;
+ private string testoOrario;
+ private string testoFirmaPiccola;
+ private Size thumbSizeSmall;
+ private Size thumbSizeBig;
+ private string nomeFileSmall;
+ private string nomeFileBig;
+
+ private string nomeFileBig2;
+ private float yPosFromBottom;
+ private float yPosFromBottom1;
+ private float yPosFromBottom2;
+ private float yPosFromBottom3;
+ private float yPosFromBottom4;
+
+ public string NomeFileChild
+ {
+ get { return _NomeFileChild; }
+ set { _NomeFileChild = value; }
+ }
+
+ public DirectoryInfo DestDirStart
+ {
+ get { return _DestDirStart; }
+ set { _DestDirStart = value; }
+ }
+
+ public DirectoryInfo SourceDir
+ {
+ get { return _SourceDir; }
+ set { _SourceDir = value; }
+ }
+
+ public DirectoryInfo DestDir
+ {
+ get { return _DestDir; }
+ set { _DestDir = value; }
+ }
+
+ public FileInfo WorkFile
+ {
+ get { return _workFile; }
+ set { _workFile = value; }
+ }
+
+ #endregion
+
+ public ImageCreator(string nomeFileChild, DirectoryInfo sourceDir, DirectoryInfo destDir, DirectoryInfo destDirStart)
+ {
+ this.NomeFileChild = nomeFileChild;
+ SourceDir = sourceDir;
+ DestDir = destDir;
+ DestDirStart = destDirStart;
+ WorkFile = new FileInfo(nomeFileChild);
+ }
+
+ public ImageCreator(string nomeFileChild, DirectoryInfo sourceDir, DirectoryInfo destDir)
+ {
+ NomeFileChild = nomeFileChild;
+ DestDir = destDir;
+ }
+
+ public ImageCreator(FileInfo file, DirectoryInfo destination)
+ {
+ WorkFile = file;
+ DestDir = destination;
+ }
+
+ public StringDigitSubstitute CreaImmagineThread(string info)
+ {
+
+ }
+
+ public void CreaImmagineThread(string info)
+ {
+
+ CatalogLib.PicSettings ps = new CatalogLib.PicSettings();
+
+ Image g = Image.FromFile(WorkFile.FullName);
+
+
+
+ if (ps.CreaMiniature)
+ {
+ CreaMiniature();
+ }
+
+
+ }
+
+
+ private void Rotation(ref System.Drawing.Image g)
+ {
+ FotoRuotaADestra = false;
+ FotoRuotaASinistra = false;
+
+ if (CatalogVbLib.PicSettings.UsaRotazioneAutomatica == true)
+ {
+ // ci sono dati exif
+ if (g.PropertyIdList.Length > 0)
+ {
+ ExifReader DatiExif = new ExifReader((Bitmap)g);
+
+ switch (DatiExif.Orientation)
+ {
+ case ExifReader.Orientations.BottomLeft:
+
+ break;
+ case ExifReader.Orientations.BottomRight:
+
+ break;
+ case ExifReader.Orientations.LeftTop:
+
+ break;
+ case ExifReader.Orientations.LftBottom:
+ FotoRuotaASinistra = true;
+ break;
+ case ExifReader.Orientations.RightBottom:
+
+ break;
+ case ExifReader.Orientations.RightTop:
+
+ break;
+ case ExifReader.Orientations.TopLeft:
+
+ break;
+ case ExifReader.Orientations.TopRight:
+
+ break;
+ }
+ }
+ }
+
+ if (FotoRuotaASinistra == true)
+ {
+ g.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ }
+ if (FotoRuotaADestra == true)
+ {
+ g.RotateFlip(RotateFlipType.Rotate90FlipNone);
+ }
+
+ }
+
+ private void ImpostaTestoExtra(Image g)
+ {
+ if (CatalogVbLib.PicSettings.UsaOrarioTestoApplicare ||
+ CatalogVbLib.PicSettings.UsaTempoGaraTestoApplicare ||
+ CatalogVbLib.PicSettings.UsaOrarioMiniatura ||
+ CatalogVbLib.PicSettings.TestoMin ||
+ CatalogVbLib.PicSettings.AggTempoGaraMin ||
+ CatalogVbLib.PicSettings.AggNumTempMin)
+ {
+ if (g.PropertyIdList.Length > 0) //ci sono dati exif
+ {
+ var datiExix = new ExifReader((Bitmap)g);
+ dataFoto = datiExix.DateTimeOriginal;
+ testoFirma = CatalogVbLib.PicSettings.TestoFirmaStart;
+ testoFirmaV = CatalogVbLib.PicSettings.TestoFirmaStartV;
+
+ if (dataFoto.Year != 1)
+ {
+ testoFirmaPiccola = dataFoto.ToShortDateString();
+ if (CatalogVbLib.PicSettings.UsaOrarioTestoApplicare)
+ {
+ testoFirma = string.Concat(testoFirma, " ", dataFoto.ToShortDateString(), " ",
+ dataFoto.ToLongDateString());
+ testoFirmaV = string.Concat(testoFirmaV, " ", dataFoto.ToShortDateString(), " ",
+ dataFoto.ToLongDateString());
+
+ }
+ if (CatalogVbLib.PicSettings.UsaTempoGaraTestoApplicare)
+ {
+ TimeSpan orario = dataPartenzaI - dataFoto;
+ testoFirma = string.Concat(testoFirma, " ", testoOrario, orario.ToString(@"hh\:mm\:ss"));
+ testoFirmaV = string.Concat(testoFirmaV, " ", testoOrario, orario.ToString(@"hh\:mm\:ss"));
+ }
+ }
+ }
+ }
+ else
+ {
+ testoFirma = CatalogVbLib.PicSettings.TestoFirmaStart;
+ testoFirmaV = CatalogVbLib.PicSettings.TestoFirmaStartV;
+ }
+ }
+
+
+ private void PreparaVariabili()
+ {
+ alphaScelta = (int)(255 * (100 - CatalogVbLib.PicSettings.Trasparenza) / 100);
+ testoFirma = string.Empty;
+ testoFirmaV = string.Empty;
+ dataPartenzaI = CatalogVbLib.PicSettings.DataPartenza;
+ testoOrario = CatalogVbLib.PicSettings.TestoOrario;
+ if (testoOrario.Length > 0)
+ {
+ testoOrario += " ";
+ }
+ testoFirmaPiccola = string.Empty;
+ thumbSizeSmall = new Size();
+ thumbSizeBig = new Size();
+ nomeFileSmall = string.Empty;
+ nomeFileBig2 = string.Empty;
+ nomeFileBig = string.Empty;
+ _dimensioneStandard = CatalogVbLib.PicSettings.DimStandard;
+ _dimensioneStandardMiniatura = CatalogVbLib.PicSettings.DimStandardMiniatura;
+
+ nomeFileSmall = CatalogVbLib.PicSettings.Suffisso + WorkFile.Name;
+ nomeFileBig = WorkFile.Name;
+ }
+
+ private void PrepareThumbnailSize(Image g)
+ {
+ if (g.Width > g.Height)
+ {
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, CatalogVbLib.PicSettings.LarghezzaSmall, "Larghezza");
+ Size sizeOrig = new Size(g.Width, g.Height);
+ thumbSizeBig = sizeOrig;
+ }
+ else
+ {
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, CatalogVbLib.PicSettings.AltezzaSmall, "Altezza");
+ Size sizeOrig = new Size(g.Width, g.Height);
+ thumbSizeBig = sizeOrig;
+ }
+ }
+
+ private void CreaMiniature(Image g, Bitmap imgOutputBig, ImageFormat thisFormat)
+ {
+ CatalogLib.PicSettings ps = new PicSettings();
+
+ if (CatalogVbLib.PicSettings.TestoMin)
+ {
+ testoFirmaPiccola = nomeFileBig;
+
+ }
+ else if (CatalogVbLib.PicSettings.AggNumTempMin)
+ {
+ testoFirmaPiccola = nomeFileBig + " ";
+ }
+
+ Font crFont1;
+ Font crFont2;
+ SizeF crSize1 = new SizeF();
+ SizeF crSize2 = new SizeF();
+
+ if (CatalogVbLib.PicSettings.CreaMiniature)
+ {
+ if (!CatalogVbLib.PicSettings.AggiungiScritteMiniature)
+ {
+ if (string.Equals(CatalogVbLib.PicSettings.DirectorySorgente, CatalogVbLib.PicSettings.DirectoryDestinazione, StringComparison.CurrentCultureIgnoreCase))
+ {
+ nomeFileSmall = nomeFileSmall.Substring(0, nomeFileSmall.Length - 4) + CatalogVbLib.PicSettings.Codice +
+ nomeFileSmall.Substring(nomeFileSmall.Length - 4);
+ }
+
+ if (CatalogVbLib.PicSettings.UsaOrarioMiniatura ||
+ CatalogVbLib.PicSettings.TestoMin ||
+ CatalogVbLib.PicSettings.AggTempoGaraMin ||
+ CatalogVbLib.PicSettings.AggNumTempMin)
+ {
+ if (!string.IsNullOrWhiteSpace(testoFirmaPiccola))
+ {
+ Bitmap imgOutputSmall = (Bitmap)imgOutputBig.Clone();
+
+ Graphics grPhoto1 = Graphics.FromImage(imgOutputSmall);
+ grPhoto1.SmoothingMode = SmoothingMode.HighSpeed; //Todo: permettere di cambiare questo parametro
+
+ int larghezzaStandard1;
+
+ _dimensioneStandardMiniatura = 50;
+ bool grassetto = CatalogVbLib.PicSettings.Grassetto;
+ crFont1 = new Font(CatalogVbLib.PicSettings.IlFont, _dimensioneStandardMiniatura, grassetto ? FontStyle.Bold : FontStyle.Regular);
+ crFont2 = new Font(CatalogVbLib.PicSettings.IlFont, _dimensioneStandard, grassetto ? FontStyle.Bold : FontStyle.Regular);
+
+ crSize1 = grPhoto1.MeasureString(testoFirmaPiccola, crFont1);
+ crSize2 = grPhoto1.MeasureString(testoFirma, crFont1);
+
+ larghezzaStandard1 = (int)crSize1.Width;
+
+ if (crSize1.Width > g.Width)
+ {
+ int conta = _dimensioneStandardMiniatura;
+ do
+ {
+ if (conta > 20)
+ {
+ conta -= 5;
+ }
+ else
+ {
+ conta -= 1;
+ }
+
+ crFont1 = new Font(CatalogVbLib.PicSettings.IlFont, conta, grassetto ? FontStyle.Bold : FontStyle.Regular);
+ crSize1 = grPhoto1.MeasureString(testoFirmaPiccola, crFont1);
+
+ if (crSize1.Width < g.Width)
+ {
+ larghezzaStandard1 = (int)crSize1.Width;
+ break;
+ }
+
+ } while (conta > 5);
+ _dimensioneStandardMiniatura = conta;
+
+ }
+
+ switch (CatalogVbLib.PicSettings.Posizione.ToUpper())
+ {
+ case "ALTO":
+ yPosFromBottom1 = CatalogVbLib.PicSettings.Margine;
+ yPosFromBottom4 = CatalogVbLib.PicSettings.MargVert;
+ break;
+
+ case "BASSO":
+ yPosFromBottom1 =
+ (float)
+ (g.Height - crSize1.Height - (g.Height * CatalogVbLib.PicSettings.Margine / 100));
+ yPosFromBottom4 = (float)(g.Height - crSize1.Height - (g.Height * CatalogVbLib.PicSettings.MargVert / 100));
+ break;
+ }
+
+
+ float xCenterOfImg1 = Single.NaN;
+
+ StringFormat strFormat1 = new StringFormat();
+
+ switch (CatalogVbLib.PicSettings.Allineamento.ToUpper())
+ {
+ case "SINISTRA":
+ xCenterOfImg1 = CatalogVbLib.PicSettings.Margine + (larghezzaStandard1 / 2);
+ if ((larghezzaStandard1 / 2) > (g.Width / 2) - CatalogVbLib.PicSettings.Margine)
+ {
+ xCenterOfImg1 = g.Width / 2;
+ }
+ break;
+
+ case "CENTRO":
+ xCenterOfImg1 = (g.Width / 2);
+ break;
+
+ case "DESTRA":
+ xCenterOfImg1 = (g.Width - CatalogVbLib.PicSettings.Margine - (larghezzaStandard1 / 2));
+ if ((larghezzaStandard1 / 2) > (g.Width / 2) - CatalogVbLib.PicSettings.Margine)
+ {
+ xCenterOfImg1 = g.Width / 2;
+ }
+ break;
+
+ }
+
+ strFormat1.Alignment = StringAlignment.Center;
+
+ SolidBrush semiTransBrush21 = new SolidBrush(Color.FromArgb(alphaScelta, 0, 0, 0));
+ SolidBrush semiTransBrush1 = new SolidBrush(Color.FromArgb(alphaScelta, CatalogVbLib.PicSettings.fontColoreRGB));
+
+ _dimensioneStandardMiniatura = CatalogVbLib.PicSettings.DimMin;
+
+ if (ps.Grassetto)
+ {
+ crFont1 = new Font(ps.IlFont, _dimensioneStandardMiniatura, FontStyle.Bold);
+ }
+ else
+ {
+ crFont1 = new Font(ps.IlFont, _dimensioneStandardMiniatura);
+ }
+
+ if (ps.TestoMin)
+ {
+ grPhoto1.DrawString(nomeFileBig, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), strFormat1);
+ grPhoto1.DrawString(nomeFileBig, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), strFormat1);
+ }
+ else if (ps.AggTempoGaraMin & ps.UsaTempoGaraTestoApplicare)
+ {
+ //TimeSpan orario = (dataPartenzaI - dataFoto) * 10000000; //todo
+ TimeSpan orario = dataPartenzaI - dataFoto; //todo controllare se torna la roba giusta
+
+ string tempStr = "";
+
+
+
+ tempStr += Environment.NewLine + testoOrario + orario.Hours.ToString("00") + ":" +
+ orario.Minutes.ToString("00") + ":" + orario.Seconds.ToString("00"); //todo: usare una stringa formato per sta boiata
+
+ grPhoto1.DrawString(tempStr, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1));
+ grPhoto1.DrawString(tempStr, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), strFormat1);
+ }
+ else if (ps.AggNumTempMin) //todo semplificare la logica di sti eif
+ {
+ TimeSpan orario = dataPartenzaI - dataFoto; //todo controllare se torna la roba giusta
+ string tempStr = "";
+ tempStr += nomeFileBig + Environment.NewLine + testoOrario + orario.Hours.ToString("00") + ":" +
+ orario.Minutes.ToString("00") + ":" + orario.Seconds.ToString("00"); //todo: usare una stringa formato per sta boiata
+
+ grPhoto1.DrawString(tempStr, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1));
+ grPhoto1.DrawString(tempStr, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), strFormat1);
+ }
+ else
+ {
+ grPhoto1.DrawString(testoFirmaPiccola, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), strFormat1);
+ grPhoto1.DrawString(testoFirmaPiccola, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), strFormat1);
+ }
+
+
+ //Salva miniatura
+
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, "Temp_" + nomeFileSmall), thisFormat);
+ float width = 0;
+ float height = 0;
+ //float scale = Math.Min(width/imgOutputSmall.Width, height/imgOutputSmall.Height);
+ using (var bmp = new Bitmap(thumbSizeSmall.Width, thumbSizeSmall.Height))
+ {
+ using (var graph = Graphics.FromImage(bmp))
+ {
+ // uncomment for higher quality output
+ //graph.InterpolationMode = InterpolationMode.High;
+ //graph.CompositingQuality = CompositingQuality.HighQuality;
+ //graph.SmoothingMode = SmoothingMode.AntiAlias;
+
+ graph.DrawImage(imgOutputSmall, new Rectangle(0, 0, (int)width, (int)height));
+
+ bmp.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat);
+ }
+ }
+ //var bmp = new Bitmap(thumbSizeSmall.Width, thumbSizeSmall.Height);
+ //var graph = Graphics.FromImage(bmp);
+
+
+
+// 10 down vote accepted
+
+
+//Target parameters:
+
+//float width = 1024;
+//float height = 768;
+//var brush = new SolidBrush(Color.Black);
+
+//Your original file:
+
+//var image = new Bitmap(file);
+
+//Target sizing (scale factor):
+
+//float scale = Math.Min(width / image.Width, height / image.Height);
+
+//The resize including brushing canvas first:
+
+//var bmp = new Bitmap((int)width, (int)height);
+//var graph = Graphics.FromImage(bmp);
+
+//// uncomment for higher quality output
+////graph.InterpolationMode = InterpolationMode.High;
+////graph.CompositingQuality = CompositingQuality.HighQuality;
+////graph.SmoothingMode = SmoothingMode.AntiAlias;
+
+//var scaleWidth = (int)(image.Width * scale);
+//var scaleHeight = (int)(image.Height * scale);
+
+//graph.FillRectangle(brush, new RectangleF(0, 0, width, height));
+//graph.DrawImage(image, new Rectangle(((int)width - scaleWidth)/2, ((int)height - scaleHeight)/2, scaleWidth, scaleHeight));
+
+
+
+ //imgOutputSmall.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat);
+
+
+ //Image g2 = Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" + nomeFileSmall));
+ //Bitmap imgOutputSmall2 = new Bitmap(g2, thumbSizeSmall.Width, thumbSizeSmall.Height);
+ //imgOutputSmall2.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat);
+
+
+
+ }
+ }
+
+
+ }
+ }
+
+
+
+ }
+
+
+
+ ///
+ /// Calculate the Size of the New image
+ ///
+ /// Larghezza
+ /// Altezza
+ ///
+ ///
+ ///
+ ///
+ private Size NewthumbSize(int currentwidth, int currentheight, int MaxPixel, string TipoSize)
+ {
+ // e
+ //*** Larghezza, Altezza, Auto
+
+ double tempMultiplier = 0;
+
+ if (TipoSize.ToUpper() == "Larghezza".ToUpper())
+ {
+ tempMultiplier = MaxPixel / currentwidth;
+ }
+ else if (TipoSize.ToUpper() == "Altezza".ToUpper())
+ {
+ tempMultiplier = MaxPixel / currentheight;
+ }
+ else
+ {
+ // portrait
+ if (currentheight > currentwidth)
+ {
+ tempMultiplier = MaxPixel / currentheight;
+ }
+ else
+ {
+ tempMultiplier = MaxPixel / currentwidth;
+ }
+ }
+
+ Size NewSize = new Size(Convert.ToInt32(currentwidth * tempMultiplier), Convert.ToInt32(currentheight * tempMultiplier));
+
+ return NewSize;
+ }
+ }
+}
diff --git a/CatalogLib/PicSettings.cs b/CatalogLib/PicSettings.cs
new file mode 100644
index 0000000..c490bdf
--- /dev/null
+++ b/CatalogLib/PicSettings.cs
@@ -0,0 +1,157 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CatalogLib
+{
+ public class PicSettings
+ {
+ //TODO: Singleton
+
+ private Dictionary _settingsDict = new Dictionary();
+
+
+ public PicSettings()
+ {
+ SetDefaults();
+ }
+
+ public void Set(string key, object value)
+ {
+ if (_settingsDict.ContainsKey(key))
+ {
+ _settingsDict[key] = value;
+ }
+ else
+ {
+ _settingsDict.Add(key,value);
+ }
+ }
+
+ public bool Exists(string key)
+ {
+ return _settingsDict.ContainsKey(key);
+ }
+
+ public int GetInt(string key)
+ {
+ return _settingsDict.ContainsKey(key) ? (int) _settingsDict[key] : 0;
+ }
+
+ public string GetString(string key)
+ {
+ return _settingsDict.ContainsKey(key) ? (string) _settingsDict[key] : string.Empty;
+ }
+
+ public bool GetBool(string key)
+ {
+ return _settingsDict.ContainsKey(key) && (bool) _settingsDict[key];
+ }
+
+ public void SetBool(string key, bool value)
+ {
+ if (_settingsDict.ContainsKey(key))
+ {
+ _settingsDict[key] = value;
+ }
+ else
+ {
+ _settingsDict.Add(key, value);
+ }
+
+ }
+
+ public object GetObject(string key)
+ {
+ return _settingsDict.ContainsKey(key) ? _settingsDict[key] : null;
+ }
+
+
+
+ public void SetDefaults()
+ {
+ Set("dirSorgente",string.Empty);
+ Set("dirDestinazione",string.Empty);
+ Set("dirAggiornaSottodirectory", false);
+ Set("dirCreaSottoCartelle",false);
+ //Set();
+ }
+
+ public bool Grassetto
+ {
+ get { return GetBool("Grassetto"); }
+ set { SetBool("Grassetto", value);}
+ }
+
+ public string IlFont //todo
+ {
+ get { return GetString(""); }
+ set { }
+ }
+
+ public bool TestoMin //todo
+ {
+ get { return false; }
+ set { }
+ }
+
+ public bool AggTempoGaraMin //todo
+ {
+ get { return false; }
+ set { }
+ }
+
+ public bool UsaTempoGaraTestoApplicare //todo
+ {
+ get { return false; }
+ set { }
+ }
+
+ public bool AggNumTempMin //todo
+ {
+ get { return false; }
+ set { }
+ }
+
+ public bool CreaMiniature //todo
+ {
+ get { return false; }
+ set { }
+ }
+
+ public bool AggiungiScritteMiniature
+ {
+ get { return false; }
+ set { }
+ }
+
+ public string Suffisso
+ {
+ get { return string.Empty; }
+ set { }
+ }
+
+ public string Codice
+ {
+ get { return null; }
+ set {}
+ }
+
+ public int Trasparenza
+ {
+ get { return 0; }
+ }
+
+ public bool Posizione
+ {
+ get { return null; }
+ }
+
+
+
+ }
+}
diff --git a/CatalogLib/Properties/AssemblyInfo.cs b/CatalogLib/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..9d7f332
--- /dev/null
+++ b/CatalogLib/Properties/AssemblyInfo.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("CatalogLib")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CatalogLib")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("7bb8e6ce-72c8-4b36-a166-a62ed446d4e9")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: CLSCompliant(true)]
\ No newline at end of file
diff --git a/CatalogLibVb/CatalogLibVb.csproj b/CatalogLibVb/CatalogLibVb.csproj
new file mode 100644
index 0000000..8d292d6
--- /dev/null
+++ b/CatalogLibVb/CatalogLibVb.csproj
@@ -0,0 +1,57 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {B3352D87-BF9F-4F7A-9162-007492DA76E4}
+ Library
+ Properties
+ CatalogLibVb
+ CatalogLibVb
+ v4.5
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CatalogLibVb/Class1.cs b/CatalogLibVb/Class1.cs
new file mode 100644
index 0000000..16254ce
--- /dev/null
+++ b/CatalogLibVb/Class1.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CatalogLibVb
+{
+ public class Class1
+ {
+ }
+}
diff --git a/CatalogLibVb/Properties/AssemblyInfo.cs b/CatalogLibVb/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0ec915f
--- /dev/null
+++ b/CatalogLibVb/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Le informazioni generali relative a un assembly sono controllate dal seguente
+// set di attributi. Per modificare le informazioni associate a un assembly
+// occorre quindi modificare i valori di questi attributi.
+[assembly: AssemblyTitle("CatalogLibVb")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CatalogLibVb")]
+[assembly: AssemblyCopyright("Copyright © 2014")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
+// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
+// COM, impostare su true l'attributo ComVisible per tale tipo.
+[assembly: ComVisible(false)]
+
+// Se il progetto viene esposto a COM, il GUID che segue verrà utilizzato per creare l'ID della libreria dei tipi
+[assembly: Guid("367f3879-584c-4780-8ad0-dc84d2e77928")]
+
+// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
+//
+// Numero di versione principale
+// Numero di versione secondario
+// Numero build
+// Revisione
+//
+// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
+// utilizzando l'asterisco (*) come descritto di seguito:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CatalogVbLib/CatalogVbLib.vbproj b/CatalogVbLib/CatalogVbLib.vbproj
new file mode 100644
index 0000000..638fdd4
--- /dev/null
+++ b/CatalogVbLib/CatalogVbLib.vbproj
@@ -0,0 +1,118 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {44465926-240D-473F-90B8-786BA4384406}
+ Library
+ CatalogVbLib
+ CatalogVbLib
+ 512
+ Windows
+ v4.5
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ true
+ full
+ true
+ true
+ bin\Debug\
+ CatalogVbLib.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ CatalogVbLib.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
\ No newline at end of file
diff --git a/CatalogVbLib/Class1.vb b/CatalogVbLib/Class1.vb
new file mode 100644
index 0000000..875798b
--- /dev/null
+++ b/CatalogVbLib/Class1.vb
@@ -0,0 +1,3 @@
+Public Class Class1
+
+End Class
diff --git a/CatalogVbLib/ExifReader.vb b/CatalogVbLib/ExifReader.vb
new file mode 100644
index 0000000..15a19bd
--- /dev/null
+++ b/CatalogVbLib/ExifReader.vb
@@ -0,0 +1,1068 @@
+'''-----------------------------------------------------------------------------
+'''
+''' Utility class for reading EXIF data from images. Provides abstraction
+''' for most common data and generic utilities for work with all other.
+'''
+'''
+''' Copyright (c) Michal A. Valášek - Altair Communications, 2003
+''' Copmany: http://software.altaircom.net * support@altaircom.net
+''' Private: http://www.rider.cz * developer@rider.cz
+''' This is free software licensed under GNU Lesser General Public License
+'''
+'''
+''' [altair] 10.9.2003 Created
+'''
+'''-----------------------------------------------------------------------------
+Public Class ExifReader
+ Implements IDisposable
+
+ Private Image As System.Drawing.Bitmap
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Contains possible values of EXIF tag names (ID)
+ '''
+ ''' See GdiPlusImaging.h
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum TagNames
+ ExifIFD = &H8769
+ GpsIFD = &H8825
+ NewSubfileType = &HFE
+ SubfileType = &HFF
+ ImageWidth = &H100
+ ImageHeight = &H101
+ BitsPerSample = &H102
+ Compression = &H103
+ PhotometricInterp = &H106
+ ThreshHolding = &H107
+ CellWidth = &H108
+ CellHeight = &H109
+ FillOrder = &H10A
+ DocumentName = &H10D
+ ImageDescription = &H10E
+ EquipMake = &H10F
+ EquipModel = &H110
+ StripOffsets = &H111
+ Orientation = &H112
+ SamplesPerPixel = &H115
+ RowsPerStrip = &H116
+ StripBytesCount = &H117
+ MinSampleValue = &H118
+ MaxSampleValue = &H119
+ XResolution = &H11A
+ YResolution = &H11B
+ PlanarConfig = &H11C
+ PageName = &H11D
+ XPosition = &H11E
+ YPosition = &H11F
+ FreeOffset = &H120
+ FreeByteCounts = &H121
+ GrayResponseUnit = &H122
+ GrayResponseCurve = &H123
+ T4Option = &H124
+ T6Option = &H125
+ ResolutionUnit = &H128
+ PageNumber = &H129
+ TransferFuncition = &H12D
+ SoftwareUsed = &H131
+ DateTime = &H132
+ Artist = &H13B
+ HostComputer = &H13C
+ Predictor = &H13D
+ WhitePoint = &H13E
+ PrimaryChromaticities = &H13F
+ ColorMap = &H140
+ HalftoneHints = &H141
+ TileWidth = &H142
+ TileLength = &H143
+ TileOffset = &H144
+ TileByteCounts = &H145
+ InkSet = &H14C
+ InkNames = &H14D
+ NumberOfInks = &H14E
+ DotRange = &H150
+ TargetPrinter = &H151
+ ExtraSamples = &H152
+ SampleFormat = &H153
+ SMinSampleValue = &H154
+ SMaxSampleValue = &H155
+ TransferRange = &H156
+ JPEGProc = &H200
+ JPEGInterFormat = &H201
+ JPEGInterLength = &H202
+ JPEGRestartInterval = &H203
+ JPEGLosslessPredictors = &H205
+ JPEGPointTransforms = &H206
+ JPEGQTables = &H207
+ JPEGDCTables = &H208
+ JPEGACTables = &H209
+ YCbCrCoefficients = &H211
+ YCbCrSubsampling = &H212
+ YCbCrPositioning = &H213
+ REFBlackWhite = &H214
+ ICCProfile = &H8773
+ Gamma = &H301
+ ICCProfileDescriptor = &H302
+ SRGBRenderingIntent = &H303
+ ImageTitle = &H320
+ Copyright = &H8298
+ ResolutionXUnit = &H5001
+ ResolutionYUnit = &H5002
+ ResolutionXLengthUnit = &H5003
+ ResolutionYLengthUnit = &H5004
+ PrintFlags = &H5005
+ PrintFlagsVersion = &H5006
+ PrintFlagsCrop = &H5007
+ PrintFlagsBleedWidth = &H5008
+ PrintFlagsBleedWidthScale = &H5009
+ HalftoneLPI = &H500A
+ HalftoneLPIUnit = &H500B
+ HalftoneDegree = &H500C
+ HalftoneShape = &H500D
+ HalftoneMisc = &H500E
+ HalftoneScreen = &H500F
+ JPEGQuality = &H5010
+ GridSize = &H5011
+ ThumbnailFormat = &H5012
+ ThumbnailWidth = &H5013
+ ThumbnailHeight = &H5014
+ ThumbnailColorDepth = &H5015
+ ThumbnailPlanes = &H5016
+ ThumbnailRawBytes = &H5017
+ ThumbnailSize = &H5018
+ ThumbnailCompressedSize = &H5019
+ ColorTransferFunction = &H501A
+ ThumbnailData = &H501B
+ ThumbnailImageWidth = &H5020
+ ThumbnailImageHeight = &H502
+ ThumbnailBitsPerSample = &H5022
+ ThumbnailCompression = &H5023
+ ThumbnailPhotometricInterp = &H5024
+ ThumbnailImageDescription = &H5025
+ ThumbnailEquipMake = &H5026
+ ThumbnailEquipModel = &H5027
+ ThumbnailStripOffsets = &H5028
+ ThumbnailOrientation = &H5029
+ ThumbnailSamplesPerPixel = &H502A
+ ThumbnailRowsPerStrip = &H502B
+ ThumbnailStripBytesCount = &H502C
+ ThumbnailResolutionX = &H502D
+ ThumbnailResolutionY = &H502E
+ ThumbnailPlanarConfig = &H502F
+ ThumbnailResolutionUnit = &H5030
+ ThumbnailTransferFunction = &H5031
+ ThumbnailSoftwareUsed = &H5032
+ ThumbnailDateTime = &H5033
+ ThumbnailArtist = &H5034
+ ThumbnailWhitePoint = &H5035
+ ThumbnailPrimaryChromaticities = &H5036
+ ThumbnailYCbCrCoefficients = &H5037
+ ThumbnailYCbCrSubsampling = &H5038
+ ThumbnailYCbCrPositioning = &H5039
+ ThumbnailRefBlackWhite = &H503A
+ ThumbnailCopyRight = &H503B
+ LuminanceTable = &H5090
+ ChrominanceTable = &H5091
+ FrameDelay = &H5100
+ LoopCount = &H5101
+ PixelUnit = &H5110
+ PixelPerUnitX = &H5111
+ PixelPerUnitY = &H5112
+ PaletteHistogram = &H5113
+ ExifExposureTime = &H829A
+ ExifFNumber = &H829D
+ ExifExposureProg = &H8822
+ ExifSpectralSense = &H8824
+ ExifISOSpeed = &H8827
+ ExifOECF = &H8828
+ ExifVer = &H9000
+ ExifDTOrig = &H9003
+ ExifDTDigitized = &H9004
+ ExifCompConfig = &H9101
+ ExifCompBPP = &H9102
+ ExifShutterSpeed = &H9201
+ ExifAperture = &H9202
+ ExifBrightness = &H9203
+ ExifExposureBias = &H9204
+ ExifMaxAperture = &H9205
+ ExifSubjectDist = &H9206
+ ExifMeteringMode = &H9207
+ ExifLightSource = &H9208
+ ExifFlash = &H9209
+ ExifFocalLength = &H920A
+ ExifMakerNote = &H927C
+ ExifUserComment = &H9286
+ ExifDTSubsec = &H9290
+ ExifDTOrigSS = &H9291
+ ExifDTDigSS = &H9292
+ ExifFPXVer = &HA000
+ ExifColorSpace = &HA001
+ ExifPixXDim = &HA002
+ ExifPixYDim = &HA003
+ ExifRelatedWav = &HA004
+ ExifInterop = &HA005
+ ExifFlashEnergy = &HA20B
+ ExifSpatialFR = &HA20C
+ ExifFocalXRes = &HA20E
+ ExifFocalYRes = &HA20F
+ ExifFocalResUnit = &HA210
+ ExifSubjectLoc = &HA214
+ ExifExposureIndex = &HA215
+ ExifSensingMethod = &HA217
+ ExifFileSource = &HA300
+ ExifSceneType = &HA301
+ ExifCfaPattern = &HA302
+ GpsVer = &H0
+ GpsLatitudeRef = &H1
+ GpsLatitude = &H2
+ GpsLongitudeRef = &H3
+ GpsLongitude = &H4
+ GpsAltitudeRef = &H5
+ GpsAltitude = &H6
+ GpsGpsTime = &H7
+ GpsGpsSatellites = &H8
+ GpsGpsStatus = &H9
+ GpsGpsMeasureMode = &HA
+ GpsGpsDop = &HB
+ GpsSpeedRef = &HC
+ GpsSpeed = &HD
+ GpsTrackRef = &HE
+ GpsTrack = &HF
+ GpsImgDirRef = &H10
+ GpsImgDir = &H11
+ GpsMapDatum = &H12
+ GpsDestLatRef = &H13
+ GpsDestLat = &H14
+ GpsDestLongRef = &H15
+ GpsDestLong = &H16
+ GpsDestBearRef = &H17
+ GpsDestBear = &H18
+ GpsDestDistRef = &H19
+ GpsDestDist = &H1A
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Real position of 0th row and column of picture
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum Orientations
+ TopLeft = 1
+ TopRight = 2
+ BottomRight = 3
+ BottomLeft = 4
+ LeftTop = 5
+ RightTop = 6
+ RightBottom = 7
+ LftBottom = 8
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure programs
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum ExposurePrograms
+ Manual = 1
+ Normal = 2
+ AperturePriority = 3
+ ShutterPriority = 4
+ Creative = 5
+ Action = 6
+ Portrait = 7
+ Landscape = 8
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure metering modes
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum ExposureMeteringModes
+ Unknown = 0
+ Average = 1
+ CenterWeightedAverage = 2
+ Spot = 3
+ MultiSpot = 4
+ MultiSegment = 5
+ [Partial] = 6
+ Other = 255
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Flash activity modes
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum FlashModes
+ NotFired = 0
+ Fired = 1
+ FiredButNoStrobeReturned = 5
+ FiredAndStrobeReturned = 7
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Possible light sources (white balance)
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum LightSources
+ Unknown = 0
+ Daylight = 1
+ Fluorescent = 2
+ Tungsten = 3
+ Flash = 10
+ StandardLightA = 17
+ StandardLightB = 18
+ StandardLightC = 19
+ D55 = 20
+ D65 = 21
+ D75 = 22
+ Other = 255
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Represents rational which is type of some Exif properties
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Structure Rational
+ Dim Numerator As Int32
+ Dim Denominator As Int32
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Converts rational to string representation
+ '''
+ ''' Optional, default "/". String to be used as delimiter of components.
+ ''' String representation of the rational.
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Shadows Function ToString(Optional ByVal Delimiter As String = "/") As String
+ Return Numerator & Delimiter & Denominator
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Converts rational to double precision real number
+ '''
+ ''' The rational as double precision real number.
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Function ToDouble() As Double
+ Return Numerator / Denominator
+ End Function
+ End Structure
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Initializes new instance of this class.
+ '''
+ ''' Bitmap to read exif information from
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Sub New(ByVal Bitmap As System.Drawing.Bitmap)
+ If Bitmap Is Nothing Then Throw New ArgumentNullException("Bitmap")
+ Me.Image = Bitmap
+ End Sub
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Returns all available data in formatted string form
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Overrides Function ToString() As String
+ Dim SB As New System.Text.StringBuilder
+
+ SB.Append("Image:")
+ SB.Append("\n\tDimensions: " & Me.Width & " x " & Me.Height & " px")
+ SB.Append("\n\tResolution: " & Me.ResolutionX & " x " & Me.ResolutionY & " dpi")
+ SB.Append("\n\tOrientation: " & [Enum].GetName(GetType(Orientations), Me.Orientation))
+ SB.Append("\n\tTitle: " & Me.Title)
+ SB.Append("\n\tDescription: " & Me.Description)
+ SB.Append("\n\tCopyright: " & Me.Copyright)
+ SB.Append("\nEquipment:")
+ SB.Append("\n\tMaker: " & Me.EquipmentMaker)
+ SB.Append("\n\tModel: " & Me.EquipmentModel)
+ SB.Append("\n\tSoftware: " & Me.Software)
+ SB.Append("\nDate and time:")
+ SB.Append("\n\tGeneral: " & Me.DateTimeLastModified.ToString())
+ SB.Append("\n\tOriginal: " & Me.DateTimeOriginal.ToString())
+ SB.Append("\n\tDigitized: " & Me.DateTimeDigitized.ToString())
+ SB.Append("\nShooting conditions:")
+ SB.Append("\n\tExposure time: " & Me.ExposureTime.ToString("N4") & " s")
+ SB.Append("\n\tExposure program: " & [Enum].GetName(GetType(ExposurePrograms), Me.ExposureProgram))
+ SB.Append("\n\tExposure mode: " & [Enum].GetName(GetType(ExposureMeteringModes), Me.ExposureMeteringMode))
+ SB.Append("\n\tAperture: F" & Me.Aperture.ToString("N2"))
+ SB.Append("\n\tISO sensitivity: " & Me.ISO)
+ SB.Append("\n\tSubject distance: " & Me.SubjectDistance.ToString("N2") & " m")
+ SB.Append("\n\tFocal length: " & Me.FocalLength)
+ SB.Append("\n\tFlash: " & [Enum].GetName(GetType(FlashModes), Me.FlashMode))
+ SB.Append("\n\tLight source (WB): " & [Enum].GetName(GetType(LightSources), Me.LightSource))
+ SB.Append("\n\nCopyright (c) Michal A. Valasek - Altair Communications, 2003")
+ SB.Append("\nhttp://software.altaircom.net * support@altaircom.net")
+
+ SB.Replace("\n", vbCrLf)
+ SB.Replace("\t", vbTab)
+ Return SB.ToString()
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Brand of equipment (EXIF EquipMake)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property EquipmentMaker() As String
+ Get
+ Return Me.GetPropertyString(TagNames.EquipMake)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Model of equipment (EXIF EquipModel)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property EquipmentModel() As String
+ Get
+ Return Me.GetPropertyString(TagNames.EquipModel)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Software used for processing (EXIF Software)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Software() As String
+ Get
+ Return Me.GetPropertyString(TagNames.SoftwareUsed)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Orientation of image (position of row 0, column 0) (EXIF Orientation)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Orientation() As Orientations
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.Orientation)
+
+ If Not [Enum].IsDefined(GetType(Orientations), X) Then
+ Return Orientations.TopLeft
+ Else
+ Return CType([Enum].Parse(GetType(Orientations), [Enum].GetName(GetType(Orientations), X)), Orientations)
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Time when image was last modified (EXIF DateTime).
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property DateTimeLastModified() As DateTime
+ Get
+ Try
+ Return DateTime.ParseExact(Me.GetPropertyString(TagNames.DateTime), "yyyy\:MM\:dd HH\:mm\:ss", Nothing)
+ Catch ex As Exception
+ Return DateTime.MinValue
+ End Try
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Time when image was taken (EXIF DateTimeOriginal).
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property DateTimeOriginal() As DateTime
+ Get
+ Try
+ Return DateTime.ParseExact(Me.GetPropertyString(TagNames.ExifDTOrig), "yyyy\:MM\:dd HH\:mm\:ss", Nothing)
+ Catch ex As Exception
+ Return DateTime.MinValue
+ End Try
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Time when image was digitized (EXIF DateTimeDigitized).
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property DateTimeDigitized() As DateTime
+ Get
+ Try
+ Return DateTime.ParseExact(Me.GetPropertyString(TagNames.ExifDTDigitized), "yyyy\:MM\:dd HH\:mm\:ss", Nothing)
+ Catch ex As Exception
+ Return DateTime.MinValue
+ End Try
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image width
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Width() As Int16
+ Get
+ Return Me.GetPropertyInt16(TagNames.ImageWidth)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image height
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Height() As Int16
+ Get
+ Return Me.GetPropertyInt16(TagNames.ImageHeight)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' X resolution in dpi (EXIF XResolution/ResolutionUnit)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ResolutionX() As Double
+ Get
+ Dim R As Double = Me.GetPropertyRational(TagNames.XResolution).ToDouble()
+
+ If Me.GetPropertyInt16(TagNames.ResolutionUnit) = 3 Then
+ '-- resolution is in points/cm
+ Return R * 2.54
+ Else
+ '-- resolution is in points/inch
+ Return R
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Y resolution in dpi (EXIF YResolution/ResolutionUnit)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ResolutionY() As Double
+ Get
+ Dim R As Double = Me.GetPropertyRational(TagNames.YResolution).ToDouble()
+
+ If Me.GetPropertyInt16(TagNames.ResolutionUnit) = 3 Then
+ '-- resolution is in points/cm
+ Return R * 2.54
+ Else
+ '-- resolution is in points/inch
+ Return R
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image title (EXIF ImageTitle)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Title() As String
+ Get
+ Return Me.GetPropertyString(TagNames.ImageTitle)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image description (EXIF ImageDescription)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Description() As String
+ Get
+ Return Me.GetPropertyString(TagNames.ImageDescription)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image copyright (EXIF Copyright)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Copyright() As String
+ Get
+ Return Me.GetPropertyString(TagNames.Copyright)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure time in seconds (EXIF ExifExposureTime/ExifShutterSpeed)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ExposureTime() As Double
+ Get
+ If Me.IsPropertyDefined(TagNames.ExifExposureTime) Then
+ '-- Exposure time is explicitly specified
+ Return Me.GetPropertyRational(TagNames.ExifExposureTime).ToDouble
+ ElseIf Me.IsPropertyDefined(TagNames.ExifShutterSpeed) Then
+ '-- Compute exposure time from shutter speed
+ Return 1 / (2 ^ Me.GetPropertyRational(TagNames.ExifShutterSpeed).ToDouble)
+ Else
+ '-- Can't figure out
+ Return 0
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Aperture value as F number (EXIF ExifFNumber/ExifApertureValue)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Aperture() As Double
+ Get
+ If Me.IsPropertyDefined(TagNames.ExifFNumber) Then
+ Return Me.GetPropertyRational(TagNames.ExifFNumber).ToDouble()
+ ElseIf Me.IsPropertyDefined(TagNames.ExifAperture) Then
+ Return System.Math.Sqrt(2) ^ Me.GetPropertyRational(TagNames.ExifAperture).ToDouble()
+ Else
+ Return 0
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure program used (EXIF ExifExposureProg)
+ '''
+ '''
+ ''' If not specified, returns Normal (2)
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ExposureProgram() As ExposurePrograms
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifExposureProg)
+
+ If [Enum].IsDefined(GetType(ExposurePrograms), X) Then
+ Return CType([Enum].Parse(GetType(ExposurePrograms), [Enum].GetName(GetType(ExposurePrograms), X)), ExposurePrograms)
+ Else
+ Return ExposurePrograms.Normal
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' ISO sensitivity
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ISO() As Int16
+ Get
+ Return Me.GetPropertyInt16(TagNames.ExifISOSpeed)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Subject distance in meters (EXIF SubjectDistance)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property SubjectDistance() As Double
+ Get
+ Return Me.GetPropertyRational(TagNames.ExifSubjectDist).ToDouble()
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure method metering mode used (EXIF MeteringMode)
+ '''
+ '''
+ ''' If not specified, returns Unknown (0)
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ExposureMeteringMode() As ExposureMeteringModes
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifMeteringMode)
+
+ If [Enum].IsDefined(GetType(ExposureMeteringModes), X) Then
+ Return CType([Enum].Parse(GetType(ExposureMeteringModes), [Enum].GetName(GetType(ExposureMeteringModes), X)), ExposureMeteringModes)
+ Else
+ Return ExposureMeteringModes.Unknown
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Focal length of lenses in mm (EXIF FocalLength)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property FocalLength() As Double
+ Get
+ Return Me.GetPropertyRational(TagNames.ExifFocalLength).ToDouble
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Flash mode (EXIF Flash)
+ '''
+ '''
+ ''' If not present, value NotFired (0) is returned
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property FlashMode() As FlashModes
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifFlash)
+
+ If [Enum].IsDefined(GetType(FlashModes), X) Then
+ Return CType([Enum].Parse(GetType(FlashModes), [Enum].GetName(GetType(FlashModes), X)), FlashModes)
+ Else
+ Return FlashModes.NotFired
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Light source / white balance (EXIF LightSource)
+ '''
+ '''
+ ''' If not specified, returns Unknown (0).
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property LightSource() As LightSources
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifLightSource)
+
+ If [Enum].IsDefined(GetType(LightSources), X) Then
+ Return CType([Enum].Parse(GetType(LightSources), [Enum].GetName(GetType(LightSources), X)), LightSources)
+ Else
+ Return LightSources.Unknown
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Checks if current image has specified certain property
+ '''
+ '''
+ ''' True if image has specified property, False otherwise.
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function IsPropertyDefined(ByVal PID As Int32) As Boolean
+ Return CBool([Array].IndexOf(Me.Image.PropertyIdList, PID) > -1)
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified Int32 property
+ '''
+ ''' Property ID
+ ''' Optional, default 0. Default value returned if property is not present.
+ ''' Value of property or DefaultValue if property is not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyInt32(ByVal PID As Int32, Optional ByVal DefaultValue As Int32 = 0) As Int32
+ If Me.IsPropertyDefined(PID) Then
+ Return GetInt32(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Return DefaultValue
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified Int16 property
+ '''
+ ''' Property ID
+ ''' Optional, default 0. Default value returned if property is not present.
+ ''' Value of property or DefaultValue if property is not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyInt16(ByVal PID As Int32, Optional ByVal DefaultValue As Int16 = 0) As Int16
+ If Me.IsPropertyDefined(PID) Then
+ Return GetInt16(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Return DefaultValue
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified string property
+ '''
+ ''' Property ID
+ ''' Optional, default String.Empty. Default value returned if property is not present.
+ '''
+ ''' Value of property or DefaultValue if property is not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyString(ByVal PID As Int32, Optional ByVal DefaultValue As String = "") As String
+ If Me.IsPropertyDefined(PID) Then
+ Return GetString(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Return DefaultValue
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified rational property
+ '''
+ ''' Property ID
+ '''
+ ''' Value of property or 0/1 if not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyRational(ByVal PID As Int32) As Rational
+ If Me.IsPropertyDefined(PID) Then
+ Return GetRational(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Dim R As Rational
+ R.Numerator = 0
+ R.Denominator = 1
+ Return R
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads Int32 from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetInt32(ByVal B As Byte()) As Int32
+ If B.Length < 4 Then Throw New ArgumentException("Data too short (4 bytes expected)", "B")
+ Return B(3) << 24 Or B(2) << 16 Or B(1) << 8 Or B(0)
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads Int16 from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetInt16(ByVal B As Byte()) As Int16
+ If B.Length < 2 Then Throw New ArgumentException("Data too short (2 bytes expected)", "B")
+ Return B(1) << 8 Or B(0)
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads string from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetString(ByVal B As Byte()) As String
+ Dim R As String = System.Text.Encoding.ASCII.GetString(B)
+ If R.EndsWith(vbNullChar) Then R = R.Substring(0, R.Length - 1)
+ Return R
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads rational from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetRational(ByVal B As Byte()) As Rational
+ Dim R As New Rational, N(3), D(3) As Byte
+ Array.Copy(B, 0, N, 0, 4)
+ Array.Copy(B, 4, D, 0, 4)
+ R.Denominator = GetInt32(D)
+ R.Numerator = GetInt32(N)
+ Return R
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Disposes unmanaged resources of this class
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Sub Dispose() Implements System.IDisposable.Dispose
+ Me.Image.Dispose()
+ End Sub
+End Class
diff --git a/CatalogVbLib/My Project/Application.Designer.vb b/CatalogVbLib/My Project/Application.Designer.vb
new file mode 100644
index 0000000..96b7331
--- /dev/null
+++ b/CatalogVbLib/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.34011
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/CatalogVbLib/My Project/Application.myapp b/CatalogVbLib/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/CatalogVbLib/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/CatalogVbLib/My Project/AssemblyInfo.vb b/CatalogVbLib/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..be5e3ed
--- /dev/null
+++ b/CatalogVbLib/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Le informazioni generali relative a un assembly sono controllate dal seguente
+' insieme di attributi. Per modificare le informazioni associate a un assembly
+' è necessario modificare i valori di questi attributi.
+
+' Controllare i valori degli attributi dell'assembly
+
+
+
+
+
+
+
+
+
+
+'Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
+
+
+' Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
+'
+' Numero di versione principale
+' Numero di versione secondario
+' Numero build
+' Revisione
+'
+' È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
+' utilizzando l'asterisco (*) come descritto di seguito:
+'
+
+
+
diff --git a/CatalogVbLib/My Project/Resources.Designer.vb b/CatalogVbLib/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..4c63fee
--- /dev/null
+++ b/CatalogVbLib/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.34011
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CatalogVbLib.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/CatalogVbLib/My Project/Resources.resx b/CatalogVbLib/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/CatalogVbLib/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CatalogVbLib/My Project/Settings.Designer.vb b/CatalogVbLib/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..30ce19b
--- /dev/null
+++ b/CatalogVbLib/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.34011
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.CatalogVbLib.My.MySettings
+ Get
+ Return Global.CatalogVbLib.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/CatalogVbLib/My Project/Settings.settings b/CatalogVbLib/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/CatalogVbLib/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CatalogVbLib/PicSettings.vb b/CatalogVbLib/PicSettings.vb
new file mode 100644
index 0000000..42a0da7
--- /dev/null
+++ b/CatalogVbLib/PicSettings.vb
@@ -0,0 +1,606 @@
+Imports System.IO
+Imports System.Drawing.Drawing2D
+Imports System.Drawing.Imaging
+Imports System.Windows.Forms
+Imports System.Drawing
+
+Public Module PicSettings
+
+ Private _DirectorySorgente As String
+ Private _DirectoryDestinazione As String
+
+ Private _DimVert As Integer
+ Private _MargVert As Integer
+
+
+ Private _DimStandard As Integer
+ Private _DimStandardMiniatura As Integer
+
+ Private _NomeData As Boolean
+ Private _TestoNome As Boolean
+ Private _UsaOrarioMiniatura As Boolean
+ Private _UsaOrarioTestoApplicare As Boolean
+ Private _UsaTempoGaraTestoApplicare As Boolean
+ Private _TestoFirmaStart As String
+ Private _TestoFirmaStartV As String
+ Private _DataPartenza As DateTime
+ Private _TestoOrario As String
+
+ Private _UsaRotazioneAutomatica As Boolean
+ Private _UsaForzaJpg As Boolean
+
+ Private _LarghezzaSmall As Integer
+ Private _AltezzaSmall As Integer
+
+ Private _CreaMiniature As Boolean
+ Private _AggiungiScritteMiniature As Boolean
+ Private _AggTempoGaraMin As Boolean
+ Private _AggNumTempMin As Boolean
+
+ Private _Suffisso As String
+ Private _Codice As String
+
+ Private _Trasparenza As Integer
+ Private _IlFont As String
+ Private _Grassetto As Boolean
+
+ Private _Posizione As String
+ Private _Allineamento As String
+ Private _Margine As Integer
+
+ Private _LogoAltezza As Integer
+ Private _LogoLarghezza As Integer
+
+ Private _fontColoreRGB As System.Drawing.Color
+
+ Private _LogoAggiungi As Boolean
+ Private _LogoNomeFile As String
+ Private _LogoTrasparenza As String
+ Private _LogoMargine As String
+ Private _LogoPosizioneH As String
+ Private _LogoPosizioneV As String
+
+ Private _FotoGrandeDimOrigina As Boolean
+ Private _AltezzaBig As Integer
+ Private _LarghezzaBig As Integer
+ Private _DestDir As DirectoryInfo
+ Private _DimMin As Integer
+
+ Private _TestoMin As Boolean
+
+ Private _SecretDefault As Boolean
+ Private _SecretBig As Boolean
+ Private _SecretSmall As Boolean
+
+ Private _SecretPathSmall As String
+ Private _SecretPathBig As String
+
+ Private _jpegQuality As Long
+ Private _jpegQualityMin As Long
+
+ Private FotoRuotaADestra As Boolean = False
+ Private FotoRuotaASinistra As Boolean = False
+
+ Private TempMinText As String = ""
+
+ Private _mainForm As Form
+
+ 'Private progressBar As System.Windows.Forms.ProgressBar
+
+
+
+ Public Property mainForm() As Form
+ Get
+ Return _mainForm
+ End Get
+ Set(ByVal value As Form)
+ _mainForm = value
+ End Set
+ End Property
+
+ Public Property DirectorySorgente() As String
+ Get
+ Return _DirectorySorgente
+ End Get
+ Set(ByVal value As String)
+ _DirectorySorgente = value
+ End Set
+ End Property
+
+ Public Property DirectoryDestinazione() As String
+ Get
+ Return _DirectoryDestinazione
+ End Get
+ Set(ByVal value As String)
+ _DirectoryDestinazione = value
+ End Set
+ End Property
+
+ Public Property TestoFirmaStart() As String
+ Get
+ Return _TestoFirmaStart
+ End Get
+ Set(ByVal value As String)
+ _TestoFirmaStart = value
+ End Set
+ End Property
+
+ Public Property TestoFirmaStartV() As String
+ Get
+ Return _TestoFirmaStartV
+ End Get
+
+ Set(ByVal value As String)
+ _TestoFirmaStartV = value
+ End Set
+ End Property
+
+ Public Property DataPartenza() As DateTime
+ Get
+ Return _DataPartenza
+ End Get
+ Set(ByVal value As DateTime)
+ _DataPartenza = value
+ End Set
+ End Property
+
+ Public Property TestoOrario() As String
+ Get
+ Return _TestoOrario
+ End Get
+ Set(ByVal value As String)
+ _TestoOrario = value
+ End Set
+ End Property
+
+ Public Property DimStandard() As Integer
+ Get
+ Return _DimStandard
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandard = value
+ End Set
+ End Property
+
+ Public Property DimStandardMiniatura() As Integer
+ Get
+ Return _DimStandardMiniatura
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandardMiniatura = value
+ End Set
+ End Property
+
+ Public Property NomeData() As Boolean
+ Get
+ Return _NomeData
+ End Get
+ Set(ByVal value As Boolean)
+ _NomeData = value
+ End Set
+ End Property
+
+ Public Property TestoNome() As Boolean
+ Get
+ Return _TestoNome
+ End Get
+ Set(ByVal value As Boolean)
+ _TestoNome = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioMiniatura() As Boolean
+ Get
+ Return _UsaOrarioMiniatura
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioMiniatura = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioTestoApplicare() As Boolean
+ Get
+ Return _UsaOrarioTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaTempoGaraTestoApplicare() As Boolean
+ Get
+ Return _UsaTempoGaraTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaTempoGaraTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaRotazioneAutomatica() As Boolean
+ Get
+ Return _UsaRotazioneAutomatica
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaRotazioneAutomatica = value
+ End Set
+ End Property
+
+ Public Property UsaForzaJpg() As Boolean
+ Get
+ Return _UsaForzaJpg
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaForzaJpg = value
+ End Set
+ End Property
+
+
+
+ Public Property LarghezzaSmall() As Integer
+ Get
+ Return _LarghezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaSmall = value
+ End Set
+ End Property
+
+ Public Property AltezzaSmall() As Integer
+ Get
+ Return _AltezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaSmall = value
+ End Set
+ End Property
+
+
+ Public Property CreaMiniature() As Boolean
+ Get
+ Return _CreaMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _CreaMiniature = value
+ End Set
+ End Property
+
+ Public Property AggiungiScritteMiniature() As Boolean
+ Get
+ Return _AggiungiScritteMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _AggiungiScritteMiniature = value
+ End Set
+ End Property
+
+
+ Public Property Suffisso() As String
+ Get
+ Return _Suffisso
+ End Get
+ Set(ByVal value As String)
+ _Suffisso = value
+ End Set
+ End Property
+
+ Public Property Codice() As String
+ Get
+ Return _Codice
+ End Get
+ Set(ByVal value As String)
+ _Codice = value
+ End Set
+ End Property
+
+
+ Public Property Trasparenza() As Integer
+ Get
+ Return _Trasparenza
+ End Get
+ Set(ByVal value As Integer)
+ _Trasparenza = value
+ End Set
+ End Property
+
+ Public Property IlFont() As String
+ Get
+ Return _IlFont
+ End Get
+ Set(ByVal value As String)
+ _IlFont = value
+ End Set
+ End Property
+
+ Public Property Grassetto() As Boolean
+ Get
+ Return _Grassetto
+ End Get
+ Set(ByVal value As Boolean)
+ _Grassetto = value
+ End Set
+ End Property
+
+ Public Property Posizione() As String
+ Get
+ Return _Posizione
+ End Get
+ Set(ByVal value As String)
+ _Posizione = value
+ End Set
+ End Property
+
+ Public Property Allineamento() As String
+ Get
+ Return _Allineamento
+ End Get
+ Set(ByVal value As String)
+ _Allineamento = value
+ End Set
+ End Property
+
+ Public Property Margine() As Integer
+ Get
+ Return _Margine
+ End Get
+ Set(ByVal value As Integer)
+ _Margine = value
+ End Set
+ End Property
+
+ Public Property LogoAltezza() As Integer
+ Get
+ Return _LogoAltezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoAltezza = value
+ End Set
+ End Property
+
+ Public Property LogoLarghezza() As Integer
+ Get
+ Return _LogoLarghezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoLarghezza = value
+ End Set
+ End Property
+
+ Public Property fontColoreRGB() As Color
+ Get
+ Return _fontColoreRGB
+ End Get
+ Set(ByVal value As Color)
+ _fontColoreRGB = value
+ End Set
+ End Property
+
+ Public Property LogoAggiungi() As Boolean
+ Get
+ Return _LogoAggiungi
+ End Get
+ Set(ByVal value As Boolean)
+ _LogoAggiungi = value
+ End Set
+ End Property
+
+ Public Property LogoNomeFile() As String
+ Get
+ Return _LogoNomeFile
+ End Get
+ Set(ByVal value As String)
+ _LogoNomeFile = value
+ End Set
+ End Property
+
+ Public Property LogoTrasparenza() As String
+ Get
+ Return _LogoTrasparenza
+ End Get
+ Set(ByVal value As String)
+ _LogoTrasparenza = value
+ End Set
+ End Property
+
+ Public Property LogoMargine() As String
+ Get
+ Return _LogoMargine
+ End Get
+ Set(ByVal value As String)
+ _LogoMargine = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneH() As String
+ Get
+ Return _LogoPosizioneH
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneH = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneV() As String
+ Get
+ Return _LogoPosizioneV
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneV = value
+ End Set
+ End Property
+
+ Public Property FotoGrandeDimOrigina() As Boolean
+ Get
+ Return _FotoGrandeDimOrigina
+ End Get
+ Set(ByVal value As Boolean)
+ _FotoGrandeDimOrigina = value
+ End Set
+ End Property
+
+ Public Property AltezzaBig() As Integer
+ Get
+ Return _AltezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaBig = value
+ End Set
+ End Property
+
+ Public Property LarghezzaBig() As Integer
+ Get
+ Return _LarghezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaBig = value
+ End Set
+ End Property
+
+ Public Property DestDir() As DirectoryInfo
+ Get
+ Return _DestDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDir = value
+ End Set
+ End Property
+
+ Public Property DimVert() As Integer
+ Get
+ Return _DimVert
+
+ End Get
+ Set(ByVal value As Integer)
+ _DimVert = value
+
+ End Set
+ End Property
+
+ Public Property MargVert() As Integer
+ Get
+ Return _MargVert
+
+ End Get
+ Set(ByVal value As Integer)
+ _MargVert = value
+ End Set
+ End Property
+
+ Public Property TestoMin() As Boolean
+ Get
+ Return _TestoMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _TestoMin = value
+
+ End Set
+ End Property
+
+ Public Property DimMin() As Integer
+ Get
+ Return _DimMin
+
+ End Get
+ Set(ByVal value As Integer)
+ _DimMin = value
+
+ End Set
+ End Property
+
+ Public Property SecretDefault() As Boolean
+ Get
+ Return _SecretDefault
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretDefault = value
+
+ End Set
+ End Property
+
+ Public Property SecretBig() As Boolean
+ Get
+ Return _SecretBig
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretBig = value
+
+ End Set
+ End Property
+
+ Public Property SecretSmall() As Boolean
+ Get
+ Return _SecretSmall
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretSmall = value
+
+ End Set
+ End Property
+
+ Public Property SecretPathSmall() As String
+ Get
+ Return _SecretPathSmall
+
+ End Get
+ Set(ByVal value As String)
+ _SecretPathSmall = value
+
+ End Set
+ End Property
+
+ Public Property SecretPathBig() As String
+ Get
+ Return _SecretPathBig
+
+ End Get
+ Set(ByVal value As String)
+ _SecretPathBig = value
+
+ End Set
+ End Property
+
+ Public Property AggTempoGaraMin() As Boolean
+ Get
+ Return _AggTempoGaraMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _AggTempoGaraMin = value
+
+ End Set
+ End Property
+
+ Public Property AggNumTempMin() As Boolean
+ Get
+ Return _AggNumTempMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _AggNumTempMin = value
+
+ End Set
+ End Property
+
+ Public Property jpegQuality() As Long
+ Get
+ Return _jpegQuality
+ End Get
+ Set(ByVal value As Long)
+ _jpegQuality = value
+ End Set
+
+ End Property
+
+ Public Property jpegQualityMin() As Long
+ Get
+ Return _jpegQualityMin
+ End Get
+ Set(ByVal value As Long)
+ _jpegQualityMin = value
+ End Set
+
+ End Property
+End Module
diff --git a/ImageCatalogCS/AboutForm.Designer.cs b/ImageCatalogCS/AboutForm.Designer.cs
new file mode 100644
index 0000000..01cd505
--- /dev/null
+++ b/ImageCatalogCS/AboutForm.Designer.cs
@@ -0,0 +1,101 @@
+namespace ImageCatalogCS
+{
+ partial class AboutForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.button1 = new System.Windows.Forms.Button();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(12, 213);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(75, 13);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Image Catalog";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(350, 213);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(66, 13);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "Versione 3.0";
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(176, 239);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 2;
+ this.button1.Text = "Chiudi";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.InitialImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.InitialImage")));
+ this.pictureBox1.Location = new System.Drawing.Point(15, 13);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(401, 197);
+ this.pictureBox1.TabIndex = 3;
+ this.pictureBox1.TabStop = false;
+ //
+ // AboutForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(433, 274);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label1);
+ this.Name = "AboutForm";
+ this.Text = "AboutForm";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ }
+}
\ No newline at end of file
diff --git a/ImageCatalogCS/AboutForm.cs b/ImageCatalogCS/AboutForm.cs
new file mode 100644
index 0000000..80e20f9
--- /dev/null
+++ b/ImageCatalogCS/AboutForm.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace ImageCatalogCS
+{
+ public partial class AboutForm : Form
+ {
+ public AboutForm()
+ {
+ InitializeComponent();
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+ }
+}
diff --git a/ImageCatalogCS/AboutForm.resx b/ImageCatalogCS/AboutForm.resx
new file mode 100644
index 0000000..02a449f
--- /dev/null
+++ b/ImageCatalogCS/AboutForm.resx
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAZ4AAADQCAIAAAC4O5DwAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAS
+ cwAAEnMBjCK5BwAAC05JREFUeF7t2sGBG0cORmEn4PPmooCUxO7FGTgaJ+NgtE0OKZMeTTdQDVQBf7/v
+ 4svuDLsK9boo6bcfACCHtAEQRNoACCJtAASRNgCCSBsAQaQNgCDSBkAQaQMgiLQBEETaAAgibQAEkTYA
+ gkgbAEGkDYAg0gZAEGkDIIi0ARBE2gAIIm0ABJE2AIJIGwBBpA2AINIGQBBpAyCItAEQRNoACCJtAASR
+ NgCCSBsAQaQNgCDSBkAQaQMgiLQBEETaAAgibQAEkTYAgkgbAEGkDYAg0pbqr++/Dfn259+PnwBhjEci
+ 0hZndFBtvv/1+DXoifGYi7SdkzuvX+Gt3QTjsQ5pG/H3n98eU7QaL+uCGI8KSJtHnZn9NxJXAONRCWkz
+ qTu0b/gmsgbjUdDKtB0PRIG9aDK1r1asmvsPlUSO2cXGo8WRfViXNsNQLL5GNxzbF3MX74Jpu+Z4HG90
+ lZ1dlTbLXCwsW+7YHm5+2F+sTVvCa6UtvWr7q7N0PAy/vMberkmbZTSWrU/Y4OxyTtWJDzUlb9dJ25zx
+ 2Hj2beZ4lD68L1akzfTOm3IgP5k2tzeD+z9yZUgftWukbep4bEYWacJ4WJZh/f7OT5tt6ReUbfbc3px6
+ TOcQpy6pftpWjMdmfNcSx8O0Fqt3eHbabOs9fVVGXnUxAh7Vfujy1lU7bevGY3N2pTLGo+gxfjM5bbZl
+ nrwkSwd3E3Odsk5wzuVNOG3G8fjP478ZAvYsejxsPy9n2Gymps24vFPXwzS4vz/+myTumNuOYcICq6bN
+ tKDf/vff5Jdj0GpFjkfFw/xmYtqMb7+ZM2/5SN//sJ7az7toPvChD234reGLLJk203hsm25++BITEjUe
+ Bc/zm2lpMy7EzJU43uNtFE2fe/9DW8Y3+rGPP3bsbzQf0adlE29mGo9NxwkJGY+CR/rVrLRZR3/aMhzu
+ i3VuTZ/YMAWf3+hnHa554K9US5txPCz/y6oTEjAe1l2Pn22DOWkz7NuHWWtwtCfPz2Gf8ENHPyrlrB/9
+ 0rD11kqbdTw2rSfk9HhYt33Fbk9Jm3nuw07avv3P87INsWU4+GlZ229+2jPMW/y0YtiNPAvWf0LOjYd5
+ 3ycd7RcT0na0+z/Nmfb9j/P+GaKrsP/z8nZ/9/eGLLt5xJ/mbLafZzw2EhNyZjyKne4X+WkzD/2UZ9/d
+ iX9/gv1tG5mzM0N0iuu5B5h3+Wn6pJt4l0llQk6Mx/4SvJp8cctOm/3BC876iQ3/QvxRKEIkbV5MSN0j
+ npw2+8RXHPWEN+jujyRt3TAhG3vbpn7+1LQVfWYzBteMtH12nQmx7/7Ebc9MW/ey7T/A0CbtLwlp64YJ
+ +eDY/mmPkJi2io/rEz9mu2vS+bSTtl+40IQUPOx5aetftqNn8A/a/s8ruwwGjt3+oJE2JuTJMQCTtj4r
+ bfuvs3d1N+zoKXyf/OCntT7sV00bE/JUrm1JadMom+E57B8+8EcV5E7bh9bPfMeEPFVrW07aPINe+/V9
+ 3GjT5z/+Mc1P+WDafur79EzIk2cGJjxLStp0ymYauaOHsCxH9WU4cjZtH1quAhPyYFqIp/y2ZaRNqWwb
+ 8+N83i3z/7V72YLSdtdvLZiQD7XalpA2z5S3GGPXjo1oH7bQtN1N+MISiAn5UKpt8WlzDXmTCc4d3V7H
+ +Nei03bTaV2YkLtKhz88bYpl26SNrsCN7SYjbZtGq8OE3BQ6/tFpcz1ar2OdcXo7XUx2JaVt02hImBBn
+ 4FMfLjhtwmXbBL+Y2z3/jry0bS57uW84IXXaFpu2Qs3OEnWGWz7811LT1uuMX3xCytxuQtPmK1vbS8vp
+ V7PSde0hOW3N1uzKE1ImAqFp881373vL6FkWu609paet33G/6oRUqUBk2nzPJHF18TyyaNQ+TEhbz5G5
+ 3oQ4r6xpDx2Ytot8Hf21rydY7EG/8Hz+naeNqF/jw3+dCfFtdNrTB6bN90TSdxh87dyfQ13jRdFbkWtb
+ XNoufWmDz4kbHO/E8py7m7SjcWkrcg1FE8N1o23VOa9tSS0IS1uRWyj6GP1qymuxuhLXtrC0cWmD39jV
+ jekprsS1LSptXNowYuzmxvgUV+HaFpW2EldQNDR0cWN+ahNKW4kbKFoaaRsDVFuFHgSlzTmeTCb+Qdvk
+ eP+cIePatiZtfJ/Ai5G2MUKlFQhCTNoqRBptjfxdAte20gp8jVuSNsYSb0baxuuxsgJFIG0oYOArKWmr
+ zPuyStjNmLQVuH6is4G0MUSVXTVtvHDxbuAbKWmrjLQBd3wjFbM+CaQNFZA2Mc4NTbiDkzZUQNrEkDbg
+ hrSJIW3ADWkTsz4JpA0V+NPG35CWRtqAG9KmhX+yC9wM/Ls23o+VOTc0owgxaSvwIOiMtIkhbcAN30fF
+ OIuQ8Z6KSRt/2IYzuLSpKRAE0ob1uLSp8e1oym4GpY1vpFfyc7eDXlH+svFyrK1CD4LSVqHSyPLl5sbs
+ I2WTU+CP2sLSVuFZEMOxlxFtGygbr8biKtx0otLmfBjSVtGKyDjfiXeUrbgSF52wtPmehuEsaX7bBn4j
+ w1NeiRiEpY1rm4LJd6iRsDE69ZVoQVzauLYpGGnb4GYO/SrK1kCNFMSljWubhMHgeOdz6L624ZXYQI0S
+ BKaNa5uG0epYt3Qwnne8EBvwbXDalgamrcoj4aQz7dl8WbjhZj7xOmzBtc95exqZtirPhLNORygDA9ND
+ lRtOaNq4tskoFzfC1oVrdBIjEJo2X9sY1tJKxY1ZaaNMA2LT5nsurm21+S7hiRiURjyvxNQ3VnDaytxG
+ EaLA1Y0LWyt1AhCdtjrRRoi1VzcmpJlCX9vC0+ZqG9e2DlbVjenop9Dpj08bbVM0O29c11qqdPYT0uZ5
+ Pia4kVl5433XlWdC0nc5I220TVhu36haZ57ZyD/4KWnztI1h7ig8cLziBNQ69jlpo20XcTpxJE1HsUOf
+ lDbHYzLcKoydY8M1OV5zU64zWWmjbcCVVCtbXtocj0rbgObKlS0xbbStiN19EF76qz73EgUPe2LaHF9K
+ GbRU+3Onufi7s8e8RSt41FPTRtvK2N8JteW/1tMWYD7oE/89RG7a7PdUxi3b0fRNHLpURyOn8pyVVCxb
+ dtrsT03b0h2+Z/qf+sNpI2wJap7x9LTRtkqON6Pv2T/+hsCIZTB/M5s8WvlpMz86gzeDZTf65c3w/mS8
+ cpQ93hPSZr+48W1hCtMwtimB7WgxWkmsZZu/AVPSVvj5L8q4IcX7xitzOeMWrBikOWkrvQQXZX3dlCyD
+ NWpMVC7jPiyZoFlpE7kniLEXosjO2Ht8x3UtVe0zPS1t5oVgHOfy5O1mxaA6i3bHSzJb8QM9MW3WU0Tb
+ pvPm7SG3HoMf6oYRmqD6aZ6aNmPned+uMHIz+mx4kk+E7B1Zm8O0YSuP8ty0GQ8QbVslpm+rULVpbIOy
+ dENmp81Ye4Z0oYZ942U4V4dDPD9ttnVhVldrEjgGZT7TaCy/naxImy1uXNxKqFs4BmQRy0gUeOOsSZsp
+ boxuJXUSx1ysZTi6Ja7Sq9JmWSG+a5RkuXLHYxhqMLziimzVurRZzggv6OJyM8f2l9PoQrIybVA0Wjuu
+ ZQhF2gAIIm0ABJE2AIJIGwBBpA2AINIGQBBpAyCItAEQRNoACCJtAASRNgCCSBsAQaQNgCDSBkAQaQMg
+ iLQBEETaAAgibQAEkTYAgkgbAEGkDYAg0gZAEGkDIIi0ARBE2gAIIm0ABJE2AIJIGwBBpA2AINIGQBBp
+ AyCItAEQRNoACCJtAASRNgCCSBsAQaQNgCDSBkAQaQMgiLQBEETaAAgibQAEkTYAgkgbAEGkDYAg0gZA
+ EGkDIIi0ARBE2gAIIm0ABJE2AIJIGwA5P378HyuEmb0husDDAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAZ4AAADQCAIAAAC4O5DwAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAS
+ cwAAEnMBjCK5BwAAC05JREFUeF7t2sGBG0cORmEn4PPmooCUxO7FGTgaJ+NgtE0OKZMeTTdQDVQBf7/v
+ 4svuDLsK9boo6bcfACCHtAEQRNoACCJtAASRNgCCSBsAQaQNgCDSBkAQaQMgiLQBEETaAAgibQAEkTYA
+ gkgbAEGkDYAg0gZAEGkDIIi0ARBE2gAIIm0ABJE2AIJIGwBBpA2AINIGQBBpAyCItAEQRNoACCJtAASR
+ NgCCSBsAQaQNgCDSBkAQaQMgiLQBEETaAAgibQAEkTYAgkgbAEGkDYAg0pbqr++/Dfn259+PnwBhjEci
+ 0hZndFBtvv/1+DXoifGYi7SdkzuvX+Gt3QTjsQ5pG/H3n98eU7QaL+uCGI8KSJtHnZn9NxJXAONRCWkz
+ qTu0b/gmsgbjUdDKtB0PRIG9aDK1r1asmvsPlUSO2cXGo8WRfViXNsNQLL5GNxzbF3MX74Jpu+Z4HG90
+ lZ1dlTbLXCwsW+7YHm5+2F+sTVvCa6UtvWr7q7N0PAy/vMberkmbZTSWrU/Y4OxyTtWJDzUlb9dJ25zx
+ 2Hj2beZ4lD68L1akzfTOm3IgP5k2tzeD+z9yZUgftWukbep4bEYWacJ4WJZh/f7OT5tt6ReUbfbc3px6
+ TOcQpy6pftpWjMdmfNcSx8O0Fqt3eHbabOs9fVVGXnUxAh7Vfujy1lU7bevGY3N2pTLGo+gxfjM5bbZl
+ nrwkSwd3E3Odsk5wzuVNOG3G8fjP478ZAvYsejxsPy9n2Gymps24vFPXwzS4vz/+myTumNuOYcICq6bN
+ tKDf/vff5Jdj0GpFjkfFw/xmYtqMb7+ZM2/5SN//sJ7az7toPvChD234reGLLJk203hsm25++BITEjUe
+ Bc/zm2lpMy7EzJU43uNtFE2fe/9DW8Y3+rGPP3bsbzQf0adlE29mGo9NxwkJGY+CR/rVrLRZR3/aMhzu
+ i3VuTZ/YMAWf3+hnHa554K9US5txPCz/y6oTEjAe1l2Pn22DOWkz7NuHWWtwtCfPz2Gf8ENHPyrlrB/9
+ 0rD11kqbdTw2rSfk9HhYt33Fbk9Jm3nuw07avv3P87INsWU4+GlZ229+2jPMW/y0YtiNPAvWf0LOjYd5
+ 3ycd7RcT0na0+z/Nmfb9j/P+GaKrsP/z8nZ/9/eGLLt5xJ/mbLafZzw2EhNyZjyKne4X+WkzD/2UZ9/d
+ iX9/gv1tG5mzM0N0iuu5B5h3+Wn6pJt4l0llQk6Mx/4SvJp8cctOm/3BC876iQ3/QvxRKEIkbV5MSN0j
+ npw2+8RXHPWEN+jujyRt3TAhG3vbpn7+1LQVfWYzBteMtH12nQmx7/7Ebc9MW/ey7T/A0CbtLwlp64YJ
+ +eDY/mmPkJi2io/rEz9mu2vS+bSTtl+40IQUPOx5aetftqNn8A/a/s8ruwwGjt3+oJE2JuTJMQCTtj4r
+ bfuvs3d1N+zoKXyf/OCntT7sV00bE/JUrm1JadMom+E57B8+8EcV5E7bh9bPfMeEPFVrW07aPINe+/V9
+ 3GjT5z/+Mc1P+WDafur79EzIk2cGJjxLStp0ymYauaOHsCxH9WU4cjZtH1quAhPyYFqIp/y2ZaRNqWwb
+ 8+N83i3z/7V72YLSdtdvLZiQD7XalpA2z5S3GGPXjo1oH7bQtN1N+MISiAn5UKpt8WlzDXmTCc4d3V7H
+ +Nei03bTaV2YkLtKhz88bYpl26SNrsCN7SYjbZtGq8OE3BQ6/tFpcz1ar2OdcXo7XUx2JaVt02hImBBn
+ 4FMfLjhtwmXbBL+Y2z3/jry0bS57uW84IXXaFpu2Qs3OEnWGWz7811LT1uuMX3xCytxuQtPmK1vbS8vp
+ V7PSde0hOW3N1uzKE1ImAqFp881373vL6FkWu609paet33G/6oRUqUBk2nzPJHF18TyyaNQ+TEhbz5G5
+ 3oQ4r6xpDx2Ytot8Hf21rydY7EG/8Hz+naeNqF/jw3+dCfFtdNrTB6bN90TSdxh87dyfQ13jRdFbkWtb
+ XNoufWmDz4kbHO/E8py7m7SjcWkrcg1FE8N1o23VOa9tSS0IS1uRWyj6GP1qymuxuhLXtrC0cWmD39jV
+ jekprsS1LSptXNowYuzmxvgUV+HaFpW2EldQNDR0cWN+ahNKW4kbKFoaaRsDVFuFHgSlzTmeTCb+Qdvk
+ eP+cIePatiZtfJ/Ai5G2MUKlFQhCTNoqRBptjfxdAte20gp8jVuSNsYSb0baxuuxsgJFIG0oYOArKWmr
+ zPuyStjNmLQVuH6is4G0MUSVXTVtvHDxbuAbKWmrjLQBd3wjFbM+CaQNFZA2Mc4NTbiDkzZUQNrEkDbg
+ hrSJIW3ADWkTsz4JpA0V+NPG35CWRtqAG9KmhX+yC9wM/Ls23o+VOTc0owgxaSvwIOiMtIkhbcAN30fF
+ OIuQ8Z6KSRt/2IYzuLSpKRAE0ob1uLSp8e1oym4GpY1vpFfyc7eDXlH+svFyrK1CD4LSVqHSyPLl5sbs
+ I2WTU+CP2sLSVuFZEMOxlxFtGygbr8biKtx0otLmfBjSVtGKyDjfiXeUrbgSF52wtPmehuEsaX7bBn4j
+ w1NeiRiEpY1rm4LJd6iRsDE69ZVoQVzauLYpGGnb4GYO/SrK1kCNFMSljWubhMHgeOdz6L624ZXYQI0S
+ BKaNa5uG0epYt3Qwnne8EBvwbXDalgamrcoj4aQz7dl8WbjhZj7xOmzBtc95exqZtirPhLNORygDA9ND
+ lRtOaNq4tskoFzfC1oVrdBIjEJo2X9sY1tJKxY1ZaaNMA2LT5nsurm21+S7hiRiURjyvxNQ3VnDaytxG
+ EaLA1Y0LWyt1AhCdtjrRRoi1VzcmpJlCX9vC0+ZqG9e2DlbVjenop9Dpj08bbVM0O29c11qqdPYT0uZ5
+ Pia4kVl5433XlWdC0nc5I220TVhu36haZ57ZyD/4KWnztI1h7ig8cLziBNQ69jlpo20XcTpxJE1HsUOf
+ lDbHYzLcKoydY8M1OV5zU64zWWmjbcCVVCtbXtocj0rbgObKlS0xbbStiN19EF76qz73EgUPe2LaHF9K
+ GbRU+3Onufi7s8e8RSt41FPTRtvK2N8JteW/1tMWYD7oE/89RG7a7PdUxi3b0fRNHLpURyOn8pyVVCxb
+ dtrsT03b0h2+Z/qf+sNpI2wJap7x9LTRtkqON6Pv2T/+hsCIZTB/M5s8WvlpMz86gzeDZTf65c3w/mS8
+ cpQ93hPSZr+48W1hCtMwtimB7WgxWkmsZZu/AVPSVvj5L8q4IcX7xitzOeMWrBikOWkrvQQXZX3dlCyD
+ NWpMVC7jPiyZoFlpE7kniLEXosjO2Ht8x3UtVe0zPS1t5oVgHOfy5O1mxaA6i3bHSzJb8QM9MW3WU0Tb
+ pvPm7SG3HoMf6oYRmqD6aZ6aNmPned+uMHIz+mx4kk+E7B1Zm8O0YSuP8ty0GQ8QbVslpm+rULVpbIOy
+ dENmp81Ye4Z0oYZ942U4V4dDPD9ttnVhVldrEjgGZT7TaCy/naxImy1uXNxKqFs4BmQRy0gUeOOsSZsp
+ boxuJXUSx1ysZTi6Ja7Sq9JmWSG+a5RkuXLHYxhqMLziimzVurRZzggv6OJyM8f2l9PoQrIybVA0Wjuu
+ ZQhF2gAIIm0ABJE2AIJIGwBBpA2AINIGQBBpAyCItAEQRNoACCJtAASRNgCCSBsAQaQNgCDSBkAQaQMg
+ iLQBEETaAAgibQAEkTYAgkgbAEGkDYAg0gZAEGkDIIi0ARBE2gAIIm0ABJE2AIJIGwBBpA2AINIGQBBp
+ AyCItAEQRNoACCJtAASRNgCCSBsAQaQNgCDSBkAQaQMgiLQBEETaAAgibQAEkTYAgkgbAEGkDYAg0gZA
+ EGkDIIi0ARBE2gAIIm0ABJE2AIJIGwA5P378HyuEmb0husDDAAAAAElFTkSuQmCC
+
+
+
\ No newline at end of file
diff --git a/ImageCatalogCS/App.config b/ImageCatalogCS/App.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/ImageCatalogCS/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageCatalogCS/CreaImmagineSeparateThread.cs b/ImageCatalogCS/CreaImmagineSeparateThread.cs
new file mode 100644
index 0000000..4444736
--- /dev/null
+++ b/ImageCatalogCS/CreaImmagineSeparateThread.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ImageCatalogCS
+{
+ class CreaImmagineSeparateThread
+ {
+ }
+}
diff --git a/ImageCatalogCS/ExifReader.cs b/ImageCatalogCS/ExifReader.cs
new file mode 100644
index 0000000..9f801be
--- /dev/null
+++ b/ImageCatalogCS/ExifReader.cs
@@ -0,0 +1,1166 @@
+using Microsoft.VisualBasic;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+///-----------------------------------------------------------------------------
+///
+/// Utility class for reading EXIF data from images. Provides abstraction
+/// for most common data and generic utilities for work with all other.
+///
+///
+/// Copyright (c) Michal A. Valášek - Altair Communications, 2003
+/// Copmany: http://software.altaircom.net * support@altaircom.net
+/// Private: http://www.rider.cz * developer@rider.cz
+/// This is free software licensed under GNU Lesser General Public License
+///
+///
+/// [altair] 10.9.2003 Created
+///
+///-----------------------------------------------------------------------------
+public class ExifReader : IDisposable
+{
+
+
+ private System.Drawing.Bitmap Image;
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Contains possible values of EXIF tag names (ID)
+ ///
+ /// See GdiPlusImaging.h
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public enum TagNames
+ {
+ ExifIFD = 0x8769,
+ GpsIFD = 0x8825,
+ NewSubfileType = 0xfe,
+ SubfileType = 0xff,
+ ImageWidth = 0x100,
+ ImageHeight = 0x101,
+ BitsPerSample = 0x102,
+ Compression = 0x103,
+ PhotometricInterp = 0x106,
+ ThreshHolding = 0x107,
+ CellWidth = 0x108,
+ CellHeight = 0x109,
+ FillOrder = 0x10a,
+ DocumentName = 0x10d,
+ ImageDescription = 0x10e,
+ EquipMake = 0x10f,
+ EquipModel = 0x110,
+ StripOffsets = 0x111,
+ Orientation = 0x112,
+ SamplesPerPixel = 0x115,
+ RowsPerStrip = 0x116,
+ StripBytesCount = 0x117,
+ MinSampleValue = 0x118,
+ MaxSampleValue = 0x119,
+ XResolution = 0x11a,
+ YResolution = 0x11b,
+ PlanarConfig = 0x11c,
+ PageName = 0x11d,
+ XPosition = 0x11e,
+ YPosition = 0x11f,
+ FreeOffset = 0x120,
+ FreeByteCounts = 0x121,
+ GrayResponseUnit = 0x122,
+ GrayResponseCurve = 0x123,
+ T4Option = 0x124,
+ T6Option = 0x125,
+ ResolutionUnit = 0x128,
+ PageNumber = 0x129,
+ TransferFuncition = 0x12d,
+ SoftwareUsed = 0x131,
+ DateTime = 0x132,
+ Artist = 0x13b,
+ HostComputer = 0x13c,
+ Predictor = 0x13d,
+ WhitePoint = 0x13e,
+ PrimaryChromaticities = 0x13f,
+ ColorMap = 0x140,
+ HalftoneHints = 0x141,
+ TileWidth = 0x142,
+ TileLength = 0x143,
+ TileOffset = 0x144,
+ TileByteCounts = 0x145,
+ InkSet = 0x14c,
+ InkNames = 0x14d,
+ NumberOfInks = 0x14e,
+ DotRange = 0x150,
+ TargetPrinter = 0x151,
+ ExtraSamples = 0x152,
+ SampleFormat = 0x153,
+ SMinSampleValue = 0x154,
+ SMaxSampleValue = 0x155,
+ TransferRange = 0x156,
+ JPEGProc = 0x200,
+ JPEGInterFormat = 0x201,
+ JPEGInterLength = 0x202,
+ JPEGRestartInterval = 0x203,
+ JPEGLosslessPredictors = 0x205,
+ JPEGPointTransforms = 0x206,
+ JPEGQTables = 0x207,
+ JPEGDCTables = 0x208,
+ JPEGACTables = 0x209,
+ YCbCrCoefficients = 0x211,
+ YCbCrSubsampling = 0x212,
+ YCbCrPositioning = 0x213,
+ REFBlackWhite = 0x214,
+ ICCProfile = 0x8773,
+ Gamma = 0x301,
+ ICCProfileDescriptor = 0x302,
+ SRGBRenderingIntent = 0x303,
+ ImageTitle = 0x320,
+ Copyright = 0x8298,
+ ResolutionXUnit = 0x5001,
+ ResolutionYUnit = 0x5002,
+ ResolutionXLengthUnit = 0x5003,
+ ResolutionYLengthUnit = 0x5004,
+ PrintFlags = 0x5005,
+ PrintFlagsVersion = 0x5006,
+ PrintFlagsCrop = 0x5007,
+ PrintFlagsBleedWidth = 0x5008,
+ PrintFlagsBleedWidthScale = 0x5009,
+ HalftoneLPI = 0x500a,
+ HalftoneLPIUnit = 0x500b,
+ HalftoneDegree = 0x500c,
+ HalftoneShape = 0x500d,
+ HalftoneMisc = 0x500e,
+ HalftoneScreen = 0x500f,
+ JPEGQuality = 0x5010,
+ GridSize = 0x5011,
+ ThumbnailFormat = 0x5012,
+ ThumbnailWidth = 0x5013,
+ ThumbnailHeight = 0x5014,
+ ThumbnailColorDepth = 0x5015,
+ ThumbnailPlanes = 0x5016,
+ ThumbnailRawBytes = 0x5017,
+ ThumbnailSize = 0x5018,
+ ThumbnailCompressedSize = 0x5019,
+ ColorTransferFunction = 0x501a,
+ ThumbnailData = 0x501b,
+ ThumbnailImageWidth = 0x5020,
+ ThumbnailImageHeight = 0x502,
+ ThumbnailBitsPerSample = 0x5022,
+ ThumbnailCompression = 0x5023,
+ ThumbnailPhotometricInterp = 0x5024,
+ ThumbnailImageDescription = 0x5025,
+ ThumbnailEquipMake = 0x5026,
+ ThumbnailEquipModel = 0x5027,
+ ThumbnailStripOffsets = 0x5028,
+ ThumbnailOrientation = 0x5029,
+ ThumbnailSamplesPerPixel = 0x502a,
+ ThumbnailRowsPerStrip = 0x502b,
+ ThumbnailStripBytesCount = 0x502c,
+ ThumbnailResolutionX = 0x502d,
+ ThumbnailResolutionY = 0x502e,
+ ThumbnailPlanarConfig = 0x502f,
+ ThumbnailResolutionUnit = 0x5030,
+ ThumbnailTransferFunction = 0x5031,
+ ThumbnailSoftwareUsed = 0x5032,
+ ThumbnailDateTime = 0x5033,
+ ThumbnailArtist = 0x5034,
+ ThumbnailWhitePoint = 0x5035,
+ ThumbnailPrimaryChromaticities = 0x5036,
+ ThumbnailYCbCrCoefficients = 0x5037,
+ ThumbnailYCbCrSubsampling = 0x5038,
+ ThumbnailYCbCrPositioning = 0x5039,
+ ThumbnailRefBlackWhite = 0x503a,
+ ThumbnailCopyRight = 0x503b,
+ LuminanceTable = 0x5090,
+ ChrominanceTable = 0x5091,
+ FrameDelay = 0x5100,
+ LoopCount = 0x5101,
+ PixelUnit = 0x5110,
+ PixelPerUnitX = 0x5111,
+ PixelPerUnitY = 0x5112,
+ PaletteHistogram = 0x5113,
+ ExifExposureTime = 0x829a,
+ ExifFNumber = 0x829d,
+ ExifExposureProg = 0x8822,
+ ExifSpectralSense = 0x8824,
+ ExifISOSpeed = 0x8827,
+ ExifOECF = 0x8828,
+ ExifVer = 0x9000,
+ ExifDTOrig = 0x9003,
+ ExifDTDigitized = 0x9004,
+ ExifCompConfig = 0x9101,
+ ExifCompBPP = 0x9102,
+ ExifShutterSpeed = 0x9201,
+ ExifAperture = 0x9202,
+ ExifBrightness = 0x9203,
+ ExifExposureBias = 0x9204,
+ ExifMaxAperture = 0x9205,
+ ExifSubjectDist = 0x9206,
+ ExifMeteringMode = 0x9207,
+ ExifLightSource = 0x9208,
+ ExifFlash = 0x9209,
+ ExifFocalLength = 0x920a,
+ ExifMakerNote = 0x927c,
+ ExifUserComment = 0x9286,
+ ExifDTSubsec = 0x9290,
+ ExifDTOrigSS = 0x9291,
+ ExifDTDigSS = 0x9292,
+ ExifFPXVer = 0xa000,
+ ExifColorSpace = 0xa001,
+ ExifPixXDim = 0xa002,
+ ExifPixYDim = 0xa003,
+ ExifRelatedWav = 0xa004,
+ ExifInterop = 0xa005,
+ ExifFlashEnergy = 0xa20b,
+ ExifSpatialFR = 0xa20c,
+ ExifFocalXRes = 0xa20e,
+ ExifFocalYRes = 0xa20f,
+ ExifFocalResUnit = 0xa210,
+ ExifSubjectLoc = 0xa214,
+ ExifExposureIndex = 0xa215,
+ ExifSensingMethod = 0xa217,
+ ExifFileSource = 0xa300,
+ ExifSceneType = 0xa301,
+ ExifCfaPattern = 0xa302,
+ GpsVer = 0x0,
+ GpsLatitudeRef = 0x1,
+ GpsLatitude = 0x2,
+ GpsLongitudeRef = 0x3,
+ GpsLongitude = 0x4,
+ GpsAltitudeRef = 0x5,
+ GpsAltitude = 0x6,
+ GpsGpsTime = 0x7,
+ GpsGpsSatellites = 0x8,
+ GpsGpsStatus = 0x9,
+ GpsGpsMeasureMode = 0xa,
+ GpsGpsDop = 0xb,
+ GpsSpeedRef = 0xc,
+ GpsSpeed = 0xd,
+ GpsTrackRef = 0xe,
+ GpsTrack = 0xf,
+ GpsImgDirRef = 0x10,
+ GpsImgDir = 0x11,
+ GpsMapDatum = 0x12,
+ GpsDestLatRef = 0x13,
+ GpsDestLat = 0x14,
+ GpsDestLongRef = 0x15,
+ GpsDestLong = 0x16,
+ GpsDestBearRef = 0x17,
+ GpsDestBear = 0x18,
+ GpsDestDistRef = 0x19,
+ GpsDestDist = 0x1a
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Real position of 0th row and column of picture
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public enum Orientations
+ {
+ TopLeft = 1,
+ TopRight = 2,
+ BottomRight = 3,
+ BottomLeft = 4,
+ LeftTop = 5,
+ RightTop = 6,
+ RightBottom = 7,
+ LftBottom = 8
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Exposure programs
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public enum ExposurePrograms
+ {
+ Manual = 1,
+ Normal = 2,
+ AperturePriority = 3,
+ ShutterPriority = 4,
+ Creative = 5,
+ Action = 6,
+ Portrait = 7,
+ Landscape = 8
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Exposure metering modes
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public enum ExposureMeteringModes
+ {
+ Unknown = 0,
+ Average = 1,
+ CenterWeightedAverage = 2,
+ Spot = 3,
+ MultiSpot = 4,
+ MultiSegment = 5,
+ Partial = 6,
+ Other = 255
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Flash activity modes
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public enum FlashModes
+ {
+ NotFired = 0,
+ Fired = 1,
+ FiredButNoStrobeReturned = 5,
+ FiredAndStrobeReturned = 7
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Possible light sources (white balance)
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public enum LightSources
+ {
+ Unknown = 0,
+ Daylight = 1,
+ Fluorescent = 2,
+ Tungsten = 3,
+ Flash = 10,
+ StandardLightA = 17,
+ StandardLightB = 18,
+ StandardLightC = 19,
+ D55 = 20,
+ D65 = 21,
+ D75 = 22,
+ Other = 255
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Represents rational which is type of some Exif properties
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public struct Rational
+ {
+ public Int32 Numerator;
+
+ public Int32 Denominator;
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Converts rational to string representation
+ ///
+ /// Optional, default "/". String to be used as delimiter of components.
+ /// String representation of the rational.
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public new string ToString(string Delimiter = "/")
+ {
+ return Numerator + Delimiter + Denominator;
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Converts rational to double precision real number
+ ///
+ /// The rational as double precision real number.
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double ToDouble()
+ {
+ return Numerator / Denominator;
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Initializes new instance of this class.
+ ///
+ /// Bitmap to read exif information from
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public ExifReader(System.Drawing.Bitmap Bitmap)
+ {
+ if (Bitmap == null)
+ throw new ArgumentNullException("Bitmap");
+ this.Image = Bitmap;
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Returns all available data in formatted string form
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public override string ToString()
+ {
+ System.Text.StringBuilder SB = new System.Text.StringBuilder();
+
+ SB.Append("Image:");
+ SB.Append("\\n\\tDimensions: " + this.Width + " x " + this.Height + " px");
+ SB.Append("\\n\\tResolution: " + this.ResolutionX + " x " + this.ResolutionY + " dpi");
+ SB.Append("\\n\\tOrientation: " + Enum.GetName(typeof(Orientations), this.Orientation));
+ SB.Append("\\n\\tTitle: " + this.Title);
+ SB.Append("\\n\\tDescription: " + this.Description);
+ SB.Append("\\n\\tCopyright: " + this.Copyright);
+ SB.Append("\\nEquipment:");
+ SB.Append("\\n\\tMaker: " + this.EquipmentMaker);
+ SB.Append("\\n\\tModel: " + this.EquipmentModel);
+ SB.Append("\\n\\tSoftware: " + this.Software);
+ SB.Append("\\nDate and time:");
+ SB.Append("\\n\\tGeneral: " + this.DateTimeLastModified.ToString());
+ SB.Append("\\n\\tOriginal: " + this.DateTimeOriginal.ToString());
+ SB.Append("\\n\\tDigitized: " + this.DateTimeDigitized.ToString());
+ SB.Append("\\nShooting conditions:");
+ SB.Append("\\n\\tExposure time: " + this.ExposureTime.ToString("N4") + " s");
+ SB.Append("\\n\\tExposure program: " + Enum.GetName(typeof(ExposurePrograms), this.ExposureProgram));
+ SB.Append("\\n\\tExposure mode: " + Enum.GetName(typeof(ExposureMeteringModes), this.ExposureMeteringMode));
+ SB.Append("\\n\\tAperture: F" + this.Aperture.ToString("N2"));
+ SB.Append("\\n\\tISO sensitivity: " + this.ISO);
+ SB.Append("\\n\\tSubject distance: " + this.SubjectDistance.ToString("N2") + " m");
+ SB.Append("\\n\\tFocal length: " + this.FocalLength);
+ SB.Append("\\n\\tFlash: " + Enum.GetName(typeof(FlashModes), this.FlashMode));
+ SB.Append("\\n\\tLight source (WB): " + Enum.GetName(typeof(LightSources), this.LightSource));
+ SB.Append("\\n\\nCopyright (c) Michal A. Valasek - Altair Communications, 2003");
+ SB.Append("\\nhttp://software.altaircom.net * support@altaircom.net");
+
+ SB.Replace("\\n", System.Environment.NewLine);
+ SB.Replace("\\t", "\t");
+ return SB.ToString();
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Brand of equipment (EXIF EquipMake)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string EquipmentMaker
+ {
+ get { return this.GetPropertyString((int)TagNames.EquipMake); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Model of equipment (EXIF EquipModel)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string EquipmentModel
+ {
+ get { return this.GetPropertyString((int)TagNames.EquipModel); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Software used for processing (EXIF Software)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string Software
+ {
+ get { return this.GetPropertyString((int)TagNames.SoftwareUsed); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Orientation of image (position of row 0, column 0) (EXIF Orientation)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Orientations Orientation
+ {
+ get
+ {
+ Int32 X = this.GetPropertyInt16((int)TagNames.Orientation);
+
+ if (!Enum.IsDefined(typeof(Orientations), X))
+ {
+ return Orientations.TopLeft;
+ }
+ else
+ {
+ return (Orientations)Enum.Parse(typeof(Orientations), Enum.GetName(typeof(Orientations), X));
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Time when image was last modified (EXIF DateTime).
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public DateTime DateTimeLastModified
+ {
+ get
+ {
+ try
+ {
+ return DateTime.ParseExact(this.GetPropertyString((int)TagNames.DateTime), "yyyy\\:MM\\:dd HH\\:mm\\:ss", null);
+ }
+ catch (Exception ex)
+ {
+ return DateTime.MinValue;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Time when image was taken (EXIF DateTimeOriginal).
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public DateTime DateTimeOriginal
+ {
+ get
+ {
+ try
+ {
+ return DateTime.ParseExact(this.GetPropertyString((int)TagNames.ExifDTOrig), "yyyy\\:MM\\:dd HH\\:mm\\:ss", null);
+ }
+ catch (Exception ex)
+ {
+ return DateTime.MinValue;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Time when image was digitized (EXIF DateTimeDigitized).
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public DateTime DateTimeDigitized
+ {
+ get
+ {
+ try
+ {
+ return DateTime.ParseExact(this.GetPropertyString((int)TagNames.ExifDTDigitized), "yyyy\\:MM\\:dd HH\\:mm\\:ss", null);
+ }
+ catch (Exception ex)
+ {
+ return DateTime.MinValue;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Image width
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Int16 Width
+ {
+ get { return this.GetPropertyInt16((int)TagNames.ImageWidth); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Image height
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Int16 Height
+ {
+ get { return this.GetPropertyInt16((int)TagNames.ImageHeight); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// X resolution in dpi (EXIF XResolution/ResolutionUnit)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double ResolutionX
+ {
+ get
+ {
+ double R = this.GetPropertyRational((int)TagNames.XResolution).ToDouble();
+
+ if (this.GetPropertyInt16((int)TagNames.ResolutionUnit) == 3)
+ {
+ //-- resolution is in points/cm
+ return R * 2.54;
+ }
+ else
+ {
+ //-- resolution is in points/inch
+ return R;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Y resolution in dpi (EXIF YResolution/ResolutionUnit)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double ResolutionY
+ {
+ get
+ {
+ double R = this.GetPropertyRational((int)TagNames.YResolution).ToDouble();
+
+ if (this.GetPropertyInt16((int)TagNames.ResolutionUnit) == 3)
+ {
+ //-- resolution is in points/cm
+ return R * 2.54;
+ }
+ else
+ {
+ //-- resolution is in points/inch
+ return R;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Image title (EXIF ImageTitle)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string Title
+ {
+ get { return this.GetPropertyString((int)TagNames.ImageTitle); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Image description (EXIF ImageDescription)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string Description
+ {
+ get { return this.GetPropertyString((int)TagNames.ImageDescription); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Image copyright (EXIF Copyright)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string Copyright
+ {
+ get { return this.GetPropertyString((int)TagNames.Copyright); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Exposure time in seconds (EXIF ExifExposureTime/ExifShutterSpeed)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double ExposureTime
+ {
+ get
+ {
+ if (this.IsPropertyDefined((int)TagNames.ExifExposureTime))
+ {
+ //-- Exposure time is explicitly specified
+ return this.GetPropertyRational((int)TagNames.ExifExposureTime).ToDouble();
+ }
+ else if (this.IsPropertyDefined((int)TagNames.ExifShutterSpeed))
+ {
+ //-- Compute exposure time from shutter speed
+ return 1 / (Math.Pow(2, this.GetPropertyRational((int)TagNames.ExifShutterSpeed).ToDouble()));
+ }
+ else
+ {
+ //-- Can't figure out
+ return 0;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Aperture value as F number (EXIF ExifFNumber/ExifApertureValue)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double Aperture
+ {
+ get
+ {
+ if (this.IsPropertyDefined((int)TagNames.ExifFNumber))
+ {
+ return this.GetPropertyRational((int)TagNames.ExifFNumber).ToDouble();
+ }
+ else if (this.IsPropertyDefined((int)TagNames.ExifAperture))
+ {
+ return Math.Pow(System.Math.Sqrt(2), this.GetPropertyRational((int)TagNames.ExifAperture).ToDouble());
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Exposure program used (EXIF ExifExposureProg)
+ ///
+ ///
+ /// If not specified, returns Normal (2)
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public ExposurePrograms ExposureProgram
+ {
+ get
+ {
+ Int32 X = this.GetPropertyInt16((int)TagNames.ExifExposureProg);
+
+ if (Enum.IsDefined(typeof(ExposurePrograms), X))
+ {
+ return (ExposurePrograms)Enum.Parse(typeof(ExposurePrograms), Enum.GetName(typeof(ExposurePrograms), X));
+ }
+ else
+ {
+ return ExposurePrograms.Normal;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// ISO sensitivity
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Int16 ISO
+ {
+ get { return this.GetPropertyInt16((int)TagNames.ExifISOSpeed); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Subject distance in meters (EXIF SubjectDistance)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double SubjectDistance
+ {
+ get { return this.GetPropertyRational((int)TagNames.ExifSubjectDist).ToDouble(); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Exposure method metering mode used (EXIF MeteringMode)
+ ///
+ ///
+ /// If not specified, returns Unknown (0)
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public ExposureMeteringModes ExposureMeteringMode
+ {
+ get
+ {
+ Int32 X = this.GetPropertyInt16((int)TagNames.ExifMeteringMode);
+
+ if (Enum.IsDefined(typeof(ExposureMeteringModes), X))
+ {
+ return (ExposureMeteringModes)Enum.Parse(typeof(ExposureMeteringModes), Enum.GetName(typeof(ExposureMeteringModes), X));
+ }
+ else
+ {
+ return ExposureMeteringModes.Unknown;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Focal length of lenses in mm (EXIF FocalLength)
+ ///
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public double FocalLength
+ {
+ get { return this.GetPropertyRational((int)TagNames.ExifFocalLength).ToDouble(); }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Flash mode (EXIF Flash)
+ ///
+ ///
+ /// If not present, value NotFired (0) is returned
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public FlashModes FlashMode
+ {
+ get
+ {
+ Int32 X = this.GetPropertyInt16((int)TagNames.ExifFlash);
+
+ if (Enum.IsDefined(typeof(FlashModes), X))
+ {
+ return (FlashModes)Enum.Parse(typeof(FlashModes), Enum.GetName(typeof(FlashModes), X));
+ }
+ else
+ {
+ return FlashModes.NotFired;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Light source / white balance (EXIF LightSource)
+ ///
+ ///
+ /// If not specified, returns Unknown (0).
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public LightSources LightSource
+ {
+ get
+ {
+ Int32 X = this.GetPropertyInt16((int)TagNames.ExifLightSource);
+
+ if (Enum.IsDefined(typeof(LightSources), X))
+ {
+ return (LightSources)Enum.Parse(typeof(LightSources), Enum.GetName(typeof(LightSources), X));
+ }
+ else
+ {
+ return LightSources.Unknown;
+ }
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Checks if current image has specified certain property
+ ///
+ ///
+ /// True if image has specified property, False otherwise.
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public bool IsPropertyDefined(Int32 PID)
+ {
+ return Convert.ToBoolean(Array.IndexOf(this.Image.PropertyIdList, PID) > -1);
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Gets specified Int32 property
+ ///
+ /// Property ID
+ /// Optional, default 0. Default value returned if property is not present.
+ /// Value of property or DefaultValue if property is not present.
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Int32 GetPropertyInt32(Int32 PID, Int32 DefaultValue = 0)
+ {
+ if (this.IsPropertyDefined(PID))
+ {
+ return GetInt32(this.Image.GetPropertyItem(PID).Value);
+ }
+ else
+ {
+ return DefaultValue;
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Gets specified Int16 property
+ ///
+ /// Property ID
+ /// Optional, default 0. Default value returned if property is not present.
+ /// Value of property or DefaultValue if property is not present.
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Int16 GetPropertyInt16(Int32 PID, Int16 DefaultValue = 0)
+ {
+ if (this.IsPropertyDefined(PID))
+ {
+ return GetInt16(this.Image.GetPropertyItem(PID).Value);
+ }
+ else
+ {
+ return DefaultValue;
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Gets specified string property
+ ///
+ /// Property ID
+ /// Optional, default String.Empty. Default value returned if property is not present.
+ ///
+ /// Value of property or DefaultValue if property is not present.
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public string GetPropertyString(Int32 PID, string DefaultValue = "")
+ {
+ if (this.IsPropertyDefined(PID))
+ {
+ return GetString(this.Image.GetPropertyItem(PID).Value);
+ }
+ else
+ {
+ return DefaultValue;
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Gets specified rational property
+ ///
+ /// Property ID
+ ///
+ /// Value of property or 0/1 if not present.
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public Rational GetPropertyRational(Int32 PID)
+ {
+ if (this.IsPropertyDefined(PID))
+ {
+ return GetRational(this.Image.GetPropertyItem(PID).Value);
+ }
+ else
+ {
+ Rational R = default(Rational);
+ R.Numerator = 0;
+ R.Denominator = 1;
+ return R;
+ }
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Reads Int32 from EXIF bytearray.
+ ///
+ /// EXIF bytearray to process
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public static Int32 GetInt32(byte[] B)
+ {
+ if (B.Length < 4)
+ throw new ArgumentException("Data too short (4 bytes expected)", "B");
+ return B[3] << 24 | B[2] << 16 | B[1] << 8 | B[0];
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Reads Int16 from EXIF bytearray.
+ ///
+ /// EXIF bytearray to process
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public static Int16 GetInt16(byte[] B)
+ {
+ if (B.Length < 2)
+ throw new ArgumentException("Data too short (2 bytes expected)", "B");
+ return Convert.ToInt16(B[1] << 8 | B[0]);
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Reads string from EXIF bytearray.
+ ///
+ /// EXIF bytearray to process
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public static string GetString(byte[] B)
+ {
+ string R = System.Text.Encoding.ASCII.GetString(B);
+ if (R.EndsWith(string.Empty))
+ R = R.Substring(0, R.Length - 1);
+ return R;
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Reads rational from EXIF bytearray.
+ ///
+ /// EXIF bytearray to process
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public static Rational GetRational(byte[] B)
+ {
+ Rational R = new Rational();
+ byte[] N = new byte[4];
+ byte[] D = new byte[4];
+ Array.Copy(B, 0, N, 0, 4);
+ Array.Copy(B, 4, D, 0, 4);
+ R.Denominator = GetInt32(D);
+ R.Numerator = GetInt32(N);
+ return R;
+ }
+
+ ///-----------------------------------------------------------------------------
+ ///
+ /// Disposes unmanaged resources of this class
+ ///
+ ///
+ ///
+ /// [altair] 10.9.2003 Created
+ ///
+ ///-----------------------------------------------------------------------------
+ public void Dispose()
+ {
+ this.Image.Dispose();
+ }
+}
\ No newline at end of file
diff --git a/ImageCatalogCS/FileHelper.cs b/ImageCatalogCS/FileHelper.cs
new file mode 100644
index 0000000..0e68384
--- /dev/null
+++ b/ImageCatalogCS/FileHelper.cs
@@ -0,0 +1,173 @@
+using Microsoft.VisualBasic;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using System.IO;
+
+public class FileHelper
+{
+ //Private dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo)
+ private int filesPerFolder;
+ private string suffix;
+ private int counterSize;
+ private int numerationType;
+ private string filter;
+ private bool separateFiles;
+
+ private string extensions = "*.jpg,*.png,*.gif";
+
+ public enum numerazione
+ {
+ Progressiva,
+ Files
+ }
+ ///
+ /// Preparazione per la separazione
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public FileHelper(int filesPerFolder, string suffix, int counterSize, int numerationType)
+ {
+ this.filesPerFolder = filesPerFolder;
+ this.suffix = suffix;
+ this.counterSize = counterSize;
+ this.numerationType = numerationType;
+ this.separateFiles = true;
+ }
+
+ ///
+ /// nessuna separazione
+ ///
+ ///
+ public FileHelper()
+ {
+ this.separateFiles = false;
+ }
+
+
+ public Dictionary GetFilesRecursive(DirectoryInfo root, DirectoryInfo destRoot, string filter)
+ {
+ Dictionary dirSourceDest = new Dictionary();
+ List result = new List();
+
+ //Dim stack As New Stack(Of DirectoryInfo)
+ Stack> stack = new Stack>();
+
+
+ this.filter = filter;
+ KeyValuePair pair = new KeyValuePair();
+
+
+ //stack.Push(root)
+ stack.Push(new KeyValuePair(root, destRoot));
+
+ while ((stack.Count > 0))
+ {
+ KeyValuePair curDirKV = stack.Pop();
+ //curDirKP = stack.Pop()
+ DirectoryInfo dir = curDirKV.Key;
+ DirectoryInfo dDir = curDirKV.Value;
+ try
+ {
+ //result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
+ // dividere file qui
+ if (filesPerFolder > 0 & separateFiles)
+ {
+ appendDictionary(dirSourceDest, dividiFilesInDir(dir, dDir));
+ }
+ else
+ {
+ appendDictionary(dirSourceDest, getAllFilesInDir(dir, dDir));
+ }
+
+
+
+ foreach (DirectoryInfo subDirectory in dir.GetDirectories())
+ {
+ stack.Push(new KeyValuePair(subDirectory, new DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))));
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+
+ return dirSourceDest;
+ }
+
+ public Dictionary appendDictionary(Dictionary dictA, Dictionary dictB)
+ {
+ foreach (KeyValuePair pair in dictB)
+ {
+ dictA.Add(pair.Key, pair.Value);
+ }
+ return dictA;
+ }
+
+ public Dictionary getAllFilesInDir(DirectoryInfo dir, DirectoryInfo dirDest)
+ {
+ Dictionary dict = new Dictionary();
+ foreach (FileInfo File in dir.GetFiles(filter))
+ {
+ dict.Add(File, new DirectoryInfo(Path.Combine(dirDest.FullName, File.Name)));
+
+ }
+ return dict;
+ }
+
+ private Dictionary dividiFilesInDir(DirectoryInfo dir, DirectoryInfo dirDest)
+ {
+ int filesCount = dir.GetFiles(filter).Length;
+ int contaFilePerDir = 0;
+ int contaDirPerDir = 0;
+ string tempText = string.Empty;
+ Dictionary foldersDict = new Dictionary();
+
+ DirectoryInfo destDir = null;
+ destDir = new DirectoryInfo(Path.Combine(dirDest.FullName));
+
+ foreach (FileInfo file in dir.GetFiles(filter))
+ {
+ contaFilePerDir += 1;
+
+ if (contaFilePerDir == (contaDirPerDir * filesPerFolder) + 1)
+ {
+ contaDirPerDir += 1;
+
+ if (numerazione.Progressiva.Equals(numerationType))
+ {
+ tempText = contaDirPerDir.ToString();
+ }
+ else
+ {
+ tempText = (contaDirPerDir * filesPerFolder).ToString();
+ }
+ int i = 0;
+ for (i = 1; i <= (counterSize - tempText.Length); i++)
+ {
+ tempText = "0" + tempText;
+ }
+ destDir = new DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText));
+
+
+
+ }
+
+ if (!destDir.Exists)
+ {
+ destDir.Create();
+ }
+
+ foldersDict.Add(file, destDir);
+ }
+
+ return foldersDict;
+ }
+}
\ No newline at end of file
diff --git a/ImageCatalogCS/ImageCatalog 3.csproj b/ImageCatalogCS/ImageCatalog 3.csproj
new file mode 100644
index 0000000..e134fca
--- /dev/null
+++ b/ImageCatalogCS/ImageCatalog 3.csproj
@@ -0,0 +1,110 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {D11ED7B0-93E8-4F38-A142-EED72D7EE8B5}
+ WinExe
+ Properties
+ ImageCatalogCS
+ ImageCatalogCS
+ v4.5
+ 512
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ AboutForm.cs
+
+
+
+
+
+
+ Form
+
+
+ MainForm.cs
+
+
+
+
+
+
+
+
+ AboutForm.cs
+
+
+ MainForm.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImageCatalogCS/ImageCreator.cs b/ImageCatalogCS/ImageCreator.cs
new file mode 100644
index 0000000..3c03533
--- /dev/null
+++ b/ImageCatalogCS/ImageCreator.cs
@@ -0,0 +1,1057 @@
+using Microsoft.VisualBasic;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using System.IO;
+using System.Drawing.Drawing2D;
+using System.Drawing.Imaging;
+using System.Drawing;
+using ImageCatalogCS;
+using System.Windows.Forms;
+//using System.Drawing;
+//Imports System.Threading
+
+public class ImageCreator
+{
+ #region "dichiarazioni"
+
+
+ private bool FotoRuotaADestra = false;
+
+ private bool FotoRuotaASinistra = false;
+ private string TempMinText = "";
+ //Private crFont1 As Font
+
+ private string _NomeFileChild;
+ private DirectoryInfo _SourceDir;
+ private DirectoryInfo _DestDirStart;
+
+ private DirectoryInfo _DestDir;
+
+ private FileInfo _workFile;
+ private string testoFirma;
+ private string testoFirmaV;
+ private int alphaScelta;
+ private int DimensioneStandard;
+ private int DimensioneStandardMiniatura;
+ private DateTime dataFoto;
+ private DateTime dataPartenzaI;
+ private string testoOrario;
+ private string testoFirmaPiccola;
+ private Size thumbSizeSmall;
+ private Size thumbSizeBig;
+ private string nomeFileSmall;
+ private string nomeFileBig;
+
+ private string nomeFileBig2;
+ private float yPosFromBottom;
+ private float yPosFromBottom1;
+ private float yPosFromBottom2;
+ private float yPosFromBottom3;
+
+ private float yPosFromBottom4;
+
+ #endregion
+ public ImageCreator()
+ {
+ }
+
+ public ImageCreator(string nomeFileChild, DirectoryInfo sourceDir, DirectoryInfo destDir, DirectoryInfo destDirStart)
+ {
+ this._NomeFileChild = nomeFileChild;
+ this._SourceDir = sourceDir;
+ this._DestDir = destDir;
+ this._DestDirStart = destDirStart;
+ this._workFile = new FileInfo(nomeFileChild);
+ }
+
+ public ImageCreator(string nomeFileChild, DirectoryInfo sourceDir, DirectoryInfo destDir)
+ {
+ this._NomeFileChild = nomeFileChild;
+ this._DestDir = destDir;
+ }
+
+ public ImageCreator(FileInfo file, DirectoryInfo destination)
+ {
+ this._workFile = file;
+ this._DestDir = destination;
+
+ }
+
+
+
+ public void CreaImmagineThread(string Info)
+ {
+
+ try
+ {
+ preparaVariabili();
+ //Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(SourceDir.FullName, NomeFileChild))
+ System.Drawing.Image g = System.Drawing.Image.FromFile(WorkFile.FullName);
+
+ // Imposta testo extra
+ impostaTestoExtra(g);
+
+ // Ruota l'immagine in base ai dati EXIF
+ Rotation(ref g);
+
+ // Forza jpeg se è selezionata l'opzione
+ System.Drawing.Imaging.ImageFormat thisFormat = g.RawFormat;
+ if (PicSettings.UsaForzaJpg == true)
+ thisFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
+
+ prepareThumbnailSize(g);
+
+ Bitmap imgOutputBig = new Bitmap(g, thumbSizeBig.Width, thumbSizeBig.Height);
+ imgOutputBig.SetResolution(g.HorizontalResolution, g.VerticalResolution);
+
+ // Crea le miniature
+ creaMiniature(g, imgOutputBig, thisFormat);
+
+ aggiungiTesto(g, imgOutputBig);
+
+ aggiungiLogo(imgOutputBig);
+
+ salvaFoto(imgOutputBig, thumbSizeBig, nomeFileBig, nomeFileSmall, thumbSizeSmall, thisFormat);
+
+ g.Dispose();
+
+ GC.Collect();
+
+ //PicSettings.mainForm.stepProgressBar();
+
+
+ }
+ catch (Exception ex)
+ {
+
+ MessageBox.Show(ex.Message);
+
+
+ }
+
+
+
+ }
+
+
+ private void Rotation(ref System.Drawing.Image g)
+ {
+ FotoRuotaADestra = false;
+ FotoRuotaASinistra = false;
+
+ if (PicSettings.UsaRotazioneAutomatica)
+ {
+ // ci sono dati exif
+ if (g.PropertyIdList.Length > 0)
+ {
+ ExifReader DatiExif = new ExifReader((Bitmap)g);
+
+ switch (DatiExif.Orientation)
+ {
+ case ExifReader.Orientations.BottomLeft:
+
+ break;
+ case ExifReader.Orientations.BottomRight:
+
+ break;
+ case ExifReader.Orientations.LeftTop:
+
+ break;
+ case ExifReader.Orientations.LftBottom:
+ FotoRuotaASinistra = true;
+ break;
+ case ExifReader.Orientations.RightBottom:
+
+ break;
+ case ExifReader.Orientations.RightTop:
+
+ break;
+ case ExifReader.Orientations.TopLeft:
+
+ break;
+ case ExifReader.Orientations.TopRight:
+
+ break;
+ }
+ }
+ }
+
+ if (FotoRuotaASinistra == true)
+ {
+ g.RotateFlip(RotateFlipType.Rotate270FlipNone);
+ }
+ if (FotoRuotaADestra == true)
+ {
+ g.RotateFlip(RotateFlipType.Rotate90FlipNone);
+ }
+
+
+
+ }
+ ///
+ /// Aggiunge Orario, tempo gara e altri
+ ///
+ /// Image
+ ///
+ private void impostaTestoExtra(Image g)
+ {
+
+ if (PicSettings.UsaOrarioTestoApplicare | PicSettings.UsaTempoGaraTestoApplicare | PicSettings.UsaOrarioMiniatura | PicSettings.TestoMin | PicSettings.AggTempoGaraMin | PicSettings.AggNumTempMin)
+ {
+ // ci sono dati exif
+ if (g.PropertyIdList.Length > 0)
+ {
+ ExifReader DatiExif = new ExifReader((Bitmap)g);
+ dataFoto = DatiExif.DateTimeOriginal;
+ testoFirma = PicSettings.TestoFirmaStart;
+ testoFirmaV = PicSettings.TestoFirmaStartV;
+
+ if (dataFoto.Year != 1)
+ {
+ testoFirmaPiccola = dataFoto.ToShortTimeString();
+ if (PicSettings.UsaOrarioTestoApplicare == true)
+ {
+ testoFirma += " " + dataFoto.ToShortDateString() + " " + dataFoto.ToLongTimeString();
+ testoFirmaV += " " + dataFoto.ToShortDateString() + " " + dataFoto.ToLongTimeString();
+ }
+ if (PicSettings.UsaTempoGaraTestoApplicare == true)
+ {
+ TimeSpan Orario = dataFoto.Subtract(dataPartenzaI);
+
+
+ //TimeSpan Orario = new TimeSpan( DateAndTime.DateDiff(DateInterval.Second, dataPartenzaI, dataFoto) * 10000000);
+ testoFirma += " " + testoOrario + Orario.Hours.ToString("00") + ":" + Orario.Minutes.ToString("00") + ":" + Orario.Seconds.ToString("00");
+ testoFirmaV += " " + testoOrario + Orario.Hours.ToString("00") + ":" + Orario.Minutes.ToString("00") + ":" + Orario.Seconds.ToString("00");
+ }
+ }
+
+ }
+ }
+ else
+ {
+ testoFirma = PicSettings.TestoFirmaStart;
+ testoFirmaV = PicSettings.TestoFirmaStartV;
+
+ }
+ }
+
+ ///
+ /// Prepara diverse variabili azzerandole, elaborandole e prendendole dalle impostazioni
+ ///
+ ///
+ private void preparaVariabili()
+ {
+ alphaScelta = Convert.ToInt32((255 * (100 - PicSettings.Trasparenza) / 100));
+ testoFirma = "";
+ testoFirmaV = "";
+ dataPartenzaI = PicSettings.DataPartenza;
+ testoOrario = PicSettings.TestoOrario;
+ if (testoOrario.Length > 0)
+ testoOrario += " ";
+ testoFirmaPiccola = "";
+ thumbSizeSmall = new Size();
+ thumbSizeBig = new Size();
+ nomeFileSmall = "";
+ nomeFileBig2 = "";
+ nomeFileBig = "";
+ DimensioneStandard = PicSettings.dimStandard;
+ DimensioneStandardMiniatura = PicSettings.dimStandardMiniatura;
+ //nomeFileSmall = Suffisso & NomeFileChild
+ //nomeFileBig = NomeFileChild
+ nomeFileSmall = PicSettings.Suffisso + WorkFile.Name;
+ nomeFileBig = WorkFile.Name;
+ }
+
+ private void prepareThumbnailSize(Image g)
+ {
+ if (g.Width > g.Height)
+ {
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, PicSettings.LarghezzaSmall, "Larghezza");
+ Size SizeOrig = new Size(g.Width, g.Height);
+ thumbSizeBig = SizeOrig;
+ }
+ else
+ {
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, PicSettings.AltezzaSmall, "Altezza");
+ Size SizeOrig = new Size(g.Width, g.Height);
+ thumbSizeBig = SizeOrig;
+ }
+ }
+
+ private void creaMiniature(Image g, Bitmap imgOutputBig, ImageFormat thisFormat)
+ {
+ if (PicSettings.TestoMin)
+ {
+ testoFirmaPiccola = nomeFileBig;
+ }
+ else if (PicSettings.AggNumTempMin)
+ {
+ testoFirmaPiccola = nomeFileBig + " ";
+ }
+ //Dim yPosFromBottom4 As Single
+
+ Font crFont1 = null;
+ Font crFont2 = null;
+ SizeF crSize1 = new SizeF();
+ SizeF crSize2 = new SizeF();
+
+ if (PicSettings.CreaMiniature == true)
+ {
+ if (PicSettings.AggiungiScritteMiniature == false)
+ {
+ if (string.Equals(PicSettings.directorySorgente.ToUpper(),
+ PicSettings.directoryDestinazione.ToUpper()))
+ {
+ nomeFileSmall = nomeFileSmall.Substring(0, nomeFileSmall.Length - 4) + PicSettings.Codice + nomeFileSmall.Substring(nomeFileSmall.Length - 4);
+ }
+
+ if (PicSettings.UsaOrarioMiniatura | PicSettings.TestoMin | PicSettings.AggTempoGaraMin | PicSettings.AggNumTempMin)
+ {
+ if (testoFirmaPiccola.Length > 0)
+ {
+ Bitmap imgOutputSmall = default(Bitmap);
+ imgOutputSmall = (Bitmap)imgOutputBig.Clone();
+
+ Graphics grPhoto1 = default(Graphics);
+ grPhoto1 = Graphics.FromImage(imgOutputSmall);
+ grPhoto1.SmoothingMode = SmoothingMode.AntiAlias;
+
+ int LarghezzaStandard1 = 0;
+ //quick fix
+ DimensioneStandardMiniatura = 50;
+ if (PicSettings.Grassetto == true)
+ {
+ crFont1 = new Font(PicSettings.IlFont, DimensioneStandardMiniatura, FontStyle.Bold);
+ crFont2 = new Font(PicSettings.IlFont, DimensioneStandard, FontStyle.Bold);
+ }
+ else
+ {
+ crFont1 = new Font(PicSettings.IlFont, DimensioneStandardMiniatura);
+ crFont2 = new Font(PicSettings.IlFont, DimensioneStandard);
+ }
+
+ crSize1 = grPhoto1.MeasureString(testoFirmaPiccola, crFont1);
+ crSize2 = grPhoto1.MeasureString(testoFirma, crFont1);
+ LarghezzaStandard1 = Convert.ToInt32(crSize1.Width);
+
+ if (crSize1.Width > Convert.ToSingle(g.Width))
+ {
+ int Conta = DimensioneStandardMiniatura;
+ do
+ {
+ if (Conta > 20)
+ {
+ Conta -= 5;
+ }
+ else
+ {
+ Conta -= 1;
+ }
+ if (PicSettings.Grassetto == true)
+ {
+ crFont1 = new Font(PicSettings.IlFont, Conta, FontStyle.Bold);
+ }
+ else
+ {
+ crFont1 = new Font(PicSettings.IlFont, Conta);
+ }
+ crSize1 = grPhoto1.MeasureString(testoFirmaPiccola, crFont1);
+ if (crSize1.Width < Convert.ToSingle(g.Width))
+ {
+ LarghezzaStandard1 = Convert.ToInt32(crSize1.Width);
+ break; // TODO: might not be correct. Was : Exit Do
+ }
+ if (Conta <= 5)
+ break; // TODO: might not be correct. Was : Exit Do
+ } while (true);
+ DimensioneStandardMiniatura = Conta;
+ }
+
+ switch (PicSettings.Posizione.ToUpper())
+ {
+ case "ALTO":
+ yPosFromBottom1 = (PicSettings.Margine);
+ yPosFromBottom4 = (PicSettings.margVert);
+
+ break;
+ case "BASSO":
+ yPosFromBottom1 = Convert.ToSingle((g.Height - crSize1.Height - (g.Height * PicSettings.Margine / 100)));
+ yPosFromBottom4 = Convert.ToSingle((g.Height - crSize1.Height - (g.Height * PicSettings.margVert / 100)));
+
+ break;
+ }
+
+ float xCenterOfImg1 = 0;
+
+ StringFormat StrFormat1 = new StringFormat();
+ switch (PicSettings.Allineamento.ToUpper())
+ {
+ case "SINISTRA":
+ xCenterOfImg1 = Convert.ToSingle((PicSettings.Margine + (LarghezzaStandard1 / 2)));
+
+ if ((LarghezzaStandard1 / 2) > (g.Width / 2) - PicSettings.Margine)
+ {
+ xCenterOfImg1 = Convert.ToSingle((g.Width / 2));
+ }
+
+ break;
+
+ case "CENTRO":
+ xCenterOfImg1 = Convert.ToSingle((g.Width / 2));
+
+ break;
+
+ case "DESTRA":
+ xCenterOfImg1 = Convert.ToSingle((g.Width - PicSettings.Margine - (LarghezzaStandard1 / 2)));
+
+ if ((LarghezzaStandard1 / 2) > (g.Width / 2) - PicSettings.Margine)
+ {
+ xCenterOfImg1 = Convert.ToSingle((g.Width / 2));
+ }
+
+ break;
+
+ }
+ StrFormat1.Alignment = StringAlignment.Center;
+
+ SolidBrush semiTransBrush21 = new SolidBrush(Color.FromArgb(alphaScelta, 0, 0, 0));
+ SolidBrush semiTransBrush1 = new SolidBrush(Color.FromArgb(alphaScelta, PicSettings.fontColoreRGB));
+
+ //quick fix
+ DimensioneStandardMiniatura = PicSettings.DimMin;
+
+ if (PicSettings.Grassetto == true)
+ {
+ crFont1 = new Font(PicSettings.IlFont, DimensioneStandardMiniatura, FontStyle.Bold);
+ }
+ else
+ {
+ crFont1 = new Font(PicSettings.IlFont, DimensioneStandardMiniatura);
+ }
+ //asdgadfhdfhjgfsjgfjygfdhsdafa
+ if (PicSettings.TestoMin)
+ {
+ grPhoto1.DrawString(nomeFileBig, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1);
+ grPhoto1.DrawString(nomeFileBig, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1);
+ }
+ else if (PicSettings.AggTempoGaraMin & PicSettings.UsaTempoGaraTestoApplicare)
+ {
+ //TimeSpan Orario = new TimeSpan(DateAndTime.DateDiff(DateInterval.Second, dataPartenzaI, dataFoto) * 10000000);
+ TimeSpan Orario = dataFoto.Subtract(dataPartenzaI);
+ string tempstr = "";
+
+
+ tempstr += Environment.NewLine + testoOrario + Orario.Hours.ToString("00") + ":" + Orario.Minutes.ToString("00") + ":" + Orario.Seconds.ToString("00");
+
+
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1);
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1);
+
+ }
+ else if (PicSettings.AggNumTempMin)
+ {
+ TimeSpan Orario = dataFoto.Subtract(dataPartenzaI);
+ //TimeSpan Orario = new TimeSpan(DateAndTime.DateDiff(DateInterval.Second, dataPartenzaI, dataFoto) * 10000000);
+ string tempstr = "";
+ tempstr += nomeFileBig;
+
+ tempstr += Environment.NewLine + testoOrario + Orario.Hours.ToString("00") + ":" + Orario.Minutes.ToString("00") + ":" + Orario.Seconds.ToString("00");
+
+
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1);
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1);
+
+
+ }
+ else
+ {
+ grPhoto1.DrawString(testoFirmaPiccola, crFont1, semiTransBrush21, new PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1);
+ grPhoto1.DrawString(testoFirmaPiccola, crFont1, semiTransBrush1, new PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1);
+ }
+
+ // Salva la miniatura
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, "Temp_" + nomeFileSmall), thisFormat);
+ System.Drawing.Image g2 = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" + nomeFileSmall));
+ Bitmap imgOutputSmall2 = new Bitmap(g2, thumbSizeSmall.Width, thumbSizeSmall.Height);
+ imgOutputSmall2.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat);
+
+ imgOutputSmall2.Dispose();
+ imgOutputSmall.Dispose();
+ g2.Dispose();
+ File.Delete((Path.Combine(DestDir.FullName, "Temp_" + nomeFileSmall)));
+ }
+ else
+ {
+ Bitmap imgOutputSmall = new Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height);
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat);
+ imgOutputSmall.Dispose();
+ }
+ }
+ else
+ {
+ Bitmap imgOutputSmall = new Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height);
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat);
+ imgOutputSmall.Dispose();
+ }
+ }
+ }
+ }
+
+ private void aggiungiTesto(Image g, Bitmap imgOutputBig)
+ {
+ Graphics grPhoto = default(Graphics);
+ grPhoto = Graphics.FromImage(imgOutputBig);
+ grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
+
+ Font crFont = null;
+ SizeF crSize = new SizeF();
+ int LarghezzaStandard = 0;
+
+ if (PicSettings.Grassetto == true)
+ {
+ crFont = new Font(PicSettings.IlFont, DimensioneStandard, FontStyle.Bold);
+ }
+ else
+ {
+ crFont = new Font(PicSettings.IlFont, DimensioneStandard);
+ }
+ crSize = grPhoto.MeasureString(testoFirma, crFont);
+ LarghezzaStandard = Convert.ToInt32(crSize.Width);
+
+ if (crSize.Width > Convert.ToSingle(g.Width))
+ {
+ int Conta = DimensioneStandard;
+ do
+ {
+ if (Conta > 20)
+ {
+ Conta -= 5;
+ }
+ else
+ {
+ Conta -= 1;
+ }
+ if (PicSettings.Grassetto == true)
+ {
+ crFont = new Font(PicSettings.IlFont, Conta, FontStyle.Bold);
+ }
+ else
+ {
+ crFont = new Font(PicSettings.IlFont, Conta);
+ }
+ crSize = grPhoto.MeasureString(testoFirma, crFont);
+ if (crSize.Width < Convert.ToSingle(g.Width))
+ {
+ LarghezzaStandard = Convert.ToInt32(crSize.Width);
+ break; // TODO: might not be correct. Was : Exit Do
+ }
+ if (Conta <= 5)
+ break; // TODO: might not be correct. Was : Exit Do
+ } while (true);
+ DimensioneStandard = Conta;
+ }
+
+
+ switch (PicSettings.Posizione.ToUpper())
+ {
+ case "ALTO":
+ yPosFromBottom = (PicSettings.Margine);
+ yPosFromBottom3 = (PicSettings.margVert);
+
+ break;
+ case "BASSO":
+ yPosFromBottom = Convert.ToSingle((g.Height - crSize.Height - (g.Height * PicSettings.Margine / 100)));
+ yPosFromBottom3 = Convert.ToSingle((g.Height - crSize.Height - (g.Height * PicSettings.margVert / 100)));
+ break;
+ }
+
+ float xCenterOfImg = 0;
+ float xCenterOfImg3 = 0;
+ StringFormat StrFormat = new StringFormat();
+ switch (PicSettings.Allineamento.ToUpper())
+ {
+ case "SINISTRA":
+ xCenterOfImg = Convert.ToSingle((PicSettings.Margine + (LarghezzaStandard / 2)));
+ xCenterOfImg3 = Convert.ToSingle((PicSettings.margVert + (LarghezzaStandard / 2)));
+ if ((LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.Margine)
+ {
+ xCenterOfImg = Convert.ToSingle((g.Width / 2));
+ }
+ if ((LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.margVert)
+ {
+ xCenterOfImg3 = Convert.ToSingle((g.Width / 2));
+ }
+
+ break;
+ case "CENTRO":
+ xCenterOfImg = Convert.ToSingle((g.Width / 2));
+
+ break;
+ case "DESTRA":
+ xCenterOfImg = Convert.ToSingle((g.Width - PicSettings.Margine - (LarghezzaStandard / 2)));
+ xCenterOfImg3 = Convert.ToSingle((g.Width - PicSettings.margVert - (LarghezzaStandard / 2)));
+ if ((LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.Margine)
+ {
+ xCenterOfImg = Convert.ToSingle((g.Width / 2));
+ }
+ if ((LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.margVert)
+ {
+ xCenterOfImg3 = Convert.ToSingle((g.Width / 2));
+ }
+
+ break;
+ }
+ StrFormat.Alignment = StringAlignment.Center;
+
+ SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(alphaScelta, 0, 0, 0));
+ //Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
+ SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(alphaScelta, PicSettings.fontColoreRGB));
+
+
+ if (FotoRuotaADestra | FotoRuotaASinistra)
+ {
+ if (PicSettings.Grassetto == true)
+ {
+ crFont = new Font(PicSettings.IlFont, PicSettings.dimVert, FontStyle.Bold);
+ }
+ else
+ {
+ crFont = new Font(PicSettings.IlFont, PicSettings.dimVert);
+ }
+
+
+ }
+ else
+ {
+ if (PicSettings.Grassetto == true)
+ {
+ crFont = new Font(PicSettings.IlFont, DimensioneStandard, FontStyle.Bold);
+ }
+ else
+ {
+ crFont = new Font(PicSettings.IlFont, DimensioneStandard);
+ }
+ }
+
+
+ //qui scrive il testo (nomefilebig)
+ if (PicSettings.TestoNome)
+ {
+ if (PicSettings.NomeData & g.PropertyIdList.Length > 0)
+ {
+ ExifReader DatiExif = new ExifReader((Bitmap)g);
+ dataFoto = DatiExif.DateTimeOriginal;
+
+ grPhoto.DrawString((nomeFileBig + " " + dataFoto.ToShortDateString()), crFont, semiTransBrush2, new PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat);
+ grPhoto.DrawString((nomeFileBig + " " + dataFoto.ToShortDateString()), crFont, semiTransBrush, new PointF(xCenterOfImg, yPosFromBottom), StrFormat);
+ }
+ else
+ {
+ grPhoto.DrawString(nomeFileBig, crFont, semiTransBrush2, new PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat);
+ grPhoto.DrawString(nomeFileBig, crFont, semiTransBrush, new PointF(xCenterOfImg, yPosFromBottom), StrFormat);
+
+ }
+ }
+
+ if (PicSettings.TestoNome == false)
+ {
+ if (FotoRuotaADestra | FotoRuotaASinistra)
+ {
+
+ if (PicSettings.TestoMin == false)
+ {
+
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush2, new PointF(xCenterOfImg + 1, yPosFromBottom3 + 1), StrFormat);
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush, new PointF(xCenterOfImg, yPosFromBottom3), StrFormat);
+ }
+
+ if (PicSettings.TestoMin == true)
+ {
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush2, new PointF(xCenterOfImg + 1, yPosFromBottom4 + 1), StrFormat);
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush, new PointF(xCenterOfImg, yPosFromBottom4), StrFormat);
+
+ }
+ }
+ else
+ {
+ grPhoto.DrawString(testoFirma, crFont, semiTransBrush2, new PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat);
+ grPhoto.DrawString(testoFirma, crFont, semiTransBrush, new PointF(xCenterOfImg, yPosFromBottom), StrFormat);
+
+
+ }
+ }
+
+ if (PicSettings.directorySorgente.ToUpper() == PicSettings.directoryDestinazione.ToUpper())
+ {
+ nomeFileBig2 = nomeFileBig;
+ nomeFileBig = nomeFileBig.Substring(0, nomeFileBig.Length - 4) + PicSettings.Codice + nomeFileBig.Substring(nomeFileBig.Length - 4);
+ }
+ grPhoto.Dispose();
+ }
+
+
+
+
+ private void aggiungiLogo(Bitmap imgOutputBig)
+ {
+ //imgOutputBig
+
+ if (PicSettings.LogoAggiungi == true & File.Exists(PicSettings.LogoNomeFile))
+ {
+ Image ImmagineLogo = Image.FromFile(PicSettings.LogoNomeFile);
+
+ Color LogoColoreTrasparente = Color.White;
+ //Dim bmWatermark As Bitmap
+
+ //* Create a Bitmap based on the previously modified photograph Bitmap
+ //bmWatermark = New Bitmap(imgOutputBig)
+ //bmWatermark.SetResolution(imgOutputBig.HorizontalResolution, imgOutputBig.VerticalResolution)
+
+ //* Load this Bitmap into a new Graphic Object
+ Graphics grWatermark = Graphics.FromImage(imgOutputBig);
+
+ //* To achieve a translucent watermark we will apply (2) color manipulations
+ ImageAttributes imageAttributes = new ImageAttributes();
+
+ //* The first step replace the background color with one that is transparent (Alpha=0, R=0, G=0, B=0)
+ ColorMap colorMap = new ColorMap();
+
+ //* background this will be the color we search for and replace with transparency
+ colorMap.OldColor = LogoColoreTrasparente;
+ colorMap.NewColor = Color.FromArgb(0, 0, 0, 0);
+
+ ColorMap[] remapTable = { colorMap };
+ imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap);
+
+ //* The second color manipulation is used to change the opacity by setting the 3rd row and 3rd column to 0.3f
+ float[][] colorMatrixElements = {
+ new float[] {
+ 1f,
+ 0f,
+ 0f,
+ 0f,
+ 0f
+ },
+ new float[] {
+ 0f,
+ 1f,
+ 0f,
+ 0f,
+ 0f
+ },
+ new float[] {
+ 0f,
+ 0f,
+ 1f,
+ 0f,
+ 0f
+ },
+ new float[] {
+ 0f,
+ 0f,
+ 0f,
+ Convert.ToSingle(PicSettings.LogoTrasparenza) / 100,
+ 0f
+ },
+ new float[] {
+ 0f,
+ 0f,
+ 0f,
+ 0f,
+ 1f
+ }
+ };
+ ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements);
+ imageAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
+
+ int FotoLogoH = PicSettings.LogoAltezza;
+ int FotoLogoW = PicSettings.LogoLarghezza;
+ double FattoreAlt = ImmagineLogo.Height / FotoLogoH;
+ double FattoreLarg = ImmagineLogo.Width / FotoLogoW;
+ Size NuovaSize = default(Size);
+ if (FattoreLarg > FattoreAlt)
+ {
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoW, "Larghezza");
+ }
+ else
+ {
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoH, "Altezza");
+ }
+
+ int MargineUsato = 0;
+ int MargineL = 0;
+ bool InPercentualeL = false;
+ if (PicSettings.LogoMargine.EndsWith("%") == true)
+ {
+ InPercentualeL = true;
+ }
+ else
+ {
+ InPercentualeL = false;
+ }
+ MargineL = Convert.ToInt32(PicSettings.LogoMargine);
+ if (InPercentualeL == true)
+ {
+ MargineUsato = Convert.ToInt32(imgOutputBig.Height * MargineL / 100);
+ }
+ else
+ {
+ MargineUsato = MargineL;
+ }
+
+ int xPosOfWm = 0;
+ int yPosOfWm = 0;
+ switch (PicSettings.LogoPosizioneH.ToUpper())
+ {
+ case "SINISTRA":
+ case "NESSUNA":
+ xPosOfWm = MargineUsato;
+
+ break;
+ case "CENTRO":
+ xPosOfWm = Convert.ToInt32((imgOutputBig.Width - NuovaSize.Width) / 2);
+
+ break;
+ case "DESTRA":
+ xPosOfWm = ((imgOutputBig.Width - NuovaSize.Width) - MargineUsato);
+ break;
+ }
+ switch (PicSettings.LogoPosizioneV.ToUpper())
+ {
+ case "ALTO":
+ case "NESSUNA":
+ yPosOfWm = MargineUsato;
+
+ break;
+ case "CENTRO":
+ yPosOfWm = Convert.ToInt32((imgOutputBig.Height - NuovaSize.Height) / 2);
+
+ break;
+ case "BASSO":
+ yPosOfWm = ((imgOutputBig.Height - NuovaSize.Height) - MargineUsato);
+ break;
+ }
+
+ grWatermark.DrawImage(ImmagineLogo, new Rectangle(xPosOfWm, yPosOfWm, NuovaSize.Width, NuovaSize.Height), 0, 0, ImmagineLogo.Width, ImmagineLogo.Height, GraphicsUnit.Pixel, imageAttributes);
+ grWatermark.Dispose();
+ }
+ }
+
+
+
+ private void salvaFoto(Bitmap imgOutputBig, Size thumbSizeBig, string NomeFileBig, string NomeFileSmall, Size thumbSizeSmall, ImageFormat thisFormat)
+ {
+ if (PicSettings.FotoGrandeDimOrigina == false)
+ {
+ //attenzione non controlla se è png
+ //imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), thisFormat)
+ if (thisFormat.Equals(ImageFormat.Jpeg))
+ {
+ salvaImmagineCustomQuality(imgOutputBig, Path.Combine(DestDir.FullName, "Temp_" + NomeFileBig), PicSettings.jpegQuality);
+ }
+ else
+ {
+ imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" + NomeFileBig), thisFormat);
+ }
+
+
+ System.Drawing.Image g2 = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" + NomeFileBig));
+ if (g2.Width > g2.Height)
+ {
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, PicSettings.LarghezzaBig, "Larghezza");
+ }
+ else
+ {
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, PicSettings.AltezzaBig, "Altezza");
+ }
+ Bitmap imgOutputBig2 = new Bitmap(g2, thumbSizeBig.Width, thumbSizeBig.Height);
+ //
+ if (thisFormat.Equals(ImageFormat.Jpeg))
+ {
+ salvaImmagineCustomQuality(imgOutputBig2, Path.Combine(DestDir.FullName, NomeFileBig), PicSettings.jpegQuality);
+ }
+ else
+ {
+ imgOutputBig2.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat);
+ }
+
+ imgOutputBig2.Dispose();
+ imgOutputBig.Dispose();
+ g2.Dispose();
+ }
+ else
+ {
+ //
+ if (thisFormat.Equals(ImageFormat.Jpeg))
+ {
+ salvaImmagineCustomQuality(imgOutputBig, Path.Combine(DestDir.FullName, NomeFileBig), PicSettings.jpegQuality);
+ }
+ else
+ {
+ imgOutputBig.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat);
+ }
+
+ imgOutputBig.Dispose();
+ }
+
+
+ if (PicSettings.CreaMiniature)
+ {
+ if (PicSettings.AggiungiScritteMiniature == true)
+ {
+ System.Drawing.Image g1 = null;
+ if (PicSettings.FotoGrandeDimOrigina == false)
+ {
+ g1 = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" + NomeFileBig));
+ }
+ else
+ {
+ g1 = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, NomeFileBig));
+ }
+ Bitmap imgOutputSmall = new Bitmap(g1, thumbSizeSmall.Width, thumbSizeSmall.Height);
+ if (PicSettings.directorySorgente.ToUpper() == PicSettings.directoryDestinazione.ToUpper())
+ {
+ NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) + PicSettings.Codice + NomeFileSmall.Substring(NomeFileSmall.Length - 4);
+ }
+ //
+ if (thisFormat.Equals(ImageFormat.Jpeg))
+ {
+ salvaImmagineCustomQuality(imgOutputSmall, Path.Combine(DestDir.FullName, NomeFileSmall), PicSettings.jpegQualityMin);
+ }
+ else
+ {
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat);
+ }
+
+ imgOutputSmall.Dispose();
+ g1.Dispose();
+ }
+
+
+
+ }
+
+ if (File.Exists(Path.Combine(DestDir.FullName, "Temp_" + NomeFileBig)) == true)
+ {
+ File.Delete(Path.Combine(DestDir.FullName, "Temp_" + NomeFileBig));
+ }
+
+
+ }
+
+
+ private void salvaImmagineCustomQuality(Bitmap imageToSave, string nomeFileFinale, long quality)
+ {
+ ImageCodecInfo JgpEncoder = GetEncoder(ImageFormat.Jpeg);
+ Encoder MyEncoder = Encoder.Quality;
+
+ EncoderParameters MyEncoderParameters = new EncoderParameters(1);
+
+ EncoderParameter MyEncoderParameter = new EncoderParameter(MyEncoder, PicSettings.jpegQuality);
+ MyEncoderParameters.Param[0] = MyEncoderParameter;
+ imageToSave.Save(nomeFileFinale, JgpEncoder, MyEncoderParameters);
+ imageToSave.Dispose();
+ }
+
+
+
+ private ImageCodecInfo GetEncoder(ImageFormat format)
+ {
+
+ ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
+
+ ImageCodecInfo codec = null;
+ foreach (ImageCodecInfo codec_loopVariable in codecs)
+ {
+ codec = codec_loopVariable;
+ if (codec.FormatID == format.Guid)
+ {
+ return codec;
+ }
+ }
+ return null;
+
+ }
+
+
+
+
+
+
+ ///
+ /// Calculate the Size of the New image
+ ///
+ /// Larghezza
+ /// Altezza
+ ///
+ ///
+ ///
+ ///
+ private Size NewthumbSize(int currentwidth, int currentheight, int MaxPixel, string TipoSize)
+ {
+ // e
+ //*** Larghezza, Altezza, Auto
+
+ double tempMultiplier = 0;
+
+ if (TipoSize.ToUpper() == "Larghezza".ToUpper())
+ {
+ tempMultiplier = MaxPixel / currentwidth;
+ }
+ else if (TipoSize.ToUpper() == "Altezza".ToUpper())
+ {
+ tempMultiplier = MaxPixel / currentheight;
+ }
+ else
+ {
+ // portrait
+ if (currentheight > currentwidth)
+ {
+ tempMultiplier = MaxPixel / currentheight;
+ }
+ else
+ {
+ tempMultiplier = MaxPixel / currentwidth;
+ }
+ }
+
+ Size NewSize = new Size(Convert.ToInt32(currentwidth * tempMultiplier), Convert.ToInt32(currentheight * tempMultiplier));
+
+ return NewSize;
+ }
+
+ public FileInfo WorkFile
+ {
+ get { return _workFile; }
+ set { _workFile = value; }
+ }
+
+ public DirectoryInfo DestDir
+ {
+ get { return _DestDir; }
+ set { _DestDir = value; }
+ }
+
+ public DirectoryInfo SourceDir
+ {
+ get { return _SourceDir; }
+ set { _SourceDir = value; }
+ }
+
+ public DirectoryInfo DestDirStart
+ {
+ get { return _DestDirStart; }
+ set { _DestDirStart = value; }
+ }
+
+ public string NomeFileChild
+ {
+ get { return _NomeFileChild; }
+ set { _NomeFileChild = value; }
+ }
+
+
+}
\ No newline at end of file
diff --git a/ImageCatalogCS/MainForm.Designer.cs b/ImageCatalogCS/MainForm.Designer.cs
new file mode 100644
index 0000000..54b8132
--- /dev/null
+++ b/ImageCatalogCS/MainForm.Designer.cs
@@ -0,0 +1,1794 @@
+namespace ImageCatalogCS
+{
+ partial class MainForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.ProgressBar1 = new System.Windows.Forms.ProgressBar();
+ this.CheckBox22 = new System.Windows.Forms.CheckBox();
+ this.Label43 = new System.Windows.Forms.Label();
+ this.TabControl1 = new System.Windows.Forms.TabControl();
+ this.TabPage5 = new System.Windows.Forms.TabPage();
+ this.GroupBox11 = new System.Windows.Forms.GroupBox();
+ this.Label8 = new System.Windows.Forms.Label();
+ this.TextBox8 = new System.Windows.Forms.TextBox();
+ this.Label7 = new System.Windows.Forms.Label();
+ this.TextBox7 = new System.Windows.Forms.TextBox();
+ this.GroupBox3 = new System.Windows.Forms.GroupBox();
+ this.chkAggiornaSottodirectory = new System.Windows.Forms.CheckBox();
+ this.Button3 = new System.Windows.Forms.Button();
+ this.Button2 = new System.Windows.Forms.Button();
+ this.Label1 = new System.Windows.Forms.Label();
+ this.Label2 = new System.Windows.Forms.Label();
+ this.txtSorgente = new System.Windows.Forms.TextBox();
+ this.txtDestinazione = new System.Windows.Forms.TextBox();
+ this.GroupBox8 = new System.Windows.Forms.GroupBox();
+ this.rdbNumFiles = new System.Windows.Forms.RadioButton();
+ this.rdbNumProgressiva = new System.Windows.Forms.RadioButton();
+ this.txtCifreContatore = new System.Windows.Forms.TextBox();
+ this.Label34 = new System.Windows.Forms.Label();
+ this.txtSuffissoCartelle = new System.Windows.Forms.TextBox();
+ this.Label33 = new System.Windows.Forms.Label();
+ this.Label31 = new System.Windows.Forms.Label();
+ this.chkCreaSottocartelle = new System.Windows.Forms.CheckBox();
+ this.txtFilePerCartella = new System.Windows.Forms.TextBox();
+ this.Label32 = new System.Windows.Forms.Label();
+ this.GroupBox7 = new System.Windows.Forms.GroupBox();
+ this.chkSovrascriviFile = new System.Windows.Forms.CheckBox();
+ this.chkRotazioneAutomatica = new System.Windows.Forms.CheckBox();
+ this.chkForzaJpg = new System.Windows.Forms.CheckBox();
+ this.TabPage3 = new System.Windows.Forms.TabPage();
+ this.CheckBox2 = new System.Windows.Forms.CheckBox();
+ this.GroupBox10 = new System.Windows.Forms.GroupBox();
+ this.Label42 = new System.Windows.Forms.Label();
+ this.Label41 = new System.Windows.Forms.Label();
+ this.TextBox31 = new System.Windows.Forms.TextBox();
+ this.TextBox30 = new System.Windows.Forms.TextBox();
+ this.GroupBox9 = new System.Windows.Forms.GroupBox();
+ this.CheckBox17 = new System.Windows.Forms.CheckBox();
+ this.CheckBox16 = new System.Windows.Forms.CheckBox();
+ this.GroupBox5 = new System.Windows.Forms.GroupBox();
+ this.TextBox34 = new System.Windows.Forms.TextBox();
+ this.Button8 = new System.Windows.Forms.Button();
+ this.Label36 = new System.Windows.Forms.Label();
+ this.TextBox25 = new System.Windows.Forms.TextBox();
+ this.Label35 = new System.Windows.Forms.Label();
+ this.ComboBox3 = new System.Windows.Forms.ComboBox();
+ this.TextBox11 = new System.Windows.Forms.TextBox();
+ this.Label12 = new System.Windows.Forms.Label();
+ this.Label11 = new System.Windows.Forms.Label();
+ this.CheckBox3 = new System.Windows.Forms.CheckBox();
+ this.GroupBox4 = new System.Windows.Forms.GroupBox();
+ this.Label40 = new System.Windows.Forms.Label();
+ this.TextBox29 = new System.Windows.Forms.TextBox();
+ this.TextBox18 = new System.Windows.Forms.TextBox();
+ this.Label26 = new System.Windows.Forms.Label();
+ this.DateTimePicker1 = new System.Windows.Forms.DateTimePicker();
+ this.CheckBox8 = new System.Windows.Forms.CheckBox();
+ this.TextBox9 = new System.Windows.Forms.TextBox();
+ this.CheckBox7 = new System.Windows.Forms.CheckBox();
+ this.Label4 = new System.Windows.Forms.Label();
+ this.TextBox4 = new System.Windows.Forms.TextBox();
+ this.Label9 = new System.Windows.Forms.Label();
+ this.Label13 = new System.Windows.Forms.Label();
+ this.ComboBox1 = new System.Windows.Forms.ComboBox();
+ this.ComboBox2 = new System.Windows.Forms.ComboBox();
+ this.Label14 = new System.Windows.Forms.Label();
+ this.TextBox12 = new System.Windows.Forms.TextBox();
+ this.Label15 = new System.Windows.Forms.Label();
+ this.TabPage2 = new System.Windows.Forms.TabPage();
+ this.GroupBox2 = new System.Windows.Forms.GroupBox();
+ this.Label45 = new System.Windows.Forms.Label();
+ this.TextBox32 = new System.Windows.Forms.TextBox();
+ this.TextBox26 = new System.Windows.Forms.TextBox();
+ this.Label37 = new System.Windows.Forms.Label();
+ this.Label38 = new System.Windows.Forms.Label();
+ this.TextBox27 = new System.Windows.Forms.TextBox();
+ this.Label39 = new System.Windows.Forms.Label();
+ this.TextBox28 = new System.Windows.Forms.TextBox();
+ this.CheckBox15 = new System.Windows.Forms.CheckBox();
+ this.TabPage1 = new System.Windows.Forms.TabPage();
+ this.GroupBox1 = new System.Windows.Forms.GroupBox();
+ this.Label46 = new System.Windows.Forms.Label();
+ this.TextBox33 = new System.Windows.Forms.TextBox();
+ this.Panel2 = new System.Windows.Forms.Panel();
+ this.RadioButton3 = new System.Windows.Forms.RadioButton();
+ this.RadioButton7 = new System.Windows.Forms.RadioButton();
+ this.RadioButton4 = new System.Windows.Forms.RadioButton();
+ this.RadioButton6 = new System.Windows.Forms.RadioButton();
+ this.RadioButton5 = new System.Windows.Forms.RadioButton();
+ this.Label5 = new System.Windows.Forms.Label();
+ this.TextBox5 = new System.Windows.Forms.TextBox();
+ this.Label6 = new System.Windows.Forms.Label();
+ this.TextBox6 = new System.Windows.Forms.TextBox();
+ this.Label3 = new System.Windows.Forms.Label();
+ this.TextBox3 = new System.Windows.Forms.TextBox();
+ this.CheckBox1 = new System.Windows.Forms.CheckBox();
+ this.TabPage4 = new System.Windows.Forms.TabPage();
+ this.GroupBox6 = new System.Windows.Forms.GroupBox();
+ this.PictureBox2 = new System.Windows.Forms.PictureBox();
+ this.PictureBox1 = new System.Windows.Forms.PictureBox();
+ this.ComboBox5 = new System.Windows.Forms.ComboBox();
+ this.ComboBox4 = new System.Windows.Forms.ComboBox();
+ this.TextBox19 = new System.Windows.Forms.TextBox();
+ this.Label28 = new System.Windows.Forms.Label();
+ this.CheckBox5 = new System.Windows.Forms.CheckBox();
+ this.TextBox15 = new System.Windows.Forms.TextBox();
+ this.TextBox14 = new System.Windows.Forms.TextBox();
+ this.Label25 = new System.Windows.Forms.Label();
+ this.TextBox16 = new System.Windows.Forms.TextBox();
+ this.Label24 = new System.Windows.Forms.Label();
+ this.Label22 = new System.Windows.Forms.Label();
+ this.Label23 = new System.Windows.Forms.Label();
+ this.Button4 = new System.Windows.Forms.Button();
+ this.TextBox10 = new System.Windows.Forms.TextBox();
+ this.Label29 = new System.Windows.Forms.Label();
+ this.Label30 = new System.Windows.Forms.Label();
+ this.PictureBox3 = new System.Windows.Forms.PictureBox();
+ this.Label20 = new System.Windows.Forms.Label();
+ this.Label19 = new System.Windows.Forms.Label();
+ this.Label18 = new System.Windows.Forms.Label();
+ this.lblFotoTotaliNum = new System.Windows.Forms.Label();
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.caricaImpostazioniToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.salvaImpostazioniToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.creaCatalogoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.esciToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.aiutoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.informazioniToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.groupBox12 = new System.Windows.Forms.GroupBox();
+ this.btnStopCreazione = new System.Windows.Forms.Button();
+ this.lblLog = new System.Windows.Forms.ListBox();
+ this.txtFileInfo = new System.Windows.Forms.TextBox();
+ this.panelTesto = new System.Windows.Forms.Panel();
+ this.panelMiniature = new System.Windows.Forms.Panel();
+ this.TabControl1.SuspendLayout();
+ this.TabPage5.SuspendLayout();
+ this.GroupBox11.SuspendLayout();
+ this.GroupBox3.SuspendLayout();
+ this.GroupBox8.SuspendLayout();
+ this.GroupBox7.SuspendLayout();
+ this.TabPage3.SuspendLayout();
+ this.GroupBox10.SuspendLayout();
+ this.GroupBox9.SuspendLayout();
+ this.GroupBox5.SuspendLayout();
+ this.GroupBox4.SuspendLayout();
+ this.TabPage2.SuspendLayout();
+ this.GroupBox2.SuspendLayout();
+ this.TabPage1.SuspendLayout();
+ this.GroupBox1.SuspendLayout();
+ this.Panel2.SuspendLayout();
+ this.TabPage4.SuspendLayout();
+ this.GroupBox6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.PictureBox2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.PictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.PictureBox3)).BeginInit();
+ this.menuStrip1.SuspendLayout();
+ this.groupBox12.SuspendLayout();
+ this.panelTesto.SuspendLayout();
+ this.panelMiniature.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // ProgressBar1
+ //
+ this.ProgressBar1.Location = new System.Drawing.Point(16, 401);
+ this.ProgressBar1.Name = "ProgressBar1";
+ this.ProgressBar1.Size = new System.Drawing.Size(513, 13);
+ this.ProgressBar1.TabIndex = 81;
+ //
+ // CheckBox22
+ //
+ this.CheckBox22.AutoSize = true;
+ this.CheckBox22.Location = new System.Drawing.Point(6, 365);
+ this.CheckBox22.Name = "CheckBox22";
+ this.CheckBox22.Size = new System.Drawing.Size(104, 17);
+ this.CheckBox22.TabIndex = 80;
+ this.CheckBox22.Text = "Arresta il sistema";
+ this.CheckBox22.UseVisualStyleBackColor = true;
+ //
+ // Label43
+ //
+ this.Label43.AutoSize = true;
+ this.Label43.Location = new System.Drawing.Point(3, 349);
+ this.Label43.Name = "Label43";
+ this.Label43.Size = new System.Drawing.Size(25, 13);
+ this.Label43.TabIndex = 79;
+ this.Label43.Text = "000";
+ this.Label43.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // TabControl1
+ //
+ this.TabControl1.Controls.Add(this.TabPage5);
+ this.TabControl1.Controls.Add(this.TabPage3);
+ this.TabControl1.Controls.Add(this.TabPage2);
+ this.TabControl1.Controls.Add(this.TabPage1);
+ this.TabControl1.Controls.Add(this.TabPage4);
+ this.TabControl1.Location = new System.Drawing.Point(12, 27);
+ this.TabControl1.Name = "TabControl1";
+ this.TabControl1.SelectedIndex = 0;
+ this.TabControl1.Size = new System.Drawing.Size(521, 372);
+ this.TabControl1.TabIndex = 78;
+ //
+ // TabPage5
+ //
+ this.TabPage5.Controls.Add(this.GroupBox11);
+ this.TabPage5.Controls.Add(this.GroupBox3);
+ this.TabPage5.Controls.Add(this.GroupBox8);
+ this.TabPage5.Controls.Add(this.GroupBox7);
+ this.TabPage5.Location = new System.Drawing.Point(4, 22);
+ this.TabPage5.Name = "TabPage5";
+ this.TabPage5.Padding = new System.Windows.Forms.Padding(3);
+ this.TabPage5.Size = new System.Drawing.Size(513, 346);
+ this.TabPage5.TabIndex = 4;
+ this.TabPage5.Text = "Generale";
+ this.TabPage5.UseVisualStyleBackColor = true;
+ //
+ // GroupBox11
+ //
+ this.GroupBox11.Controls.Add(this.Label8);
+ this.GroupBox11.Controls.Add(this.TextBox8);
+ this.GroupBox11.Controls.Add(this.Label7);
+ this.GroupBox11.Controls.Add(this.TextBox7);
+ this.GroupBox11.Location = new System.Drawing.Point(7, 209);
+ this.GroupBox11.Name = "GroupBox11";
+ this.GroupBox11.Size = new System.Drawing.Size(191, 132);
+ this.GroupBox11.TabIndex = 48;
+ this.GroupBox11.TabStop = false;
+ this.GroupBox11.Text = "Avanzate (ATTENZIONE)";
+ //
+ // Label8
+ //
+ this.Label8.AutoSize = true;
+ this.Label8.Location = new System.Drawing.Point(64, 26);
+ this.Label8.Name = "Label8";
+ this.Label8.Size = new System.Drawing.Size(61, 13);
+ this.Label8.TabIndex = 3;
+ this.Label8.Text = "Min Thread";
+ //
+ // TextBox8
+ //
+ this.TextBox8.Location = new System.Drawing.Point(7, 20);
+ this.TextBox8.Name = "TextBox8";
+ this.TextBox8.Size = new System.Drawing.Size(47, 20);
+ this.TextBox8.TabIndex = 2;
+ this.TextBox8.Text = "5";
+ //
+ // Label7
+ //
+ this.Label7.AutoSize = true;
+ this.Label7.Location = new System.Drawing.Point(61, 48);
+ this.Label7.Name = "Label7";
+ this.Label7.Size = new System.Drawing.Size(64, 13);
+ this.Label7.TabIndex = 1;
+ this.Label7.Text = "Max Thread";
+ //
+ // TextBox7
+ //
+ this.TextBox7.Location = new System.Drawing.Point(7, 46);
+ this.TextBox7.Name = "TextBox7";
+ this.TextBox7.Size = new System.Drawing.Size(47, 20);
+ this.TextBox7.TabIndex = 0;
+ this.TextBox7.Text = "15";
+ //
+ // GroupBox3
+ //
+ this.GroupBox3.Controls.Add(this.chkAggiornaSottodirectory);
+ this.GroupBox3.Controls.Add(this.Button3);
+ this.GroupBox3.Controls.Add(this.Button2);
+ this.GroupBox3.Controls.Add(this.Label1);
+ this.GroupBox3.Controls.Add(this.Label2);
+ this.GroupBox3.Controls.Add(this.txtSorgente);
+ this.GroupBox3.Controls.Add(this.txtDestinazione);
+ this.GroupBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox3.Location = new System.Drawing.Point(6, 6);
+ this.GroupBox3.Name = "GroupBox3";
+ this.GroupBox3.Size = new System.Drawing.Size(496, 101);
+ this.GroupBox3.TabIndex = 35;
+ this.GroupBox3.TabStop = false;
+ this.GroupBox3.Text = "Directory";
+ //
+ // chkAggiornaSottodirectory
+ //
+ this.chkAggiornaSottodirectory.ForeColor = System.Drawing.Color.Black;
+ this.chkAggiornaSottodirectory.Location = new System.Drawing.Point(80, 64);
+ this.chkAggiornaSottodirectory.Name = "chkAggiornaSottodirectory";
+ this.chkAggiornaSottodirectory.Size = new System.Drawing.Size(152, 24);
+ this.chkAggiornaSottodirectory.TabIndex = 25;
+ this.chkAggiornaSottodirectory.Text = "aggiorna le sottodirectory";
+ //
+ // Button3
+ //
+ this.Button3.Location = new System.Drawing.Point(462, 40);
+ this.Button3.Name = "Button3";
+ this.Button3.Size = new System.Drawing.Size(24, 20);
+ this.Button3.TabIndex = 6;
+ this.Button3.Text = "...";
+ //
+ // Button2
+ //
+ this.Button2.Location = new System.Drawing.Point(462, 16);
+ this.Button2.Name = "Button2";
+ this.Button2.Size = new System.Drawing.Size(24, 20);
+ this.Button2.TabIndex = 5;
+ this.Button2.Text = "...";
+ //
+ // Label1
+ //
+ this.Label1.AutoSize = true;
+ this.Label1.ForeColor = System.Drawing.Color.Black;
+ this.Label1.Location = new System.Drawing.Point(6, 19);
+ this.Label1.Name = "Label1";
+ this.Label1.Size = new System.Drawing.Size(50, 13);
+ this.Label1.TabIndex = 3;
+ this.Label1.Text = "Sorgente";
+ //
+ // Label2
+ //
+ this.Label2.AutoSize = true;
+ this.Label2.ForeColor = System.Drawing.Color.Black;
+ this.Label2.Location = new System.Drawing.Point(6, 43);
+ this.Label2.Name = "Label2";
+ this.Label2.Size = new System.Drawing.Size(68, 13);
+ this.Label2.TabIndex = 4;
+ this.Label2.Text = "Destinazione";
+ //
+ // txtSorgente
+ //
+ this.txtSorgente.Location = new System.Drawing.Point(80, 16);
+ this.txtSorgente.Name = "txtSorgente";
+ this.txtSorgente.Size = new System.Drawing.Size(376, 20);
+ this.txtSorgente.TabIndex = 0;
+ this.txtSorgente.Text = "TextBox1";
+ //
+ // txtDestinazione
+ //
+ this.txtDestinazione.Location = new System.Drawing.Point(80, 40);
+ this.txtDestinazione.Name = "txtDestinazione";
+ this.txtDestinazione.Size = new System.Drawing.Size(376, 20);
+ this.txtDestinazione.TabIndex = 1;
+ this.txtDestinazione.Text = "TextBox2";
+ //
+ // GroupBox8
+ //
+ this.GroupBox8.Controls.Add(this.rdbNumFiles);
+ this.GroupBox8.Controls.Add(this.rdbNumProgressiva);
+ this.GroupBox8.Controls.Add(this.txtCifreContatore);
+ this.GroupBox8.Controls.Add(this.Label34);
+ this.GroupBox8.Controls.Add(this.txtSuffissoCartelle);
+ this.GroupBox8.Controls.Add(this.Label33);
+ this.GroupBox8.Controls.Add(this.Label31);
+ this.GroupBox8.Controls.Add(this.chkCreaSottocartelle);
+ this.GroupBox8.Controls.Add(this.txtFilePerCartella);
+ this.GroupBox8.Controls.Add(this.Label32);
+ this.GroupBox8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox8.Location = new System.Drawing.Point(204, 113);
+ this.GroupBox8.Name = "GroupBox8";
+ this.GroupBox8.Size = new System.Drawing.Size(192, 152);
+ this.GroupBox8.TabIndex = 47;
+ this.GroupBox8.TabStop = false;
+ this.GroupBox8.Text = "Sottocartelle";
+ //
+ // rdbNumFiles
+ //
+ this.rdbNumFiles.ForeColor = System.Drawing.Color.Black;
+ this.rdbNumFiles.Location = new System.Drawing.Point(32, 128);
+ this.rdbNumFiles.Name = "rdbNumFiles";
+ this.rdbNumFiles.Size = new System.Drawing.Size(136, 16);
+ this.rdbNumFiles.TabIndex = 38;
+ this.rdbNumFiles.Text = "Numerazione files";
+ //
+ // rdbNumProgressiva
+ //
+ this.rdbNumProgressiva.Checked = true;
+ this.rdbNumProgressiva.ForeColor = System.Drawing.Color.Black;
+ this.rdbNumProgressiva.Location = new System.Drawing.Point(32, 112);
+ this.rdbNumProgressiva.Name = "rdbNumProgressiva";
+ this.rdbNumProgressiva.Size = new System.Drawing.Size(152, 16);
+ this.rdbNumProgressiva.TabIndex = 37;
+ this.rdbNumProgressiva.TabStop = true;
+ this.rdbNumProgressiva.Text = "Numerazione progressiva";
+ //
+ // txtCifreContatore
+ //
+ this.txtCifreContatore.Location = new System.Drawing.Point(128, 88);
+ this.txtCifreContatore.Name = "txtCifreContatore";
+ this.txtCifreContatore.Size = new System.Drawing.Size(56, 20);
+ this.txtCifreContatore.TabIndex = 34;
+ this.txtCifreContatore.Text = "4";
+ //
+ // Label34
+ //
+ this.Label34.ForeColor = System.Drawing.Color.Black;
+ this.Label34.Location = new System.Drawing.Point(8, 88);
+ this.Label34.Name = "Label34";
+ this.Label34.Size = new System.Drawing.Size(112, 16);
+ this.Label34.TabIndex = 33;
+ this.Label34.Text = "Num. cifre contatore";
+ this.Label34.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // txtSuffissoCartelle
+ //
+ this.txtSuffissoCartelle.Location = new System.Drawing.Point(56, 64);
+ this.txtSuffissoCartelle.Name = "txtSuffissoCartelle";
+ this.txtSuffissoCartelle.Size = new System.Drawing.Size(128, 20);
+ this.txtSuffissoCartelle.TabIndex = 32;
+ this.txtSuffissoCartelle.Text = "TextBox20";
+ //
+ // Label33
+ //
+ this.Label33.ForeColor = System.Drawing.Color.Black;
+ this.Label33.Location = new System.Drawing.Point(6, 67);
+ this.Label33.Name = "Label33";
+ this.Label33.Size = new System.Drawing.Size(48, 16);
+ this.Label33.TabIndex = 31;
+ this.Label33.Text = "Suffisso";
+ //
+ // Label31
+ //
+ this.Label31.ForeColor = System.Drawing.Color.Black;
+ this.Label31.Location = new System.Drawing.Point(24, 40);
+ this.Label31.Name = "Label31";
+ this.Label31.Size = new System.Drawing.Size(32, 16);
+ this.Label31.TabIndex = 30;
+ this.Label31.Text = "ogni";
+ //
+ // chkCreaSottocartelle
+ //
+ this.chkCreaSottocartelle.ForeColor = System.Drawing.Color.Black;
+ this.chkCreaSottocartelle.Location = new System.Drawing.Point(56, 16);
+ this.chkCreaSottocartelle.Name = "chkCreaSottocartelle";
+ this.chkCreaSottocartelle.Size = new System.Drawing.Size(112, 16);
+ this.chkCreaSottocartelle.TabIndex = 29;
+ this.chkCreaSottocartelle.Text = "crea sottocartelle";
+ //
+ // txtFilePerCartella
+ //
+ this.txtFilePerCartella.Location = new System.Drawing.Point(56, 40);
+ this.txtFilePerCartella.Name = "txtFilePerCartella";
+ this.txtFilePerCartella.Size = new System.Drawing.Size(64, 20);
+ this.txtFilePerCartella.TabIndex = 27;
+ this.txtFilePerCartella.Text = "99";
+ //
+ // Label32
+ //
+ this.Label32.ForeColor = System.Drawing.Color.Black;
+ this.Label32.Location = new System.Drawing.Point(128, 40);
+ this.Label32.Name = "Label32";
+ this.Label32.Size = new System.Drawing.Size(24, 16);
+ this.Label32.TabIndex = 28;
+ this.Label32.Text = "file";
+ //
+ // GroupBox7
+ //
+ this.GroupBox7.Controls.Add(this.chkSovrascriviFile);
+ this.GroupBox7.Controls.Add(this.chkRotazioneAutomatica);
+ this.GroupBox7.Controls.Add(this.chkForzaJpg);
+ this.GroupBox7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox7.Location = new System.Drawing.Point(6, 113);
+ this.GroupBox7.Name = "GroupBox7";
+ this.GroupBox7.Size = new System.Drawing.Size(192, 88);
+ this.GroupBox7.TabIndex = 45;
+ this.GroupBox7.TabStop = false;
+ this.GroupBox7.Text = "Generale";
+ //
+ // chkSovrascriviFile
+ //
+ this.chkSovrascriviFile.AutoSize = true;
+ this.chkSovrascriviFile.Location = new System.Drawing.Point(16, 61);
+ this.chkSovrascriviFile.Name = "chkSovrascriviFile";
+ this.chkSovrascriviFile.Size = new System.Drawing.Size(94, 17);
+ this.chkSovrascriviFile.TabIndex = 2;
+ this.chkSovrascriviFile.Text = "Sovrascrivi file";
+ this.chkSovrascriviFile.UseVisualStyleBackColor = true;
+ //
+ // chkRotazioneAutomatica
+ //
+ this.chkRotazioneAutomatica.ForeColor = System.Drawing.Color.Black;
+ this.chkRotazioneAutomatica.Location = new System.Drawing.Point(16, 39);
+ this.chkRotazioneAutomatica.Name = "chkRotazioneAutomatica";
+ this.chkRotazioneAutomatica.Size = new System.Drawing.Size(136, 16);
+ this.chkRotazioneAutomatica.TabIndex = 1;
+ this.chkRotazioneAutomatica.Text = "Rotazione automatica";
+ //
+ // chkForzaJpg
+ //
+ this.chkForzaJpg.Checked = true;
+ this.chkForzaJpg.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.chkForzaJpg.ForeColor = System.Drawing.Color.Black;
+ this.chkForzaJpg.Location = new System.Drawing.Point(16, 18);
+ this.chkForzaJpg.Name = "chkForzaJpg";
+ this.chkForzaJpg.Size = new System.Drawing.Size(80, 16);
+ this.chkForzaJpg.TabIndex = 0;
+ this.chkForzaJpg.Text = "Forza Jpg";
+ //
+ // TabPage3
+ //
+ this.TabPage3.Controls.Add(this.panelTesto);
+ this.TabPage3.Controls.Add(this.CheckBox2);
+ this.TabPage3.Location = new System.Drawing.Point(4, 22);
+ this.TabPage3.Name = "TabPage3";
+ this.TabPage3.Padding = new System.Windows.Forms.Padding(3);
+ this.TabPage3.Size = new System.Drawing.Size(513, 346);
+ this.TabPage3.TabIndex = 2;
+ this.TabPage3.Text = "Testo";
+ this.TabPage3.UseVisualStyleBackColor = true;
+ //
+ // CheckBox2
+ //
+ this.CheckBox2.AutoSize = true;
+ this.CheckBox2.Location = new System.Drawing.Point(7, 8);
+ this.CheckBox2.Name = "CheckBox2";
+ this.CheckBox2.Size = new System.Drawing.Size(93, 17);
+ this.CheckBox2.TabIndex = 40;
+ this.CheckBox2.Text = "Aggiungi testo";
+ this.CheckBox2.UseVisualStyleBackColor = true;
+ this.CheckBox2.CheckedChanged += new System.EventHandler(this.CheckBox2_CheckedChanged);
+ //
+ // GroupBox10
+ //
+ this.GroupBox10.Controls.Add(this.Label42);
+ this.GroupBox10.Controls.Add(this.Label41);
+ this.GroupBox10.Controls.Add(this.TextBox31);
+ this.GroupBox10.Controls.Add(this.TextBox30);
+ this.GroupBox10.Location = new System.Drawing.Point(313, 50);
+ this.GroupBox10.Name = "GroupBox10";
+ this.GroupBox10.Size = new System.Drawing.Size(186, 73);
+ this.GroupBox10.TabIndex = 39;
+ this.GroupBox10.TabStop = false;
+ this.GroupBox10.Text = "Testo foto verticali";
+ //
+ // Label42
+ //
+ this.Label42.AutoSize = true;
+ this.Label42.Location = new System.Drawing.Point(7, 46);
+ this.Label42.Name = "Label42";
+ this.Label42.Size = new System.Drawing.Size(45, 13);
+ this.Label42.TabIndex = 3;
+ this.Label42.Text = "Margine";
+ //
+ // Label41
+ //
+ this.Label41.AutoSize = true;
+ this.Label41.Location = new System.Drawing.Point(7, 25);
+ this.Label41.Name = "Label41";
+ this.Label41.Size = new System.Drawing.Size(108, 13);
+ this.Label41.TabIndex = 2;
+ this.Label41.Text = "Dimensione Carattere";
+ //
+ // TextBox31
+ //
+ this.TextBox31.Location = new System.Drawing.Point(131, 46);
+ this.TextBox31.Name = "TextBox31";
+ this.TextBox31.Size = new System.Drawing.Size(39, 20);
+ this.TextBox31.TabIndex = 1;
+ //
+ // TextBox30
+ //
+ this.TextBox30.Location = new System.Drawing.Point(131, 22);
+ this.TextBox30.Name = "TextBox30";
+ this.TextBox30.Size = new System.Drawing.Size(39, 20);
+ this.TextBox30.TabIndex = 0;
+ //
+ // GroupBox9
+ //
+ this.GroupBox9.Controls.Add(this.CheckBox17);
+ this.GroupBox9.Controls.Add(this.CheckBox16);
+ this.GroupBox9.Location = new System.Drawing.Point(313, 3);
+ this.GroupBox9.Name = "GroupBox9";
+ this.GroupBox9.Size = new System.Drawing.Size(186, 45);
+ this.GroupBox9.TabIndex = 38;
+ this.GroupBox9.TabStop = false;
+ this.GroupBox9.Text = "Slide show";
+ //
+ // CheckBox17
+ //
+ this.CheckBox17.AutoSize = true;
+ this.CheckBox17.Location = new System.Drawing.Point(96, 18);
+ this.CheckBox17.Name = "CheckBox17";
+ this.CheckBox17.Size = new System.Drawing.Size(84, 17);
+ this.CheckBox17.TabIndex = 1;
+ this.CheckBox17.Text = "Numero foto";
+ this.CheckBox17.UseVisualStyleBackColor = true;
+ //
+ // CheckBox16
+ //
+ this.CheckBox16.AutoSize = true;
+ this.CheckBox16.Location = new System.Drawing.Point(6, 19);
+ this.CheckBox16.Name = "CheckBox16";
+ this.CheckBox16.Size = new System.Drawing.Size(49, 17);
+ this.CheckBox16.TabIndex = 0;
+ this.CheckBox16.Text = "Data";
+ this.CheckBox16.UseVisualStyleBackColor = true;
+ //
+ // GroupBox5
+ //
+ this.GroupBox5.Controls.Add(this.TextBox34);
+ this.GroupBox5.Controls.Add(this.Button8);
+ this.GroupBox5.Controls.Add(this.Label36);
+ this.GroupBox5.Controls.Add(this.TextBox25);
+ this.GroupBox5.Controls.Add(this.Label35);
+ this.GroupBox5.Controls.Add(this.ComboBox3);
+ this.GroupBox5.Controls.Add(this.TextBox11);
+ this.GroupBox5.Controls.Add(this.Label12);
+ this.GroupBox5.Controls.Add(this.Label11);
+ this.GroupBox5.Controls.Add(this.CheckBox3);
+ this.GroupBox5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox5.Location = new System.Drawing.Point(3, 3);
+ this.GroupBox5.Name = "GroupBox5";
+ this.GroupBox5.Size = new System.Drawing.Size(304, 120);
+ this.GroupBox5.TabIndex = 37;
+ this.GroupBox5.TabStop = false;
+ this.GroupBox5.Text = "Carattere";
+ //
+ // TextBox34
+ //
+ this.TextBox34.Location = new System.Drawing.Point(160, 91);
+ this.TextBox34.Name = "TextBox34";
+ this.TextBox34.Size = new System.Drawing.Size(56, 20);
+ this.TextBox34.TabIndex = 36;
+ this.TextBox34.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+ //
+ // Button8
+ //
+ this.Button8.ForeColor = System.Drawing.Color.Black;
+ this.Button8.Location = new System.Drawing.Point(222, 89);
+ this.Button8.Name = "Button8";
+ this.Button8.Size = new System.Drawing.Size(74, 24);
+ this.Button8.TabIndex = 35;
+ this.Button8.Text = "Scegli...";
+ //
+ // Label36
+ //
+ this.Label36.ForeColor = System.Drawing.Color.Black;
+ this.Label36.Location = new System.Drawing.Point(8, 60);
+ this.Label36.Name = "Label36";
+ this.Label36.Size = new System.Drawing.Size(120, 19);
+ this.Label36.TabIndex = 34;
+ this.Label36.Text = "Dimensione miniatura";
+ this.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // TextBox25
+ //
+ this.TextBox25.Location = new System.Drawing.Point(160, 59);
+ this.TextBox25.Name = "TextBox25";
+ this.TextBox25.Size = new System.Drawing.Size(56, 20);
+ this.TextBox25.TabIndex = 33;
+ this.TextBox25.Text = "TextBox25";
+ //
+ // Label35
+ //
+ this.Label35.ForeColor = System.Drawing.Color.Black;
+ this.Label35.Location = new System.Drawing.Point(8, 93);
+ this.Label35.Name = "Label35";
+ this.Label35.Size = new System.Drawing.Size(72, 16);
+ this.Label35.TabIndex = 32;
+ this.Label35.Text = "Colore RGB";
+ this.Label35.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // ComboBox3
+ //
+ this.ComboBox3.Location = new System.Drawing.Point(96, 8);
+ this.ComboBox3.Name = "ComboBox3";
+ this.ComboBox3.Size = new System.Drawing.Size(120, 21);
+ this.ComboBox3.TabIndex = 28;
+ this.ComboBox3.Text = "ComboBox3";
+ //
+ // TextBox11
+ //
+ this.TextBox11.Location = new System.Drawing.Point(160, 35);
+ this.TextBox11.Name = "TextBox11";
+ this.TextBox11.Size = new System.Drawing.Size(56, 20);
+ this.TextBox11.TabIndex = 27;
+ this.TextBox11.Text = "TextBox11";
+ //
+ // Label12
+ //
+ this.Label12.AutoSize = true;
+ this.Label12.ForeColor = System.Drawing.Color.Black;
+ this.Label12.Location = new System.Drawing.Point(8, 38);
+ this.Label12.Name = "Label12";
+ this.Label12.Size = new System.Drawing.Size(62, 13);
+ this.Label12.TabIndex = 26;
+ this.Label12.Text = "Dimensione";
+ this.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // Label11
+ //
+ this.Label11.AutoSize = true;
+ this.Label11.ForeColor = System.Drawing.Color.Black;
+ this.Label11.Location = new System.Drawing.Point(56, 8);
+ this.Label11.Name = "Label11";
+ this.Label11.Size = new System.Drawing.Size(28, 13);
+ this.Label11.TabIndex = 22;
+ this.Label11.Text = "Font";
+ //
+ // CheckBox3
+ //
+ this.CheckBox3.ForeColor = System.Drawing.Color.Black;
+ this.CheckBox3.Location = new System.Drawing.Point(224, 8);
+ this.CheckBox3.Name = "CheckBox3";
+ this.CheckBox3.Size = new System.Drawing.Size(72, 24);
+ this.CheckBox3.TabIndex = 24;
+ this.CheckBox3.Text = "Grassetto";
+ //
+ // GroupBox4
+ //
+ this.GroupBox4.Controls.Add(this.Label40);
+ this.GroupBox4.Controls.Add(this.TextBox29);
+ this.GroupBox4.Controls.Add(this.TextBox18);
+ this.GroupBox4.Controls.Add(this.Label26);
+ this.GroupBox4.Controls.Add(this.DateTimePicker1);
+ this.GroupBox4.Controls.Add(this.CheckBox8);
+ this.GroupBox4.Controls.Add(this.TextBox9);
+ this.GroupBox4.Controls.Add(this.CheckBox7);
+ this.GroupBox4.Controls.Add(this.Label4);
+ this.GroupBox4.Controls.Add(this.TextBox4);
+ this.GroupBox4.Controls.Add(this.Label9);
+ this.GroupBox4.Controls.Add(this.Label13);
+ this.GroupBox4.Controls.Add(this.ComboBox1);
+ this.GroupBox4.Controls.Add(this.ComboBox2);
+ this.GroupBox4.Controls.Add(this.Label14);
+ this.GroupBox4.Controls.Add(this.TextBox12);
+ this.GroupBox4.Controls.Add(this.Label15);
+ this.GroupBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox4.Location = new System.Drawing.Point(3, 129);
+ this.GroupBox4.Name = "GroupBox4";
+ this.GroupBox4.Size = new System.Drawing.Size(496, 171);
+ this.GroupBox4.TabIndex = 36;
+ this.GroupBox4.TabStop = false;
+ this.GroupBox4.Text = "Testo da applicare";
+ //
+ // Label40
+ //
+ this.Label40.AutoSize = true;
+ this.Label40.Location = new System.Drawing.Point(8, 52);
+ this.Label40.Name = "Label40";
+ this.Label40.Size = new System.Drawing.Size(48, 13);
+ this.Label40.TabIndex = 40;
+ this.Label40.Text = "Verticale";
+ //
+ // TextBox29
+ //
+ this.TextBox29.Location = new System.Drawing.Point(72, 49);
+ this.TextBox29.Multiline = true;
+ this.TextBox29.Name = "TextBox29";
+ this.TextBox29.Size = new System.Drawing.Size(408, 44);
+ this.TextBox29.TabIndex = 39;
+ //
+ // TextBox18
+ //
+ this.TextBox18.Location = new System.Drawing.Point(232, 147);
+ this.TextBox18.Name = "TextBox18";
+ this.TextBox18.Size = new System.Drawing.Size(100, 20);
+ this.TextBox18.TabIndex = 38;
+ //
+ // Label26
+ //
+ this.Label26.AutoSize = true;
+ this.Label26.ForeColor = System.Drawing.Color.Black;
+ this.Label26.Location = new System.Drawing.Point(344, 147);
+ this.Label26.Name = "Label26";
+ this.Label26.Size = new System.Drawing.Size(48, 13);
+ this.Label26.TabIndex = 37;
+ this.Label26.Text = "partenza";
+ //
+ // DateTimePicker1
+ //
+ this.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Time;
+ this.DateTimePicker1.Location = new System.Drawing.Point(392, 147);
+ this.DateTimePicker1.Name = "DateTimePicker1";
+ this.DateTimePicker1.Size = new System.Drawing.Size(88, 20);
+ this.DateTimePicker1.TabIndex = 36;
+ //
+ // CheckBox8
+ //
+ this.CheckBox8.ForeColor = System.Drawing.Color.Black;
+ this.CheckBox8.Location = new System.Drawing.Point(72, 147);
+ this.CheckBox8.Name = "CheckBox8";
+ this.CheckBox8.Size = new System.Drawing.Size(56, 16);
+ this.CheckBox8.TabIndex = 35;
+ this.CheckBox8.Text = "Orario";
+ //
+ // TextBox9
+ //
+ this.TextBox9.Location = new System.Drawing.Point(120, 99);
+ this.TextBox9.Name = "TextBox9";
+ this.TextBox9.Size = new System.Drawing.Size(56, 20);
+ this.TextBox9.TabIndex = 20;
+ this.TextBox9.Text = "TextBox9";
+ //
+ // CheckBox7
+ //
+ this.CheckBox7.ForeColor = System.Drawing.Color.Black;
+ this.CheckBox7.Location = new System.Drawing.Point(136, 147);
+ this.CheckBox7.Name = "CheckBox7";
+ this.CheckBox7.Size = new System.Drawing.Size(88, 16);
+ this.CheckBox7.TabIndex = 34;
+ this.CheckBox7.Text = "Tempo gara";
+ //
+ // Label4
+ //
+ this.Label4.AutoSize = true;
+ this.Label4.ForeColor = System.Drawing.Color.Black;
+ this.Label4.Location = new System.Drawing.Point(8, 24);
+ this.Label4.Name = "Label4";
+ this.Label4.Size = new System.Drawing.Size(59, 13);
+ this.Label4.TabIndex = 9;
+ this.Label4.Text = "Orizzontale";
+ //
+ // TextBox4
+ //
+ this.TextBox4.Location = new System.Drawing.Point(72, 24);
+ this.TextBox4.Name = "TextBox4";
+ this.TextBox4.Size = new System.Drawing.Size(408, 20);
+ this.TextBox4.TabIndex = 8;
+ this.TextBox4.Text = "TextBox4";
+ //
+ // Label9
+ //
+ this.Label9.AutoSize = true;
+ this.Label9.ForeColor = System.Drawing.Color.Black;
+ this.Label9.Location = new System.Drawing.Point(8, 99);
+ this.Label9.Name = "Label9";
+ this.Label9.Size = new System.Drawing.Size(110, 13);
+ this.Label9.TabIndex = 19;
+ this.Label9.Text = "Trasparenza (0-100%)";
+ //
+ // Label13
+ //
+ this.Label13.AutoSize = true;
+ this.Label13.ForeColor = System.Drawing.Color.Black;
+ this.Label13.Location = new System.Drawing.Point(16, 123);
+ this.Label13.Name = "Label13";
+ this.Label13.Size = new System.Drawing.Size(52, 13);
+ this.Label13.TabIndex = 29;
+ this.Label13.Text = "Posizione";
+ //
+ // ComboBox1
+ //
+ this.ComboBox1.Location = new System.Drawing.Point(72, 123);
+ this.ComboBox1.Name = "ComboBox1";
+ this.ComboBox1.Size = new System.Drawing.Size(104, 21);
+ this.ComboBox1.TabIndex = 28;
+ this.ComboBox1.Text = "ComboBox1";
+ //
+ // ComboBox2
+ //
+ this.ComboBox2.Location = new System.Drawing.Point(376, 123);
+ this.ComboBox2.Name = "ComboBox2";
+ this.ComboBox2.Size = new System.Drawing.Size(104, 21);
+ this.ComboBox2.TabIndex = 31;
+ this.ComboBox2.Text = "ComboBox2";
+ //
+ // Label14
+ //
+ this.Label14.AutoSize = true;
+ this.Label14.ForeColor = System.Drawing.Color.Black;
+ this.Label14.Location = new System.Drawing.Point(304, 123);
+ this.Label14.Name = "Label14";
+ this.Label14.Size = new System.Drawing.Size(67, 13);
+ this.Label14.TabIndex = 30;
+ this.Label14.Text = "Allineamento";
+ //
+ // TextBox12
+ //
+ this.TextBox12.Location = new System.Drawing.Point(376, 99);
+ this.TextBox12.Name = "TextBox12";
+ this.TextBox12.Size = new System.Drawing.Size(104, 20);
+ this.TextBox12.TabIndex = 33;
+ this.TextBox12.Text = "TextBox12";
+ //
+ // Label15
+ //
+ this.Label15.AutoSize = true;
+ this.Label15.ForeColor = System.Drawing.Color.Black;
+ this.Label15.Location = new System.Drawing.Point(296, 99);
+ this.Label15.Name = "Label15";
+ this.Label15.Size = new System.Drawing.Size(75, 13);
+ this.Label15.TabIndex = 32;
+ this.Label15.Text = "Margine (pixel)";
+ //
+ // TabPage2
+ //
+ this.TabPage2.Controls.Add(this.GroupBox2);
+ this.TabPage2.Location = new System.Drawing.Point(4, 22);
+ this.TabPage2.Name = "TabPage2";
+ this.TabPage2.Padding = new System.Windows.Forms.Padding(3);
+ this.TabPage2.Size = new System.Drawing.Size(513, 351);
+ this.TabPage2.TabIndex = 5;
+ this.TabPage2.Text = "Foto";
+ this.TabPage2.UseVisualStyleBackColor = true;
+ //
+ // GroupBox2
+ //
+ this.GroupBox2.Controls.Add(this.Label45);
+ this.GroupBox2.Controls.Add(this.TextBox32);
+ this.GroupBox2.Controls.Add(this.TextBox26);
+ this.GroupBox2.Controls.Add(this.Label37);
+ this.GroupBox2.Controls.Add(this.Label38);
+ this.GroupBox2.Controls.Add(this.TextBox27);
+ this.GroupBox2.Controls.Add(this.Label39);
+ this.GroupBox2.Controls.Add(this.TextBox28);
+ this.GroupBox2.Controls.Add(this.CheckBox15);
+ this.GroupBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox2.Location = new System.Drawing.Point(3, 6);
+ this.GroupBox2.Name = "GroupBox2";
+ this.GroupBox2.Size = new System.Drawing.Size(304, 156);
+ this.GroupBox2.TabIndex = 36;
+ this.GroupBox2.TabStop = false;
+ this.GroupBox2.Text = "Foto grande";
+ //
+ // Label45
+ //
+ this.Label45.AutoSize = true;
+ this.Label45.Location = new System.Drawing.Point(11, 86);
+ this.Label45.Name = "Label45";
+ this.Label45.Size = new System.Drawing.Size(40, 13);
+ this.Label45.TabIndex = 22;
+ this.Label45.Text = "Qualità ";
+ //
+ // TextBox32
+ //
+ this.TextBox32.Location = new System.Drawing.Point(72, 80);
+ this.TextBox32.Name = "TextBox32";
+ this.TextBox32.Size = new System.Drawing.Size(72, 20);
+ this.TextBox32.TabIndex = 21;
+ this.TextBox32.Text = "100";
+ //
+ // TextBox26
+ //
+ this.TextBox26.Location = new System.Drawing.Point(224, 48);
+ this.TextBox26.Name = "TextBox26";
+ this.TextBox26.Size = new System.Drawing.Size(56, 20);
+ this.TextBox26.TabIndex = 20;
+ this.TextBox26.Text = "TextBox26";
+ //
+ // Label37
+ //
+ this.Label37.ForeColor = System.Drawing.Color.Black;
+ this.Label37.Location = new System.Drawing.Point(168, 48);
+ this.Label37.Name = "Label37";
+ this.Label37.Size = new System.Drawing.Size(48, 16);
+ this.Label37.TabIndex = 19;
+ this.Label37.Text = "Suffisso";
+ this.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // Label38
+ //
+ this.Label38.AutoSize = true;
+ this.Label38.ForeColor = System.Drawing.Color.Black;
+ this.Label38.Location = new System.Drawing.Point(24, 24);
+ this.Label38.Name = "Label38";
+ this.Label38.Size = new System.Drawing.Size(41, 13);
+ this.Label38.TabIndex = 16;
+ this.Label38.Text = "Altezza";
+ //
+ // TextBox27
+ //
+ this.TextBox27.Location = new System.Drawing.Point(72, 24);
+ this.TextBox27.Name = "TextBox27";
+ this.TextBox27.Size = new System.Drawing.Size(72, 20);
+ this.TextBox27.TabIndex = 14;
+ this.TextBox27.Text = "TextBox27";
+ //
+ // Label39
+ //
+ this.Label39.AutoSize = true;
+ this.Label39.ForeColor = System.Drawing.Color.Black;
+ this.Label39.Location = new System.Drawing.Point(8, 48);
+ this.Label39.Name = "Label39";
+ this.Label39.Size = new System.Drawing.Size(56, 13);
+ this.Label39.TabIndex = 17;
+ this.Label39.Text = "Larghezza";
+ //
+ // TextBox28
+ //
+ this.TextBox28.Location = new System.Drawing.Point(72, 48);
+ this.TextBox28.Name = "TextBox28";
+ this.TextBox28.Size = new System.Drawing.Size(72, 20);
+ this.TextBox28.TabIndex = 15;
+ this.TextBox28.Text = "TextBox28";
+ //
+ // CheckBox15
+ //
+ this.CheckBox15.Checked = true;
+ this.CheckBox15.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.CheckBox15.ForeColor = System.Drawing.Color.Black;
+ this.CheckBox15.Location = new System.Drawing.Point(168, 16);
+ this.CheckBox15.Name = "CheckBox15";
+ this.CheckBox15.Size = new System.Drawing.Size(120, 32);
+ this.CheckBox15.TabIndex = 18;
+ this.CheckBox15.Text = "Mantieni dimensioni originali";
+ //
+ // TabPage1
+ //
+ this.TabPage1.Controls.Add(this.panelMiniature);
+ this.TabPage1.Controls.Add(this.CheckBox1);
+ this.TabPage1.Location = new System.Drawing.Point(4, 22);
+ this.TabPage1.Name = "TabPage1";
+ this.TabPage1.Padding = new System.Windows.Forms.Padding(3);
+ this.TabPage1.Size = new System.Drawing.Size(513, 346);
+ this.TabPage1.TabIndex = 0;
+ this.TabPage1.Text = "Miniature";
+ this.TabPage1.UseVisualStyleBackColor = true;
+ //
+ // GroupBox1
+ //
+ this.GroupBox1.Controls.Add(this.Label46);
+ this.GroupBox1.Controls.Add(this.TextBox33);
+ this.GroupBox1.Controls.Add(this.Panel2);
+ this.GroupBox1.Controls.Add(this.Label5);
+ this.GroupBox1.Controls.Add(this.TextBox5);
+ this.GroupBox1.Controls.Add(this.Label6);
+ this.GroupBox1.Controls.Add(this.TextBox6);
+ this.GroupBox1.Controls.Add(this.Label3);
+ this.GroupBox1.Controls.Add(this.TextBox3);
+ this.GroupBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox1.Location = new System.Drawing.Point(3, 3);
+ this.GroupBox1.Name = "GroupBox1";
+ this.GroupBox1.Size = new System.Drawing.Size(350, 210);
+ this.GroupBox1.TabIndex = 25;
+ this.GroupBox1.TabStop = false;
+ this.GroupBox1.Text = "Miniature";
+ //
+ // Label46
+ //
+ this.Label46.AutoSize = true;
+ this.Label46.Location = new System.Drawing.Point(198, 43);
+ this.Label46.Name = "Label46";
+ this.Label46.Size = new System.Drawing.Size(40, 13);
+ this.Label46.TabIndex = 21;
+ this.Label46.Text = "Qualità ";
+ //
+ // TextBox33
+ //
+ this.TextBox33.Location = new System.Drawing.Point(244, 40);
+ this.TextBox33.Name = "TextBox33";
+ this.TextBox33.Size = new System.Drawing.Size(100, 20);
+ this.TextBox33.TabIndex = 20;
+ //
+ // Panel2
+ //
+ this.Panel2.Controls.Add(this.RadioButton3);
+ this.Panel2.Controls.Add(this.RadioButton7);
+ this.Panel2.Controls.Add(this.RadioButton4);
+ this.Panel2.Controls.Add(this.RadioButton6);
+ this.Panel2.Controls.Add(this.RadioButton5);
+ this.Panel2.Location = new System.Drawing.Point(56, 114);
+ this.Panel2.Name = "Panel2";
+ this.Panel2.Size = new System.Drawing.Size(235, 90);
+ this.Panel2.TabIndex = 19;
+ //
+ // RadioButton3
+ //
+ this.RadioButton3.AutoSize = true;
+ this.RadioButton3.Location = new System.Drawing.Point(15, 16);
+ this.RadioButton3.Name = "RadioButton3";
+ this.RadioButton3.Size = new System.Drawing.Size(99, 17);
+ this.RadioButton3.TabIndex = 14;
+ this.RadioButton3.TabStop = true;
+ this.RadioButton3.Text = "Aggiungi Scritta";
+ this.RadioButton3.UseVisualStyleBackColor = true;
+ //
+ // RadioButton7
+ //
+ this.RadioButton7.AutoSize = true;
+ this.RadioButton7.Location = new System.Drawing.Point(129, 40);
+ this.RadioButton7.Name = "RadioButton7";
+ this.RadioButton7.Size = new System.Drawing.Size(95, 17);
+ this.RadioButton7.TabIndex = 18;
+ this.RadioButton7.TabStop = true;
+ this.RadioButton7.Text = "numero+tempo";
+ this.RadioButton7.UseVisualStyleBackColor = true;
+ //
+ // RadioButton4
+ //
+ this.RadioButton4.AutoSize = true;
+ this.RadioButton4.Location = new System.Drawing.Point(15, 40);
+ this.RadioButton4.Name = "RadioButton4";
+ this.RadioButton4.Size = new System.Drawing.Size(95, 17);
+ this.RadioButton4.TabIndex = 15;
+ this.RadioButton4.TabStop = true;
+ this.RadioButton4.Text = "Aggiungi orario";
+ this.RadioButton4.UseVisualStyleBackColor = true;
+ //
+ // RadioButton6
+ //
+ this.RadioButton6.AutoSize = true;
+ this.RadioButton6.Location = new System.Drawing.Point(129, 16);
+ this.RadioButton6.Name = "RadioButton6";
+ this.RadioButton6.Size = new System.Drawing.Size(83, 17);
+ this.RadioButton6.TabIndex = 17;
+ this.RadioButton6.TabStop = true;
+ this.RadioButton6.Text = "Numero foto";
+ this.RadioButton6.UseVisualStyleBackColor = true;
+ //
+ // RadioButton5
+ //
+ this.RadioButton5.AutoSize = true;
+ this.RadioButton5.Location = new System.Drawing.Point(15, 65);
+ this.RadioButton5.Name = "RadioButton5";
+ this.RadioButton5.Size = new System.Drawing.Size(84, 17);
+ this.RadioButton5.TabIndex = 16;
+ this.RadioButton5.TabStop = true;
+ this.RadioButton5.Text = "Tempo Gara";
+ this.RadioButton5.UseVisualStyleBackColor = true;
+ //
+ // Label5
+ //
+ this.Label5.AutoSize = true;
+ this.Label5.ForeColor = System.Drawing.Color.Black;
+ this.Label5.Location = new System.Drawing.Point(24, 88);
+ this.Label5.Name = "Label5";
+ this.Label5.Size = new System.Drawing.Size(41, 13);
+ this.Label5.TabIndex = 12;
+ this.Label5.Text = "Altezza";
+ //
+ // TextBox5
+ //
+ this.TextBox5.Location = new System.Drawing.Point(72, 64);
+ this.TextBox5.Name = "TextBox5";
+ this.TextBox5.Size = new System.Drawing.Size(88, 20);
+ this.TextBox5.TabIndex = 10;
+ this.TextBox5.Text = "TextBox5";
+ //
+ // Label6
+ //
+ this.Label6.AutoSize = true;
+ this.Label6.ForeColor = System.Drawing.Color.Black;
+ this.Label6.Location = new System.Drawing.Point(8, 64);
+ this.Label6.Name = "Label6";
+ this.Label6.Size = new System.Drawing.Size(56, 13);
+ this.Label6.TabIndex = 13;
+ this.Label6.Text = "Larghezza";
+ //
+ // TextBox6
+ //
+ this.TextBox6.Location = new System.Drawing.Point(72, 88);
+ this.TextBox6.Name = "TextBox6";
+ this.TextBox6.Size = new System.Drawing.Size(88, 20);
+ this.TextBox6.TabIndex = 11;
+ this.TextBox6.Text = "TextBox6";
+ //
+ // Label3
+ //
+ this.Label3.AutoSize = true;
+ this.Label3.ForeColor = System.Drawing.Color.Black;
+ this.Label3.Location = new System.Drawing.Point(24, 40);
+ this.Label3.Name = "Label3";
+ this.Label3.Size = new System.Drawing.Size(44, 13);
+ this.Label3.TabIndex = 7;
+ this.Label3.Text = "Suffisso";
+ //
+ // TextBox3
+ //
+ this.TextBox3.Location = new System.Drawing.Point(72, 40);
+ this.TextBox3.Name = "TextBox3";
+ this.TextBox3.Size = new System.Drawing.Size(88, 20);
+ this.TextBox3.TabIndex = 6;
+ this.TextBox3.Text = "TextBox3";
+ //
+ // CheckBox1
+ //
+ this.CheckBox1.ForeColor = System.Drawing.Color.Black;
+ this.CheckBox1.Location = new System.Drawing.Point(6, 7);
+ this.CheckBox1.Name = "CheckBox1";
+ this.CheckBox1.Size = new System.Drawing.Size(104, 24);
+ this.CheckBox1.TabIndex = 5;
+ this.CheckBox1.Text = "Crea miniature";
+ this.CheckBox1.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged);
+ //
+ // TabPage4
+ //
+ this.TabPage4.Controls.Add(this.GroupBox6);
+ this.TabPage4.Location = new System.Drawing.Point(4, 22);
+ this.TabPage4.Name = "TabPage4";
+ this.TabPage4.Padding = new System.Windows.Forms.Padding(3);
+ this.TabPage4.Size = new System.Drawing.Size(513, 351);
+ this.TabPage4.TabIndex = 3;
+ this.TabPage4.Text = "Logo";
+ this.TabPage4.UseVisualStyleBackColor = true;
+ //
+ // GroupBox6
+ //
+ this.GroupBox6.Controls.Add(this.PictureBox2);
+ this.GroupBox6.Controls.Add(this.PictureBox1);
+ this.GroupBox6.Controls.Add(this.ComboBox5);
+ this.GroupBox6.Controls.Add(this.ComboBox4);
+ this.GroupBox6.Controls.Add(this.TextBox19);
+ this.GroupBox6.Controls.Add(this.Label28);
+ this.GroupBox6.Controls.Add(this.CheckBox5);
+ this.GroupBox6.Controls.Add(this.TextBox15);
+ this.GroupBox6.Controls.Add(this.TextBox14);
+ this.GroupBox6.Controls.Add(this.Label25);
+ this.GroupBox6.Controls.Add(this.TextBox16);
+ this.GroupBox6.Controls.Add(this.Label24);
+ this.GroupBox6.Controls.Add(this.Label22);
+ this.GroupBox6.Controls.Add(this.Label23);
+ this.GroupBox6.Controls.Add(this.Button4);
+ this.GroupBox6.Controls.Add(this.TextBox10);
+ this.GroupBox6.Controls.Add(this.Label29);
+ this.GroupBox6.Controls.Add(this.Label30);
+ this.GroupBox6.Controls.Add(this.PictureBox3);
+ this.GroupBox6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.GroupBox6.Location = new System.Drawing.Point(6, 6);
+ this.GroupBox6.Name = "GroupBox6";
+ this.GroupBox6.Size = new System.Drawing.Size(496, 224);
+ this.GroupBox6.TabIndex = 42;
+ this.GroupBox6.TabStop = false;
+ this.GroupBox6.Text = "Logo";
+ //
+ // PictureBox2
+ //
+ this.PictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.PictureBox2.Location = new System.Drawing.Point(144, 192);
+ this.PictureBox2.Name = "PictureBox2";
+ this.PictureBox2.Size = new System.Drawing.Size(24, 24);
+ this.PictureBox2.TabIndex = 44;
+ this.PictureBox2.TabStop = false;
+ this.PictureBox2.Visible = false;
+ //
+ // PictureBox1
+ //
+ this.PictureBox1.Cursor = System.Windows.Forms.Cursors.Cross;
+ this.PictureBox1.Location = new System.Drawing.Point(256, 56);
+ this.PictureBox1.Name = "PictureBox1";
+ this.PictureBox1.Size = new System.Drawing.Size(224, 160);
+ this.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.PictureBox1.TabIndex = 43;
+ this.PictureBox1.TabStop = false;
+ //
+ // ComboBox5
+ //
+ this.ComboBox5.Location = new System.Drawing.Point(144, 168);
+ this.ComboBox5.Name = "ComboBox5";
+ this.ComboBox5.Size = new System.Drawing.Size(96, 21);
+ this.ComboBox5.TabIndex = 42;
+ this.ComboBox5.Text = "ComboBox5";
+ //
+ // ComboBox4
+ //
+ this.ComboBox4.Location = new System.Drawing.Point(144, 144);
+ this.ComboBox4.Name = "ComboBox4";
+ this.ComboBox4.Size = new System.Drawing.Size(96, 21);
+ this.ComboBox4.TabIndex = 41;
+ this.ComboBox4.Text = "ComboBox4";
+ //
+ // TextBox19
+ //
+ this.TextBox19.Location = new System.Drawing.Point(144, 96);
+ this.TextBox19.Name = "TextBox19";
+ this.TextBox19.Size = new System.Drawing.Size(96, 20);
+ this.TextBox19.TabIndex = 40;
+ this.TextBox19.Text = "TextBox19";
+ //
+ // Label28
+ //
+ this.Label28.ForeColor = System.Drawing.Color.Black;
+ this.Label28.Location = new System.Drawing.Point(17, 97);
+ this.Label28.Name = "Label28";
+ this.Label28.Size = new System.Drawing.Size(120, 16);
+ this.Label28.TabIndex = 39;
+ this.Label28.Text = "Trasparenza (0-100%)";
+ this.Label28.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // CheckBox5
+ //
+ this.CheckBox5.ForeColor = System.Drawing.Color.Black;
+ this.CheckBox5.Location = new System.Drawing.Point(0, 26);
+ this.CheckBox5.Name = "CheckBox5";
+ this.CheckBox5.Size = new System.Drawing.Size(72, 20);
+ this.CheckBox5.TabIndex = 38;
+ this.CheckBox5.Text = "Aggiungi";
+ //
+ // TextBox15
+ //
+ this.TextBox15.Location = new System.Drawing.Point(144, 72);
+ this.TextBox15.Name = "TextBox15";
+ this.TextBox15.Size = new System.Drawing.Size(96, 20);
+ this.TextBox15.TabIndex = 19;
+ this.TextBox15.Text = "TextBox15";
+ //
+ // TextBox14
+ //
+ this.TextBox14.Location = new System.Drawing.Point(144, 48);
+ this.TextBox14.Name = "TextBox14";
+ this.TextBox14.Size = new System.Drawing.Size(96, 20);
+ this.TextBox14.TabIndex = 18;
+ this.TextBox14.Text = "TextBox14";
+ //
+ // Label25
+ //
+ this.Label25.AutoSize = true;
+ this.Label25.ForeColor = System.Drawing.Color.Black;
+ this.Label25.Location = new System.Drawing.Point(17, 168);
+ this.Label25.Name = "Label25";
+ this.Label25.Size = new System.Drawing.Size(95, 13);
+ this.Label25.TabIndex = 36;
+ this.Label25.Text = "Posizione verticale";
+ this.Label25.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // TextBox16
+ //
+ this.TextBox16.Location = new System.Drawing.Point(144, 120);
+ this.TextBox16.Name = "TextBox16";
+ this.TextBox16.Size = new System.Drawing.Size(96, 20);
+ this.TextBox16.TabIndex = 35;
+ this.TextBox16.Text = "TextBox16";
+ //
+ // Label24
+ //
+ this.Label24.AutoSize = true;
+ this.Label24.ForeColor = System.Drawing.Color.Black;
+ this.Label24.Location = new System.Drawing.Point(19, 123);
+ this.Label24.Name = "Label24";
+ this.Label24.Size = new System.Drawing.Size(88, 13);
+ this.Label24.TabIndex = 34;
+ this.Label24.Text = "Margine (pixel/%)";
+ this.Label24.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // Label22
+ //
+ this.Label22.AutoSize = true;
+ this.Label22.ForeColor = System.Drawing.Color.Black;
+ this.Label22.Location = new System.Drawing.Point(19, 51);
+ this.Label22.Name = "Label22";
+ this.Label22.Size = new System.Drawing.Size(41, 13);
+ this.Label22.TabIndex = 20;
+ this.Label22.Text = "Altezza";
+ this.Label22.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // Label23
+ //
+ this.Label23.AutoSize = true;
+ this.Label23.ForeColor = System.Drawing.Color.Black;
+ this.Label23.Location = new System.Drawing.Point(19, 75);
+ this.Label23.Name = "Label23";
+ this.Label23.Size = new System.Drawing.Size(56, 13);
+ this.Label23.TabIndex = 21;
+ this.Label23.Text = "Larghezza";
+ this.Label23.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // Button4
+ //
+ this.Button4.Location = new System.Drawing.Point(464, 24);
+ this.Button4.Name = "Button4";
+ this.Button4.Size = new System.Drawing.Size(24, 20);
+ this.Button4.TabIndex = 8;
+ this.Button4.Text = "...";
+ //
+ // TextBox10
+ //
+ this.TextBox10.Location = new System.Drawing.Point(144, 24);
+ this.TextBox10.Name = "TextBox10";
+ this.TextBox10.Size = new System.Drawing.Size(312, 20);
+ this.TextBox10.TabIndex = 6;
+ this.TextBox10.Text = "TextBox10";
+ //
+ // Label29
+ //
+ this.Label29.AutoSize = true;
+ this.Label29.ForeColor = System.Drawing.Color.Black;
+ this.Label29.Location = new System.Drawing.Point(17, 147);
+ this.Label29.Name = "Label29";
+ this.Label29.Size = new System.Drawing.Size(105, 13);
+ this.Label29.TabIndex = 36;
+ this.Label29.Text = "Posizione orizzontale";
+ this.Label29.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // Label30
+ //
+ this.Label30.AutoSize = true;
+ this.Label30.ForeColor = System.Drawing.Color.Black;
+ this.Label30.Location = new System.Drawing.Point(19, 203);
+ this.Label30.Name = "Label30";
+ this.Label30.Size = new System.Drawing.Size(93, 13);
+ this.Label30.TabIndex = 36;
+ this.Label30.Text = "Colore trasparente";
+ this.Label30.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.Label30.Visible = false;
+ //
+ // PictureBox3
+ //
+ this.PictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.PictureBox3.Location = new System.Drawing.Point(216, 192);
+ this.PictureBox3.Name = "PictureBox3";
+ this.PictureBox3.Size = new System.Drawing.Size(24, 24);
+ this.PictureBox3.TabIndex = 44;
+ this.PictureBox3.TabStop = false;
+ this.PictureBox3.Visible = false;
+ //
+ // Label20
+ //
+ this.Label20.AutoSize = true;
+ this.Label20.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Label20.Location = new System.Drawing.Point(6, 301);
+ this.Label20.Name = "Label20";
+ this.Label20.Size = new System.Drawing.Size(104, 16);
+ this.Label20.TabIndex = 74;
+ this.Label20.Text = "foto generate:";
+ //
+ // Label19
+ //
+ this.Label19.AutoSize = true;
+ this.Label19.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Label19.Location = new System.Drawing.Point(6, 282);
+ this.Label19.Name = "Label19";
+ this.Label19.Size = new System.Drawing.Size(80, 16);
+ this.Label19.TabIndex = 73;
+ this.Label19.Text = "foto totali: ";
+ //
+ // Label18
+ //
+ this.Label18.AutoSize = true;
+ this.Label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Label18.Location = new System.Drawing.Point(110, 301);
+ this.Label18.Name = "Label18";
+ this.Label18.Size = new System.Drawing.Size(19, 20);
+ this.Label18.TabIndex = 72;
+ this.Label18.Text = "0";
+ //
+ // lblFotoTotaliNum
+ //
+ this.lblFotoTotaliNum.AutoSize = true;
+ this.lblFotoTotaliNum.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblFotoTotaliNum.Location = new System.Drawing.Point(110, 282);
+ this.lblFotoTotaliNum.Name = "lblFotoTotaliNum";
+ this.lblFotoTotaliNum.Size = new System.Drawing.Size(19, 20);
+ this.lblFotoTotaliNum.TabIndex = 71;
+ this.lblFotoTotaliNum.Text = "0";
+ //
+ // menuStrip1
+ //
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem,
+ this.aiutoToolStripMenuItem});
+ this.menuStrip1.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(756, 24);
+ this.menuStrip1.TabIndex = 82;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.caricaImpostazioniToolStripMenuItem,
+ this.salvaImpostazioniToolStripMenuItem,
+ this.creaCatalogoToolStripMenuItem,
+ this.esciToolStripMenuItem});
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "File";
+ //
+ // caricaImpostazioniToolStripMenuItem
+ //
+ this.caricaImpostazioniToolStripMenuItem.Name = "caricaImpostazioniToolStripMenuItem";
+ this.caricaImpostazioniToolStripMenuItem.Size = new System.Drawing.Size(187, 22);
+ this.caricaImpostazioniToolStripMenuItem.Text = "Carica impostazioni...";
+ this.caricaImpostazioniToolStripMenuItem.Click += new System.EventHandler(this.caricaImpostazioniToolStripMenuItem_Click);
+ //
+ // salvaImpostazioniToolStripMenuItem
+ //
+ this.salvaImpostazioniToolStripMenuItem.Name = "salvaImpostazioniToolStripMenuItem";
+ this.salvaImpostazioniToolStripMenuItem.Size = new System.Drawing.Size(187, 22);
+ this.salvaImpostazioniToolStripMenuItem.Text = "Salva impostazioni...";
+ //
+ // creaCatalogoToolStripMenuItem
+ //
+ this.creaCatalogoToolStripMenuItem.Name = "creaCatalogoToolStripMenuItem";
+ this.creaCatalogoToolStripMenuItem.Size = new System.Drawing.Size(187, 22);
+ this.creaCatalogoToolStripMenuItem.Text = "Crea catalogo";
+ //
+ // esciToolStripMenuItem
+ //
+ this.esciToolStripMenuItem.Name = "esciToolStripMenuItem";
+ this.esciToolStripMenuItem.Size = new System.Drawing.Size(187, 22);
+ this.esciToolStripMenuItem.Text = "Esci";
+ //
+ // aiutoToolStripMenuItem
+ //
+ this.aiutoToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.informazioniToolStripMenuItem});
+ this.aiutoToolStripMenuItem.Name = "aiutoToolStripMenuItem";
+ this.aiutoToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
+ this.aiutoToolStripMenuItem.Text = "Aiuto";
+ //
+ // informazioniToolStripMenuItem
+ //
+ this.informazioniToolStripMenuItem.Name = "informazioniToolStripMenuItem";
+ this.informazioniToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.informazioniToolStripMenuItem.Text = "Informazioni";
+ this.informazioniToolStripMenuItem.Click += new System.EventHandler(this.informazioniToolStripMenuItem_Click);
+ //
+ // groupBox12
+ //
+ this.groupBox12.Controls.Add(this.txtFileInfo);
+ this.groupBox12.Controls.Add(this.lblLog);
+ this.groupBox12.Controls.Add(this.btnStopCreazione);
+ this.groupBox12.Controls.Add(this.lblFotoTotaliNum);
+ this.groupBox12.Controls.Add(this.CheckBox22);
+ this.groupBox12.Controls.Add(this.Label18);
+ this.groupBox12.Controls.Add(this.Label43);
+ this.groupBox12.Controls.Add(this.Label19);
+ this.groupBox12.Controls.Add(this.Label20);
+ this.groupBox12.Location = new System.Drawing.Point(539, 27);
+ this.groupBox12.Name = "groupBox12";
+ this.groupBox12.Size = new System.Drawing.Size(204, 387);
+ this.groupBox12.TabIndex = 83;
+ this.groupBox12.TabStop = false;
+ this.groupBox12.Text = "Statistiche";
+ //
+ // btnStopCreazione
+ //
+ this.btnStopCreazione.Location = new System.Drawing.Point(6, 20);
+ this.btnStopCreazione.Name = "btnStopCreazione";
+ this.btnStopCreazione.Size = new System.Drawing.Size(192, 40);
+ this.btnStopCreazione.TabIndex = 82;
+ this.btnStopCreazione.Text = "STOP CREAZIONE";
+ this.btnStopCreazione.UseVisualStyleBackColor = true;
+ this.btnStopCreazione.Click += new System.EventHandler(this.btnStopCreazione_Click);
+ //
+ // lblLog
+ //
+ this.lblLog.FormattingEnabled = true;
+ this.lblLog.Location = new System.Drawing.Point(6, 68);
+ this.lblLog.Name = "lblLog";
+ this.lblLog.Size = new System.Drawing.Size(192, 95);
+ this.lblLog.TabIndex = 83;
+ //
+ // txtFileInfo
+ //
+ this.txtFileInfo.Enabled = false;
+ this.txtFileInfo.Location = new System.Drawing.Point(6, 170);
+ this.txtFileInfo.Multiline = true;
+ this.txtFileInfo.Name = "txtFileInfo";
+ this.txtFileInfo.Size = new System.Drawing.Size(192, 109);
+ this.txtFileInfo.TabIndex = 84;
+ //
+ // panelTesto
+ //
+ this.panelTesto.Controls.Add(this.GroupBox5);
+ this.panelTesto.Controls.Add(this.GroupBox10);
+ this.panelTesto.Controls.Add(this.GroupBox9);
+ this.panelTesto.Controls.Add(this.GroupBox4);
+ this.panelTesto.Location = new System.Drawing.Point(3, 28);
+ this.panelTesto.Name = "panelTesto";
+ this.panelTesto.Size = new System.Drawing.Size(504, 312);
+ this.panelTesto.TabIndex = 85;
+ //
+ // panelMiniature
+ //
+ this.panelMiniature.Controls.Add(this.GroupBox1);
+ this.panelMiniature.Location = new System.Drawing.Point(6, 36);
+ this.panelMiniature.Name = "panelMiniature";
+ this.panelMiniature.Size = new System.Drawing.Size(501, 304);
+ this.panelMiniature.TabIndex = 27;
+ //
+ // MainForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(756, 427);
+ this.Controls.Add(this.groupBox12);
+ this.Controls.Add(this.TabControl1);
+ this.Controls.Add(this.menuStrip1);
+ this.Controls.Add(this.ProgressBar1);
+ this.MainMenuStrip = this.menuStrip1;
+ this.Name = "MainForm";
+ this.Text = "Form1";
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.TabControl1.ResumeLayout(false);
+ this.TabPage5.ResumeLayout(false);
+ this.GroupBox11.ResumeLayout(false);
+ this.GroupBox11.PerformLayout();
+ this.GroupBox3.ResumeLayout(false);
+ this.GroupBox3.PerformLayout();
+ this.GroupBox8.ResumeLayout(false);
+ this.GroupBox8.PerformLayout();
+ this.GroupBox7.ResumeLayout(false);
+ this.GroupBox7.PerformLayout();
+ this.TabPage3.ResumeLayout(false);
+ this.TabPage3.PerformLayout();
+ this.GroupBox10.ResumeLayout(false);
+ this.GroupBox10.PerformLayout();
+ this.GroupBox9.ResumeLayout(false);
+ this.GroupBox9.PerformLayout();
+ this.GroupBox5.ResumeLayout(false);
+ this.GroupBox5.PerformLayout();
+ this.GroupBox4.ResumeLayout(false);
+ this.GroupBox4.PerformLayout();
+ this.TabPage2.ResumeLayout(false);
+ this.GroupBox2.ResumeLayout(false);
+ this.GroupBox2.PerformLayout();
+ this.TabPage1.ResumeLayout(false);
+ this.GroupBox1.ResumeLayout(false);
+ this.GroupBox1.PerformLayout();
+ this.Panel2.ResumeLayout(false);
+ this.Panel2.PerformLayout();
+ this.TabPage4.ResumeLayout(false);
+ this.GroupBox6.ResumeLayout(false);
+ this.GroupBox6.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.PictureBox2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.PictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.PictureBox3)).EndInit();
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
+ this.groupBox12.ResumeLayout(false);
+ this.groupBox12.PerformLayout();
+ this.panelTesto.ResumeLayout(false);
+ this.panelMiniature.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ internal System.Windows.Forms.ProgressBar ProgressBar1;
+ internal System.Windows.Forms.CheckBox CheckBox22;
+ internal System.Windows.Forms.Label Label43;
+ internal System.Windows.Forms.TabControl TabControl1;
+ internal System.Windows.Forms.TabPage TabPage5;
+ internal System.Windows.Forms.GroupBox GroupBox11;
+ internal System.Windows.Forms.Label Label8;
+ internal System.Windows.Forms.TextBox TextBox8;
+ internal System.Windows.Forms.Label Label7;
+ internal System.Windows.Forms.TextBox TextBox7;
+ internal System.Windows.Forms.GroupBox GroupBox3;
+ internal System.Windows.Forms.CheckBox chkAggiornaSottodirectory;
+ internal System.Windows.Forms.Button Button3;
+ internal System.Windows.Forms.Button Button2;
+ internal System.Windows.Forms.Label Label1;
+ internal System.Windows.Forms.Label Label2;
+ internal System.Windows.Forms.TextBox txtSorgente;
+ internal System.Windows.Forms.TextBox txtDestinazione;
+ internal System.Windows.Forms.GroupBox GroupBox8;
+ internal System.Windows.Forms.RadioButton rdbNumFiles;
+ internal System.Windows.Forms.RadioButton rdbNumProgressiva;
+ internal System.Windows.Forms.TextBox txtCifreContatore;
+ internal System.Windows.Forms.Label Label34;
+ internal System.Windows.Forms.TextBox txtSuffissoCartelle;
+ internal System.Windows.Forms.Label Label33;
+ internal System.Windows.Forms.Label Label31;
+ internal System.Windows.Forms.CheckBox chkCreaSottocartelle;
+ internal System.Windows.Forms.TextBox txtFilePerCartella;
+ internal System.Windows.Forms.Label Label32;
+ internal System.Windows.Forms.GroupBox GroupBox7;
+ internal System.Windows.Forms.CheckBox chkSovrascriviFile;
+ internal System.Windows.Forms.CheckBox chkRotazioneAutomatica;
+ internal System.Windows.Forms.CheckBox chkForzaJpg;
+ internal System.Windows.Forms.TabPage TabPage3;
+ internal System.Windows.Forms.CheckBox CheckBox2;
+ internal System.Windows.Forms.GroupBox GroupBox10;
+ internal System.Windows.Forms.Label Label42;
+ internal System.Windows.Forms.Label Label41;
+ internal System.Windows.Forms.TextBox TextBox31;
+ internal System.Windows.Forms.TextBox TextBox30;
+ internal System.Windows.Forms.GroupBox GroupBox9;
+ internal System.Windows.Forms.CheckBox CheckBox17;
+ internal System.Windows.Forms.CheckBox CheckBox16;
+ internal System.Windows.Forms.GroupBox GroupBox5;
+ internal System.Windows.Forms.TextBox TextBox34;
+ internal System.Windows.Forms.Button Button8;
+ internal System.Windows.Forms.Label Label36;
+ internal System.Windows.Forms.TextBox TextBox25;
+ internal System.Windows.Forms.Label Label35;
+ internal System.Windows.Forms.ComboBox ComboBox3;
+ internal System.Windows.Forms.TextBox TextBox11;
+ internal System.Windows.Forms.Label Label12;
+ internal System.Windows.Forms.Label Label11;
+ internal System.Windows.Forms.CheckBox CheckBox3;
+ internal System.Windows.Forms.GroupBox GroupBox4;
+ internal System.Windows.Forms.Label Label40;
+ internal System.Windows.Forms.TextBox TextBox29;
+ internal System.Windows.Forms.TextBox TextBox18;
+ internal System.Windows.Forms.Label Label26;
+ internal System.Windows.Forms.DateTimePicker DateTimePicker1;
+ internal System.Windows.Forms.CheckBox CheckBox8;
+ internal System.Windows.Forms.TextBox TextBox9;
+ internal System.Windows.Forms.CheckBox CheckBox7;
+ internal System.Windows.Forms.Label Label4;
+ internal System.Windows.Forms.TextBox TextBox4;
+ internal System.Windows.Forms.Label Label9;
+ internal System.Windows.Forms.Label Label13;
+ internal System.Windows.Forms.ComboBox ComboBox1;
+ internal System.Windows.Forms.ComboBox ComboBox2;
+ internal System.Windows.Forms.Label Label14;
+ internal System.Windows.Forms.TextBox TextBox12;
+ internal System.Windows.Forms.Label Label15;
+ internal System.Windows.Forms.TabPage TabPage2;
+ internal System.Windows.Forms.GroupBox GroupBox2;
+ internal System.Windows.Forms.Label Label45;
+ internal System.Windows.Forms.TextBox TextBox32;
+ internal System.Windows.Forms.TextBox TextBox26;
+ internal System.Windows.Forms.Label Label37;
+ internal System.Windows.Forms.Label Label38;
+ internal System.Windows.Forms.TextBox TextBox27;
+ internal System.Windows.Forms.Label Label39;
+ internal System.Windows.Forms.TextBox TextBox28;
+ internal System.Windows.Forms.CheckBox CheckBox15;
+ internal System.Windows.Forms.TabPage TabPage1;
+ internal System.Windows.Forms.GroupBox GroupBox1;
+ internal System.Windows.Forms.Label Label46;
+ internal System.Windows.Forms.TextBox TextBox33;
+ internal System.Windows.Forms.Panel Panel2;
+ internal System.Windows.Forms.RadioButton RadioButton3;
+ internal System.Windows.Forms.RadioButton RadioButton7;
+ internal System.Windows.Forms.RadioButton RadioButton4;
+ internal System.Windows.Forms.RadioButton RadioButton6;
+ internal System.Windows.Forms.RadioButton RadioButton5;
+ internal System.Windows.Forms.Label Label5;
+ internal System.Windows.Forms.TextBox TextBox5;
+ internal System.Windows.Forms.Label Label6;
+ internal System.Windows.Forms.TextBox TextBox6;
+ internal System.Windows.Forms.Label Label3;
+ internal System.Windows.Forms.TextBox TextBox3;
+ internal System.Windows.Forms.CheckBox CheckBox1;
+ internal System.Windows.Forms.TabPage TabPage4;
+ internal System.Windows.Forms.GroupBox GroupBox6;
+ internal System.Windows.Forms.PictureBox PictureBox2;
+ internal System.Windows.Forms.PictureBox PictureBox1;
+ internal System.Windows.Forms.ComboBox ComboBox5;
+ internal System.Windows.Forms.ComboBox ComboBox4;
+ internal System.Windows.Forms.TextBox TextBox19;
+ internal System.Windows.Forms.Label Label28;
+ internal System.Windows.Forms.CheckBox CheckBox5;
+ internal System.Windows.Forms.TextBox TextBox15;
+ internal System.Windows.Forms.TextBox TextBox14;
+ internal System.Windows.Forms.Label Label25;
+ internal System.Windows.Forms.TextBox TextBox16;
+ internal System.Windows.Forms.Label Label24;
+ internal System.Windows.Forms.Label Label22;
+ internal System.Windows.Forms.Label Label23;
+ internal System.Windows.Forms.Button Button4;
+ internal System.Windows.Forms.TextBox TextBox10;
+ internal System.Windows.Forms.Label Label29;
+ internal System.Windows.Forms.Label Label30;
+ internal System.Windows.Forms.PictureBox PictureBox3;
+ internal System.Windows.Forms.Label Label20;
+ internal System.Windows.Forms.Label Label19;
+ internal System.Windows.Forms.Label Label18;
+ internal System.Windows.Forms.Label lblFotoTotaliNum;
+ private System.Windows.Forms.MenuStrip menuStrip1;
+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem caricaImpostazioniToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem salvaImpostazioniToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem creaCatalogoToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem aiutoToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem informazioniToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem esciToolStripMenuItem;
+ private System.Windows.Forms.GroupBox groupBox12;
+ private System.Windows.Forms.Button btnStopCreazione;
+ private System.Windows.Forms.ListBox lblLog;
+ private System.Windows.Forms.TextBox txtFileInfo;
+ private System.Windows.Forms.Panel panelTesto;
+ private System.Windows.Forms.Panel panelMiniature;
+
+ }
+}
+
diff --git a/ImageCatalogCS/MainForm.cs b/ImageCatalogCS/MainForm.cs
new file mode 100644
index 0000000..c11509f
--- /dev/null
+++ b/ImageCatalogCS/MainForm.cs
@@ -0,0 +1,548 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.IO;
+using System.Drawing.Text;
+using System.Threading;
+
+public delegate void XyThreadAdd(string Info);
+
+namespace ImageCatalogCS
+{
+ public partial class MainForm : Form
+ {
+ private bool stopAttivo;
+ private bool waterSelectColor = false;
+
+ //pool
+ private XYThreadPool myPool = new XYThreadPool();
+
+ private int contaImmaginiThread;
+
+ private int maxThreads = 15;
+ private int minThreads = 5;
+
+ public MainForm()
+ {
+ InitializeComponent();
+ }
+
+ private void setDefaults()
+ {
+ txtSorgente.Text = "";
+ txtDestinazione.Text = "";
+ 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 = Convert.ToString(15);
+ TextBox8.Text = Convert.ToString(5);
+ 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
+ InstalledFontCollection InstalledFonts = new InstalledFontCollection();
+ // Gets the array of FontFamily objects associated with this FontCollection.
+ FontFamily[] 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();
+
+ 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)
+ {
+ Application.EnableVisualStyles();
+ setDefaults();
+ }
+
+ private void btnCreaCatalogo_Click(object sender, EventArgs e)
+ {
+ DateTime timestart;
+ DateTime timeStop;
+
+ timestart = DateTime.Now;
+
+ txtFileInfo.Text = string.Empty;
+ lblFotoTotaliNum.Text = "0";
+ Label18.Text = "0";
+ Label43.Text = "-s";
+
+ maxThreads = Convert.ToInt32(TextBox7.Text);
+ minThreads = Convert.ToInt32(TextBox18.Text);
+
+ //setPicSettings(txtSorgente.Text, txtDestinazione.Text);
+ makeSettingsFromForm();
+ ProgressBar1.Minimum = 0;
+ ProgressBar1.Step = 1;
+ ProgressBar1.Value = 0;
+
+ System.Threading.Thread t1 = new System.Threading.Thread(creaCatalogoThread);
+
+
+ }
+
+ private void creaCatalogoThread()
+{
+ System.DateTime timeStart = DateTime.Now;
+ myPool.StopThreadPool();
+ myPool.StartThreadPool(minThreads, maxThreads);
+ contaImmaginiThread = 0;
+
+ //creaImmaginiWithThreadMod(txtSorgente.Text, txtDestinazione.Text)
+ //creaimmaginiWithThreadDict(txtSorgente.Text, txtDestinazione.Text);
+ ThreadPoolWorkItem ThAttivo = null;
+ //int i = 0;
+
+ // fine
+
+
+}
+
+ private int getNumerazione()
+ {
+ int numerazione = 0;
+ if (rdbNumProgressiva.Checked)
+ {
+ numerazione = (int)FileHelper.numerazione.Progressiva;
+ }
+ else
+ {
+ numerazione = (int)FileHelper.numerazione.Files;
+ }
+ return numerazione;
+ }
+
+ private void creaimmaginiWithThreadDict(string SourcePath, string DestPath)
+{
+ Dictionary dirSourceDest = new Dictionary();
+
+ if (chkAggiornaSottodirectory.Checked & chkCreaSottocartelle.Checked) {
+ FileHelper helper = new FileHelper(Convert.ToInt32(txtFilePerCartella.Text), txtSuffissoCartelle.Text, Convert.ToInt32(txtCifreContatore.Text), getNumerazione());
+ //getfilesrecursive
+ dirSourceDest = helper.GetFilesRecursive(new DirectoryInfo(SourcePath), new DirectoryInfo(DestPath), "*.jpg");
+
+ } else if (chkAggiornaSottodirectory.Checked & !chkCreaSottocartelle.Checked) {
+
+ }
+ //else if ()
+
+ //= getDirsDict(SourcePath, DestPath)
+
+ KeyValuePair pair = default(KeyValuePair);
+
+ foreach (KeyValuePair pair_loopVariable in dirSourceDest) {
+ pair = pair_loopVariable;
+ //setLabel10Text("File: " + pair.Key.Name);
+ string b = (Convert.ToInt32(Label18.Text) + 1).ToString();
+
+ ImageCreator ClsCreaImmagine = new ImageCreator(pair.Key, pair.Value);
+ contaImmaginiThread += 1;
+ myPool.InsertWorkItem(pair.Key.Name, new XyThreadAdd(ClsCreaImmagine.CreaImmagineThread), new object[1] { pair.Key.Name }, true);
+
+ }
+
+}
+
+ private Dictionary makeSettingsFromForm()
+ {
+ Dictionary settingsDict = new Dictionary();
+ settingsDict.Add("sourceDirRoot", new DirectoryInfo(txtSorgente.Text));
+ settingsDict.Add("destDirRoot", new DirectoryInfo(txtDestinazione.Text));
+
+ settingsDict.Add("DirDividiDestinazione", chkCreaSottocartelle.Checked);
+ settingsDict.Add("DirDividiNumFile", txtFilePerCartella.Text);
+ settingsDict.Add("DirDividiSuffisso", txtSuffissoCartelle.Text);
+ settingsDict.Add("DirDividiNumCifre", txtCifreContatore.Text);
+
+ settingsDict.Add("DirDividiTipoNumerazione", rdbNumProgressiva.Checked ? "Progressiva" : "Files");
+
+ // if (rdbNumProgressiva.Checked)
+ // settingsDict.Add("DirDividiTipoNumerazione", "Progressiva");
+ //else
+ // settingsDict.Add("DirDividiTipoNumerazione", "Files");
+
+ // Checkbox
+ settingsDict.Add("creaMiniature", CheckBox1.Checked);
+ settingsDict.Add("aggiungiTesto", CheckBox2.Checked);
+ settingsDict.Add("grassetto", CheckBox3.Checked);
+ settingsDict.Add("logoAggiungi", CheckBox5.Checked);
+ settingsDict.Add("usaOrarioTestoApplicare", CheckBox8.Checked);
+ //settingsDict.Add("usaOrarioMiniatura", CheckBox12.Checked);
+ settingsDict.Add("fotoGrandeDimOrigina", CheckBox15.Checked);
+
+ settingsDict.Add("dimStandard", Convert.ToInt32(TextBox11.Text));
+ settingsDict.Add("dimStandardMiniatura", Convert.ToInt32(TextBox25.Text));
+
+
+
+
+ settingsDict.Add("usaRotazioneAutomatica", chkRotazioneAutomatica.Checked);
+ settingsDict.Add("usaForzaJpg", chkForzaJpg.Checked);
+
+ settingsDict.Add("testoNome", CheckBox17.Checked);
+ settingsDict.Add("nomeData", CheckBox16.Checked);
+
+ settingsDict.Add("testoFirmaStart", TextBox4.Text);
+ settingsDict.Add("testoFirmaStartV", TextBox29.Text);
+
+ settingsDict.Add("dataPartenza", DateTimePicker1.Value);
+ settingsDict.Add("testoOrario", TextBox18.Text);
+
+ settingsDict.Add("altezzaSmall", Convert.ToInt32(TextBox6.Text));
+ settingsDict.Add("larghezzaSmall", Convert.ToInt32(TextBox5.Text));
+
+
+ settingsDict.Add("aggiungiScritteMiniature", RadioButton3.Checked);
+ settingsDict.Add("aggTempoGaraMin", RadioButton5.Checked);
+ settingsDict.Add("aggNumTempMin", RadioButton7.Checked);
+
+ settingsDict.Add("dimVert", Convert.ToUInt32(TextBox30.Text));
+ settingsDict.Add("margVert", Convert.ToInt32(TextBox31.Text));
+
+ settingsDict.Add("suffisso", TextBox3.Text);
+ settingsDict.Add("trasparenza", Convert.ToInt32(TextBox9.Text));
+ settingsDict.Add("ilFont", ComboBox3.SelectedItem.ToString());
+
+
+ settingsDict.Add("posizione", ComboBox1.SelectedItem.ToString());
+ settingsDict.Add("allineamento", ComboBox2.SelectedItem.ToString());
+ settingsDict.Add("margine", Convert.ToInt32(TextBox12.Text));
+
+ settingsDict.Add("logoAltezza", Convert.ToInt32(TextBox14.Text));
+ settingsDict.Add("logoLarghezza", Convert.ToInt32(TextBox15.Text));
+
+ settingsDict.Add("fontColoreRGB", ColorTranslator.FromHtml(TextBox34.Text));
+
+
+ settingsDict.Add("logoNomeFile", TextBox10.Text);
+ settingsDict.Add("logoTrasparenza", TextBox19.Text);
+ settingsDict.Add("logoMargine", TextBox16.Text);
+ settingsDict.Add("logoPosizioneH", ComboBox4.Text);
+ settingsDict.Add("logoPosizioneV", ComboBox5.Text);
+
+
+ settingsDict.Add("altezzaBig", Convert.ToInt32(TextBox27.Text));
+ settingsDict.Add("larghezzaBig", Convert.ToInt32(TextBox28.Text));
+ settingsDict.Add("dimMin", Convert.ToInt32(TextBox25.Text));
+
+ settingsDict.Add("testoMin", RadioButton6.Checked);
+
+ settingsDict.Add("jpegQuality", Convert.ToInt32(TextBox32.Text));
+ settingsDict.Add("jpegQualityMin", Convert.ToInt32(TextBox33.Text));
+
+ return settingsDict;
+ }
+
+ private void setPicSettings(string SourcePath, string DestPath)
+ {
+ DirectoryInfo SourceDir = new DirectoryInfo(SourcePath);
+ DirectoryInfo DestDirStart = new DirectoryInfo(DestPath);
+ DirectoryInfo DestDir = null;
+
+ PicSettings.directorySorgente = txtSorgente.Text;
+ PicSettings.directoryDestinazione = txtDestinazione.Text;
+
+
+ PicSettings.dimStandard = Convert.ToInt32(TextBox11.Text);
+ PicSettings.dimStandardMiniatura = Convert.ToInt32(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 = Convert.ToInt32(TextBox6.Text);
+ PicSettings.LarghezzaSmall = Convert.ToInt32(TextBox5.Text);
+
+ PicSettings.CreaMiniature = CheckBox1.Checked;
+ PicSettings.AggiungiScritteMiniature = RadioButton3.Checked;
+ PicSettings.AggTempoGaraMin = RadioButton5.Checked;
+ PicSettings.AggNumTempMin = RadioButton7.Checked;
+
+
+ PicSettings.dimVert = Convert.ToInt32(TextBox30.Text);
+ PicSettings.margVert = Convert.ToInt32(TextBox31.Text);
+
+ //PicSettings.NomeFileChild = childFile.Name
+ PicSettings.Suffisso = TextBox3.Text;
+ //PicSettings.Codice = TextBox13.Text
+
+ PicSettings.Trasparenza = Convert.ToInt32(TextBox9.Text);
+ PicSettings.IlFont = ComboBox3.SelectedItem.ToString();
+ PicSettings.Grassetto = CheckBox3.Checked;
+
+ PicSettings.Posizione = ComboBox1.SelectedItem.ToString();
+ PicSettings.Allineamento = ComboBox2.SelectedItem.ToString();
+ PicSettings.Margine = Convert.ToInt32(TextBox12.Text);
+
+ PicSettings.LogoAltezza = Convert.ToInt32(TextBox14.Text);
+ PicSettings.LogoLarghezza = Convert.ToInt32(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 = Convert.ToInt32(TextBox27.Text);
+ PicSettings.LarghezzaBig = Convert.ToInt32(TextBox28.Text);
+ PicSettings.DimMin = Convert.ToInt32(TextBox25.Text);
+
+ PicSettings.TestoMin = RadioButton6.Checked;
+
+ PicSettings.jpegQuality = Convert.ToInt64(TextBox32.Text);
+ PicSettings.jpegQualityMin = Convert.ToInt64(TextBox33.Text);
+
+ PicSettings.mainForm = this;
+
+
+ }
+
+ private void makeSettingsFromFile()
+ {
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*";
+ openFileDialog.FilterIndex = 0;
+ openFileDialog.RestoreDirectory = true;
+
+ Dictionary settingsDict = new Dictionary(StringComparer.OrdinalIgnoreCase);
+
+ if (DialogResult.OK == openFileDialog.ShowDialog())
+ {
+ XMLSettings xmlSettings = new XMLSettings(openFileDialog.FileName);
+ settingsDict = xmlSettings.getParametriDict();
+
+
+ settingsDict = bindSettings(settingsDict);
+ setLogoMiniature();
+ this.Text = string.Format("Image Catalog - {0}", openFileDialog.FileName);
+
+
+ }
+ }
+
+ private void setLogoMiniature()
+ {
+ if (File.Exists(TextBox10.Text))
+ {
+
+ PictureBox1.Image = Image.FromFile(TextBox10.Text);
+ if (PictureBox1.Image.Height >= PictureBox1.Image.Width)
+ {
+ PictureBox1.Height = 160;
+ PictureBox1.Width = Convert.ToInt32(160 * PictureBox1.Image.Width / PictureBox1.Image.Height);
+ }
+ else
+ {
+ PictureBox1.Width = 224;
+ PictureBox1.Height = Convert.ToInt32(224 * PictureBox1.Image.Height / PictureBox1.Image.Width);
+ }
+ }
+ }
+
+ private Dictionary bindSettings(Dictionary dict)
+ {
+
+ txtSorgente.Text = dict["dirSorgente"].ToString();
+ txtDestinazione.Text = dict["dirDestinazione"].ToString();
+ chkAggiornaSottodirectory.Checked = Convert.ToBoolean(dict["DirSottoDirectory"]);
+
+ chkCreaSottocartelle.Checked = Convert.ToBoolean(dict["dirDividiDestinazione"]);
+ txtFilePerCartella.Text = dict["dirDividiNumFile"].ToString();
+ txtSuffissoCartelle.Text = dict["dirDividiSuffisso"].ToString();
+ txtCifreContatore.Text = dict["dirDividiNumCifre"].ToString();
+
+ if (dict["dirDividiTipoNumerazione"].ToString().ToUpper() == "PROGRESSIVA")
+ rdbNumProgressiva.Checked = true;
+ else
+ rdbNumFiles.Checked = true;
+
+ CheckBox1.Checked = Convert.ToBoolean(dict["miniatureCrea"]);
+ TextBox3.Text = dict["miniatureSuffisso"].ToString();
+ TextBox5.Text = dict["miniatureAltezza"].ToString();
+ TextBox6.Text = dict["miniatureLarghezza"].ToString();
+ RadioButton3.Checked = Convert.ToBoolean(dict["miniatureAddScritta"]);
+ RadioButton4.Checked = Convert.ToBoolean(dict["miniatureAddOrario"]);
+
+ TextBox27.Text = dict["fotoAltezza"].ToString();
+ TextBox28.Text = dict["fotoLarghezza"].ToString();
+
+ TextBox11.Text = dict["fontDimensione"].ToString();
+ TextBox25.Text = dict["fontDimensioneMiniatura"].ToString();
+ CheckBox3.Checked = Convert.ToBoolean(dict["fontBold"]);
+ ComboBox3.Text = dict["fontNome"].ToString();
+
+ TextBox4.Text = dict["testoTesto"].ToString();
+ TextBox9.Text = dict["testoTrasparente"].ToString();
+ TextBox12.Text = dict["testoMargine"].ToString();
+ ComboBox1.Text = dict["testoPosizione"].ToString();
+ ComboBox2.Text = dict["testoAllineamento"].ToString();
+
+ TextBox10.Text = dict["marchioFile"].ToString();
+ TextBox14.Text = dict["marchioAltezza"].ToString();
+ TextBox15.Text = dict["marchioLarghezza"].ToString();
+ TextBox16.Text = dict["marchioMargine"].ToString();
+ ComboBox4.Text = dict["marchioAllOrizzontale"].ToString();
+ ComboBox5.Text = dict["marchioAllVerticale"].ToString();
+ TextBox19.Text = dict["marchioTrasparenza"].ToString();
+ CheckBox5.Checked = Convert.ToBoolean(dict["MarchioAggiungi"]);
+
+ CheckBox7.Checked = Convert.ToBoolean(dict["tempoGara"]);
+ CheckBox8.Checked = Convert.ToBoolean(dict["orario"]);
+ TextBox18.Text = dict["etichettaOrario"].ToString();
+
+ chkForzaJpg.Checked = Convert.ToBoolean(dict["generaleForzaJpg"]);
+ chkRotazioneAutomatica.Checked = Convert.ToBoolean(dict["generaleRotazioneAutomatica"]);
+
+ TextBox30.Text = dict["grandezzaVerticale"].ToString();
+ TextBox31.Text = dict["margineVerticale"].ToString();
+ CheckBox15.Checked = Convert.ToBoolean(dict["dimensioniOriginali"]);
+ TextBox29.Text = dict["testoVerticale"].ToString();
+ RadioButton6.Checked = Convert.ToBoolean(dict["nomeMiniatura"]);
+ CheckBox16.Checked = Convert.ToBoolean(dict["dataFoto"]);
+ CheckBox17.Checked = Convert.ToBoolean(dict["numeroFoto"]);
+
+
+ RadioButton5.Checked = Convert.ToBoolean(dict["tempoSmall"]);
+ RadioButton7.Checked = Convert.ToBoolean(dict["numTempoSmall"]);
+
+ TextBox32.Text = dict["compressioneJpeg"].ToString();
+ TextBox33.Text = dict["compressioneJpegMiniatura"].ToString();
+
+ TextBox34.Text = dict["coloreTestoRGB"].ToString();
+
+
+
+ return dict;
+ }
+
+
+
+
+ private void caricaImpostazioniToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ makeSettingsFromFile();
+ }
+
+ private void btnStopCreazione_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void informazioniToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ AboutForm about = new AboutForm();
+ about.Show();
+ }
+
+ private void CheckBox2_CheckedChanged(object sender, EventArgs e)
+ {
+ if (CheckBox2.Checked)
+ panelTesto.Enabled = true;
+ else
+ panelTesto.Enabled = false;
+ }
+
+ private void CheckBox1_CheckedChanged(object sender, EventArgs e)
+ {
+ if (CheckBox1.Checked)
+ panelMiniature.Enabled = true;
+ else
+ panelMiniature.Enabled = false;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+}
diff --git a/ImageCatalogCS/MainForm.resx b/ImageCatalogCS/MainForm.resx
new file mode 100644
index 0000000..d5494e3
--- /dev/null
+++ b/ImageCatalogCS/MainForm.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/ImageCatalogCS/PicSettings.cs b/ImageCatalogCS/PicSettings.cs
new file mode 100644
index 0000000..9f930c8
--- /dev/null
+++ b/ImageCatalogCS/PicSettings.cs
@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ImageCatalogCS
+{
+ static class PicSettings
+ {
+ // Root
+ public static string directorySorgente { get; set; }
+ public static string directoryDestinazione { get; set; }
+
+ public static int dimVert { get; set; }
+ public static int margVert { get; set; }
+
+ public static int dimStandard { get; set; }
+ public static int dimStandardMiniatura { get; set; }
+
+ public static bool NomeData { get; set; }
+ public static bool TestoNome { get; set; }
+ public static bool UsaOrarioMiniatura { get; set; }
+ public static bool UsaOrarioTestoApplicare { get; set; }
+ public static bool UsaTempoGaraTestoApplicare { get; set; }
+ public static string TestoFirmaStart { get; set; }
+ public static string TestoFirmaStartV { get; set; }
+ public static DateTime DataPartenza { get; set; }
+
+ public static string TestoOrario { get; set; }
+ public static bool UsaRotazioneAutomatica { get; set; }
+
+ public static bool UsaForzaJpg { get; set; }
+ public static int LarghezzaSmall { get; set; }
+
+ public static int AltezzaSmall { get; set; }
+ public static bool CreaMiniature { get; set; }
+ public static bool AggiungiScritteMiniature { get; set; }
+ public static bool AggTempoGaraMin { get; set; }
+
+ public static bool AggNumTempMin { get; set; }
+ public static string Suffisso { get; set; }
+
+ public static string Codice { get; set; }
+ public static int Trasparenza { get; set; }
+ public static string IlFont { get; set; }
+
+ public static bool Grassetto { get; set; }
+ public static string Posizione { get; set; }
+ public static string Allineamento { get; set; }
+
+ public static int Margine { get; set; }
+ public static int LogoAltezza { get; set; }
+
+ public static int LogoLarghezza { get; set; }
+
+ public static Color fontColoreRGB { get; set; }
+ public static bool LogoAggiungi { get; set; }
+ public static string LogoNomeFile { get; set; }
+ public static string LogoTrasparenza { get; set; }
+ public static string LogoMargine { get; set; }
+ public static string LogoPosizioneH { get; set; }
+
+ public static string LogoPosizioneV { get; set; }
+ public static bool FotoGrandeDimOrigina { get; set; }
+ public static int AltezzaBig { get; set; }
+ public static int LarghezzaBig { get; set; }
+ public static DirectoryInfo DestDir { get; set; }
+
+ public static int DimMin { get; set; }
+
+ public static bool TestoMin { get; set; }
+ public static bool SecretDefault { get; set; }
+ public static bool SecretBig { get; set; }
+
+ public static bool SecretSmall { get; set; }
+ public static string SecretPathSmall { get; set; }
+
+ public static string SecretPathBig { get; set; }
+ public static long jpegQuality { get; set; }
+
+ public static long jpegQualityMin { get; set; }
+ public static bool FotoRuotaADestra { get; set; } // Default False
+
+ public static bool FotoRuotaASinistra { get; set; } // Default False
+
+ public static string TempMinText { get; set; } // Default ""
+ public static MainForm mainForm { get; set; }
+ }
+}
diff --git a/ImageCatalogCS/Program.cs b/ImageCatalogCS/Program.cs
new file mode 100644
index 0000000..9c2ec36
--- /dev/null
+++ b/ImageCatalogCS/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace ImageCatalogCS
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new MainForm());
+ }
+ }
+}
diff --git a/ImageCatalogCS/Properties/AssemblyInfo.cs b/ImageCatalogCS/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..97f38c2
--- /dev/null
+++ b/ImageCatalogCS/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ImageCatalogCS")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ImageCatalogCS")]
+[assembly: AssemblyCopyright("Copyright © 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("00b0a7a5-0de0-48e6-b0c9-ec214aa338dd")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ImageCatalogCS/Properties/Resources.Designer.cs b/ImageCatalogCS/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..9c3a10e
--- /dev/null
+++ b/ImageCatalogCS/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18010
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace ImageCatalogCS.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ImageCatalogCS.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/ImageCatalogCS/Properties/Resources.resx b/ImageCatalogCS/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/ImageCatalogCS/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/ImageCatalogCS/Properties/Settings.Designer.cs b/ImageCatalogCS/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..684a319
--- /dev/null
+++ b/ImageCatalogCS/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18010
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace ImageCatalogCS.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/ImageCatalogCS/Properties/Settings.settings b/ImageCatalogCS/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/ImageCatalogCS/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/ImageCatalogCS/Temperature.cs b/ImageCatalogCS/Temperature.cs
new file mode 100644
index 0000000..a56ed82
--- /dev/null
+++ b/ImageCatalogCS/Temperature.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Management;
+
+
+
+namespace ImageCatalogCS
+{
+ public class Temperature
+ {
+ public double CurrentValue { get; set; }
+ public string InstanceName { get; set; }
+ public static List Temperatures
+ {
+ get
+ {
+ List result = new List();
+ ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature");
+ foreach (ManagementObject obj in searcher.Get())
+ {
+ Double temp = Convert.ToDouble(obj["CurrentTemperature"].ToString());
+ temp = (temp - 2732) / 10.0;
+ result.Add(new Temperature { CurrentValue = temp, InstanceName = obj["InstanceName"].ToString() });
+ }
+ return result;
+
+ }
+ }
+ }
+}
diff --git a/ImageCatalogCS/XMLSettings.cs b/ImageCatalogCS/XMLSettings.cs
new file mode 100644
index 0000000..2443542
--- /dev/null
+++ b/ImageCatalogCS/XMLSettings.cs
@@ -0,0 +1,208 @@
+using Microsoft.VisualBasic;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using System.IO;
+
+public class XMLSettings
+{
+
+
+ private DataSet _ElencoParametri;
+
+ private string _NomeFileSetup;
+ public XMLSettings(string FileSetup)
+ {
+ _ElencoParametri = new DataSet();
+ _NomeFileSetup = FileSetup;
+
+ if (!string.IsNullOrEmpty(FileSetup))
+ {
+ CaricaParametriSetup();
+ }
+ }
+
+ public XMLSettings()
+ {
+ _ElencoParametri = new DataSet();
+ _NomeFileSetup = "";
+ }
+
+ public void CaricaParametriSetup()
+ {
+ _ElencoParametri = LeggiXmlDataSet("Setup", _NomeFileSetup, "Nome");
+ }
+
+ public void SalvaParametriSetup()
+ {
+ if (System.IO.File.Exists(_NomeFileSetup) == true)
+ {
+ File.Delete(_NomeFileSetup);
+ }
+ _ElencoParametri.WriteXml(_NomeFileSetup);
+ }
+
+ public Dictionary getParametriDict()
+ {
+ CaricaParametriSetup();
+ Dictionary dictParam = new Dictionary(StringComparer.OrdinalIgnoreCase);
+
+ //DataRow[] LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
+ //DataTable table = _ElencoParametri.Tables["Setup"];
+
+ foreach (DataRow row in _ElencoParametri.Tables["Setup"].Rows)
+ {
+ dictParam.Add(row["Nome"].ToString(), row["Valore"]);
+ }
+
+ return dictParam;
+ }
+
+ public string LeggiParametroString(string NomeParametro)
+ {
+ string Risposta = "";
+
+ try
+ {
+ DataRow[] LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
+
+ DataRow LaRiga = null;
+ foreach (DataRow LaRiga_loopVariable in LElenco)
+ {
+ LaRiga = LaRiga_loopVariable;
+ Risposta = LaRiga["Valore"].ToString();
+ }
+ }
+ catch
+ {
+ Risposta = "";
+ }
+
+ return Risposta;
+ }
+
+ public bool LeggiParametroBoolean(string NomeParametro)
+ {
+ string Risposta = "";
+
+ try
+ {
+ DataRow[] LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
+
+ DataRow LaRiga = null;
+ foreach (DataRow LaRiga_loopVariable in LElenco)
+ {
+ LaRiga = LaRiga_loopVariable;
+ Risposta = LaRiga["Valore"].ToString();
+ }
+ }
+ catch
+ {
+ Risposta = "";
+ }
+
+ switch (Risposta.ToUpper())
+ {
+ case "TRUE":
+ case "OK":
+ case "SI":
+ case "1":
+ case "YES":
+ case "VERO":
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ public void AggiornaParametro(string NomeParametro, object ValoreParametro)
+ {
+ try
+ {
+ if (_ElencoParametri.Tables["Setup"] == null)
+ {
+ DataTable TabellaTmp = new DataTable("Setup");
+ DataRow RigaTmp = null;
+
+ DataColumn LaColonna = null;
+ LaColonna = TabellaTmp.Columns.Add("Nome", System.Type.GetType("System.String"));
+ LaColonna = TabellaTmp.Columns.Add("Valore", System.Type.GetType("System.String"));
+
+ //* Aggiunge alla tabella tutte le righe
+ RigaTmp = TabellaTmp.NewRow();
+ RigaTmp["Nome"] = NomeParametro;
+ RigaTmp["Valore"] = ValoreParametro;
+ TabellaTmp.Rows.Add(RigaTmp);
+
+ _ElencoParametri.Tables.Add(TabellaTmp);
+ }
+ else
+ {
+ DataRow[] LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
+
+ if (LElenco.Length == 0)
+ {
+ DataRow LaRiga = null;
+ LaRiga = _ElencoParametri.Tables["Setup"].NewRow();
+ LaRiga["Nome"] = NomeParametro;
+ LaRiga["Valore"] = ValoreParametro;
+ _ElencoParametri.Tables["Setup"].Rows.Add(LaRiga);
+ }
+ else
+ {
+ LElenco[0]["Valore"] = ValoreParametro;
+ }
+ }
+
+ }
+ catch
+ {
+ }
+ }
+
+
+ private DataTable LeggiXmlDataTable(string NomeTabella, string NomeFileXml, string NomeColonnaChiave = "")
+ {
+ //* Crea e Legge il dataset dal file xml
+ System.Data.DataSet DataSetXml = new System.Data.DataSet();
+ DataSetXml.ReadXml(NomeFileXml);
+
+ //* Aggiunge il campo chiave
+ if (!string.IsNullOrEmpty(NomeColonnaChiave))
+ {
+ DataSetXml.Tables[NomeTabella].Constraints.Add(NomeColonnaChiave, DataSetXml.Tables[NomeTabella].Columns[NomeColonnaChiave], true);
+ }
+
+ //* Restituisce la risposta
+ return DataSetXml.Tables[NomeTabella];
+ }
+
+ private static DataSet LeggiXmlDataSet(string NomeTabella, string NomeFileXml, string NomeColonnaChiave = "")
+ {
+ //* Crea e Legge il dataset dal file xml
+ DataSet DataSetXml = new DataSet();
+ DataSetXml.ReadXml(NomeFileXml);
+
+ //* Aggiunge il campo chiave
+ if (!string.IsNullOrEmpty(NomeColonnaChiave))
+ {
+ DataSetXml.Tables[NomeTabella].Constraints.Add(NomeColonnaChiave, DataSetXml.Tables[NomeTabella].Columns[NomeColonnaChiave], true);
+ }
+
+ //* Restituisce la risposta
+ return DataSetXml;
+ }
+
+
+
+
+ public string NomeFileSetup
+ {
+ get { return _NomeFileSetup; }
+ set { _NomeFileSetup = value; }
+ }
+
+
+}
\ No newline at end of file
diff --git a/ImageCatalogCS/XYThreadPool.cs b/ImageCatalogCS/XYThreadPool.cs
new file mode 100644
index 0000000..005b30c
--- /dev/null
+++ b/ImageCatalogCS/XYThreadPool.cs
@@ -0,0 +1,251 @@
+using Microsoft.VisualBasic;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+
+using System.Threading;
+
+public delegate void ThreadErrorHandlerDelegate(ThreadPoolWorkItem oWorkItem, Exception oError);
+
+public class ThreadPoolWorkItem
+{
+ public bool m_bStoreOutput = false;
+ public string m_sName = "";
+ public Delegate m_pMethod = null;
+ public object[] m_pInput = null;
+ public object m_oOutput = null;
+ public Exception m_oException = null;
+ public ThreadPoolWorkItem()
+ {
+ }
+ public ThreadPoolWorkItem(string sName, Delegate pMethod, object[] pInput, bool bStoreOutput)
+ {
+ m_sName = sName;
+ m_pMethod = pMethod;
+ m_pInput = pInput;
+ m_bStoreOutput = bStoreOutput;
+ }
+}
+
+public class XYThreadPool
+{
+ private Hashtable m_htThreads = new Hashtable(256);
+ private int m_nMinThreadCount = 5;
+ private int m_nMaxThreadCount = 10;
+ private int m_nShutdownPause = 200;
+ private int m_nServerPause = 25;
+ private bool m_bContinue = false;
+ private static Exception m_oException = null;
+ private Queue m_qInput = new Queue(1024);
+ private Queue m_qOutput = new Queue(1024);
+ private Delegate m_delegateThreadErrorHandler = new ThreadErrorHandlerDelegate(OnThreadError);
+ private void ThreadProc()
+ {
+ while (m_bContinue)
+ {
+ object obj = null;
+ Monitor.Enter(this);
+ if (m_qInput.Count > 0)
+ obj = m_qInput.Dequeue();
+ Monitor.Exit(this);
+ if (obj == null)
+ {
+ bool bQuit = false;
+ Monitor.Enter(this);
+ if (m_htThreads.Count > m_nMinThreadCount)
+ {
+ m_htThreads.Remove(Thread.CurrentThread.Name);
+ bQuit = true;
+ }
+ Monitor.Exit(this);
+ if (bQuit)
+ return;
+ Thread.Sleep(10 * m_nServerPause);
+ }
+ else
+ {
+ ThreadPoolWorkItem oWorkItem = (ThreadPoolWorkItem)obj;
+ //oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
+ try
+ {
+ oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput);
+ }
+ catch (Exception oBug)
+ {
+ if ((m_delegateThreadErrorHandler != null))
+ {
+ try
+ {
+ object[] pInput = {
+ oWorkItem,
+ oBug
+ };
+ m_delegateThreadErrorHandler.DynamicInvoke(pInput);
+ }
+ catch
+ {
+ }
+ }
+ }
+ if (oWorkItem.m_bStoreOutput)
+ {
+ Monitor.Enter(m_qOutput);
+ m_qOutput.Enqueue(oWorkItem);
+ Monitor.Exit(m_qOutput);
+ }
+ Thread.Sleep(m_nServerPause);
+ }
+ }
+ }
+ private static void OnThreadError(ThreadPoolWorkItem oWorkItem, Exception oError)
+ {
+ if (oWorkItem == null)
+ {
+ m_oException = oError;
+ }
+ else
+ {
+ oWorkItem.m_oException = oError;
+ }
+ }
+ public void SetThreadErrorHandler(ThreadErrorHandlerDelegate pMethod)
+ {
+ Monitor.Enter(this);
+ m_delegateThreadErrorHandler = pMethod;
+ Monitor.Exit(this);
+ }
+ public void SetServerPause(int nMilliseconds)
+ {
+ Monitor.Enter(this);
+ if (nMilliseconds > 9 & nMilliseconds < 101)
+ m_nServerPause = nMilliseconds;
+ Monitor.Exit(this);
+ }
+ public void SetShutdownPause(int nMilliseconds)
+ {
+ Monitor.Enter(this);
+ m_nShutdownPause = nMilliseconds;
+ Monitor.Exit(this);
+ }
+ public Exception GetException()
+ {
+ return m_oException;
+ }
+ public void InsertWorkItem(ThreadPoolWorkItem oWorkItem)
+ {
+ try
+ {
+ Monitor.Enter(this);
+ m_qInput.Enqueue(oWorkItem);
+ if (m_bContinue && m_qInput.Count > m_htThreads.Count && m_htThreads.Count < m_nMaxThreadCount)
+ {
+ Thread th = new Thread(ThreadProc);
+ th.Name = Guid.NewGuid().ToString();
+ m_htThreads.Add(th.Name, th);
+ th.Start();
+ }
+ }
+ catch (Exception oBug)
+ {
+ m_oException = oBug;
+ }
+ finally
+ {
+ Monitor.Exit(this);
+ }
+ }
+ public void InsertWorkItem(string sName, Delegate pMethod, object[] pArgs, bool bStoreOutput)
+ {
+ InsertWorkItem(new ThreadPoolWorkItem(sName, pMethod, pArgs, bStoreOutput));
+ }
+ public ThreadPoolWorkItem ExtractWorkItem()
+ {
+ object oWorkItem = null;
+ Monitor.Enter(m_qOutput);
+ if (m_qOutput.Count > 0)
+ oWorkItem = m_qOutput.Dequeue();
+ Monitor.Exit(m_qOutput);
+ if (oWorkItem == null)
+ return null;
+ return (ThreadPoolWorkItem)oWorkItem;
+ }
+ public bool StartThreadPool(int nMinThreadCount = 5, int nMaxThreadCount = 10)
+ {
+ try
+ {
+ Monitor.Enter(this);
+ if (m_bContinue == false)
+ {
+ m_bContinue = true;
+ if (nMinThreadCount > 0)
+ {
+ m_nMinThreadCount = nMinThreadCount;
+ }
+ if (nMaxThreadCount > m_nMinThreadCount)
+ {
+ m_nMaxThreadCount = nMaxThreadCount;
+ }
+ else
+ {
+ m_nMaxThreadCount = 2 * m_nMinThreadCount;
+ }
+ int i = 0;
+ for (i = 1; i <= m_nMinThreadCount; i++)
+ {
+ Thread th = new Thread(ThreadProc);
+ th.Name = Guid.NewGuid().ToString();
+ m_htThreads.Add(th.Name, th);
+ th.Start();
+ }
+ }
+ return true;
+ }
+ catch (Exception oBug)
+ {
+ m_bContinue = false;
+ m_oException = oBug;
+ return false;
+ }
+ finally
+ {
+ Monitor.Exit(this);
+ }
+ }
+ public void StopThreadPool()
+ {
+ Monitor.Enter(this);
+ m_bContinue = false;
+ Thread.Sleep(Math.Max(200, m_nShutdownPause));
+ if ((m_nShutdownPause > 0))
+ {
+ IDictionaryEnumerator dict = m_htThreads.GetEnumerator();
+ while (dict.MoveNext())
+ {
+ Thread th = (Thread)dict.Value;
+ if (th.IsAlive)
+ {
+ try
+ {
+ th.Abort();
+ }
+ catch
+ {
+ }
+ }
+ }
+ }
+ m_htThreads.Clear();
+ m_qInput.Clear();
+ // m_qOutput.Clear()
+ Monitor.Exit(this);
+ }
+ public int GetThreadCount()
+ {
+ Monitor.Enter(this);
+ int nCount = m_htThreads.Count;
+ Monitor.Exit(this);
+ return nCount;
+ }
+}
\ No newline at end of file
diff --git a/WPFCatalog/App.config b/WPFCatalog/App.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/WPFCatalog/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WPFCatalog/App.xaml b/WPFCatalog/App.xaml
new file mode 100644
index 0000000..7e98dfe
--- /dev/null
+++ b/WPFCatalog/App.xaml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/WPFCatalog/App.xaml.cs b/WPFCatalog/App.xaml.cs
new file mode 100644
index 0000000..ac50df1
--- /dev/null
+++ b/WPFCatalog/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace WPFCatalog
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/WPFCatalog/Icons/camera-photo-5.png b/WPFCatalog/Icons/camera-photo-5.png
new file mode 100644
index 0000000..1e54dea
Binary files /dev/null and b/WPFCatalog/Icons/camera-photo-5.png differ
diff --git a/WPFCatalog/Icons/document-open-6.png b/WPFCatalog/Icons/document-open-6.png
new file mode 100644
index 0000000..fe03b7f
Binary files /dev/null and b/WPFCatalog/Icons/document-open-6.png differ
diff --git a/WPFCatalog/Icons/face-smile-2.png b/WPFCatalog/Icons/face-smile-2.png
new file mode 100644
index 0000000..24ce7a5
Binary files /dev/null and b/WPFCatalog/Icons/face-smile-2.png differ
diff --git a/WPFCatalog/Icons/format-justify-left-2.png b/WPFCatalog/Icons/format-justify-left-2.png
new file mode 100644
index 0000000..d6abc05
Binary files /dev/null and b/WPFCatalog/Icons/format-justify-left-2.png differ
diff --git a/WPFCatalog/Icons/photo.png b/WPFCatalog/Icons/photo.png
new file mode 100644
index 0000000..0b2e201
Binary files /dev/null and b/WPFCatalog/Icons/photo.png differ
diff --git a/WPFCatalog/Icons/picture.png b/WPFCatalog/Icons/picture.png
new file mode 100644
index 0000000..b773744
Binary files /dev/null and b/WPFCatalog/Icons/picture.png differ
diff --git a/WPFCatalog/MainWindow.xaml b/WPFCatalog/MainWindow.xaml
new file mode 100644
index 0000000..acaeff7
--- /dev/null
+++ b/WPFCatalog/MainWindow.xaml
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WPFCatalog/MainWindow.xaml.cs b/WPFCatalog/MainWindow.xaml.cs
new file mode 100644
index 0000000..677b726
--- /dev/null
+++ b/WPFCatalog/MainWindow.xaml.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using CatalogLib;
+
+namespace WPFCatalog
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ public PicSettings GlobalSettings = new PicSettings();
+ public MainWindow()
+ {
+ InitializeComponent();
+
+ DataContext = new MainWindowViewModel();
+
+ SetDefaults();
+ }
+
+ private void SetDefaults()
+ {
+
+ }
+
+ }
+}
diff --git a/WPFCatalog/MainWindowViewModel.cs b/WPFCatalog/MainWindowViewModel.cs
new file mode 100644
index 0000000..80b28bb
--- /dev/null
+++ b/WPFCatalog/MainWindowViewModel.cs
@@ -0,0 +1,493 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using CatalogLib;
+
+namespace WPFCatalog
+{
+ public class MainWindowViewModel : ViewModelBase
+ {
+ public PicSettings PicSettings { get; set; }
+
+ public MainWindowViewModel()
+ {
+ PicSettings = new PicSettings();
+
+ }
+
+ #region ProprietÃ
+
+ public PicSettings SettingsString
+ {
+ get { return PicSettings; }
+ }
+
+ public string DirSorgente
+ {
+ get { return PicSettings.GetString("dirSorgente"); }
+ set { PicSettings.Set("dirSorgente", value); }
+ }
+
+ public string DirDestinazione
+ {
+ get { return PicSettings.GetString("dirDestinazione"); }
+ set
+ {
+ PicSettings.Set("dirDestinazione", value);
+ RaisePropertyChanged("DirDestinazione");
+ }
+ }
+
+ public bool DirSottoDirectory
+ {
+ get { return PicSettings.GetBool("dirSottoDirectory"); }
+ set
+ {
+ PicSettings.Set("dirSottoDirectory", value);
+ RaisePropertyChanged("DirSottoDirectory");
+ }
+ }
+
+ public bool SubdirCreaSottoCartelle
+ {
+ //get { return PicSettings.GetBool("")}
+ }
+
+ public string DirDividiNumFile { get { return PicSettings.GetString("dirDividiNumFile"); } set { PicSettings.Set("dirDividiNumFile", value); } }
+ public string DirDividiSuffisso { get { return PicSettings.GetString("dirDividiSuffisso"); } set { PicSettings.Set("dirDividiSuffisso", value); } }
+ public string DirDividiNumCifre { get { return PicSettings.GetString("dirDividiNumCifre"); } set { PicSettings.Set("dirDividiNumCifre", value); RaisePropertyChanged("DirDividiNumCifre");} }
+ public bool DirDividiDestinazione { get { return PicSettings.GetBool("dirDividiDestinazione"); } set { PicSettings.Set("dirDividiDestinazione", value); } }
+ public bool DirDividiTipoNumerazioneProg { get { return PicSettings.GetString("DirDividiTipoNumerazione").ToUpper() == "PROGRESSIVA"; } set { if (value == true) PicSettings.Set("DirDividiTipoNumerazione", "PROGRESSIVA"); } }
+ public bool DirDividiTipoNumerazioneFile { get { return PicSettings.GetString("DirDividiTipoNumerazione").ToUpper() == "FILES"; } set { if (value == false) PicSettings.Set("DirDividiTipoNumerazione", "FILES"); } }
+ public bool MiniatureCrea { get { return PicSettings.GetBool("miniatureCrea"); } set { PicSettings.Set("miniatureCrea",value); RaisePropertyChanged("MiniatureCrea");} }
+
+ public string MiniatureSuffisso
+ {
+ get { return PicSettings.GetString("miniatureSuffisso"); }
+ set
+ {
+ PicSettings.Set("miniatureSuffisso", value);
+ RaisePropertyChanged("MiniatureSuffisso");
+ }
+ }
+
+ public string MiniatureAltezza
+ {
+ get { return PicSettings.GetString("miniatureAltezza"); }
+ set
+ {
+ PicSettings.Set("miniatureAltezza", value);
+ RaisePropertyChanged("MiniatureAltezza");
+ }
+ }
+
+ public string MiniatureLarghezza
+ {
+ get { return PicSettings.GetString("miniatureLarghezza"); }
+ set
+ {
+ PicSettings.Set("miniatureLarghezza", value);
+ RaisePropertyChanged("MiniatureLarghezza");
+ }
+ }
+
+ public bool MiniatureAddScritta
+ {
+ get { return PicSettings.GetBool("miniatureAddScritta"); }
+ set
+ {
+ PicSettings.Set("miniatureAddScritta", value);
+ RaisePropertyChanged("MiniatureAddScritta");
+ }
+ }
+
+ public bool MiniatureAddOrario
+ {
+ get { return PicSettings.GetBool("miniatureAddOrario"); }
+ set
+ {
+ PicSettings.Set("miniatureAddOrario", value);
+ RaisePropertyChanged("MiniatureAddOrario");
+ }
+ }
+
+ public string FotoAltezza
+ {
+ get { return PicSettings.GetString("fotoAltezza"); }
+ set
+ {
+ PicSettings.Set("fotoAltezza", value);
+ RaisePropertyChanged("FotoAltezza");
+ }
+ }
+
+ public string FotoLarghezza
+ {
+ get { return PicSettings.GetString("fotoLarghezza"); }
+ set
+ {
+ PicSettings.Set("fotoLarghezza", value);
+ RaisePropertyChanged("FotoLarghezza");
+ }
+ }
+
+ public string FontDimensione
+ {
+ get { return PicSettings.GetString("fontDimensione"); }
+ set
+ {
+ PicSettings.Set("fontDimensione", value);
+ RaisePropertyChanged("FontDimensione");
+ }
+ }
+
+ public string FontDimensioneMiniatura
+ {
+ get { return PicSettings.GetString("fontDimensioneMiniatura"); }
+ set
+ {
+ PicSettings.Set("fontDimensioneMiniatura", value);
+ RaisePropertyChanged("FontDimensioneMiniatura");
+ }
+ }
+
+ public bool FontBold
+ {
+ get { return PicSettings.GetBool("fontBold"); }
+ set
+ {
+ PicSettings.Set("fontBold", value);
+ RaisePropertyChanged("FontBold");
+ }
+ }
+
+ public bool FontNome
+ {
+ get { return PicSettings.GetBool("fontNome"); }
+ set
+ {
+ PicSettings.Set("$parName", value);
+ RaisePropertyChanged("FontNome");
+ }
+ }
+
+ public string TestoTesto
+ {
+ get { return PicSettings.GetString("testoTesto"); }
+ set
+ {
+ PicSettings.Set("testoTesto", value);
+ RaisePropertyChanged("TestoTesto");
+ }
+ }
+
+ public string TestoTrasparente
+ {
+ get { return PicSettings.GetString("testoTrasparente"); }
+ set
+ {
+ PicSettings.Set("testoTrasparente", value);
+ RaisePropertyChanged("TestoTrasparente");
+ }
+ }
+
+ public string TestoMargine
+ {
+ get { return PicSettings.GetString("testoMargine"); }
+ set
+ {
+ PicSettings.Set("testoMargine", value);
+ RaisePropertyChanged("TestoMargine");
+ }
+ }
+
+ public string TestoPosizione
+ {
+ get { return PicSettings.GetString("testoPosizione"); }
+ set
+ {
+ PicSettings.Set("testoPosizione", value);
+ RaisePropertyChanged("TestoPosizione");
+ }
+ }
+
+ public string TestoAllineamento
+ {
+ get { return PicSettings.GetString("testoAllineamento"); }
+ set
+ {
+ PicSettings.Set("testoAllineamento", value);
+ RaisePropertyChanged("TestoAllineamento");
+ }
+ }
+
+ public string MarchioFile
+ {
+ get { return PicSettings.GetString("marchioFile"); }
+ set
+ {
+ PicSettings.Set("marchioFile", value);
+ RaisePropertyChanged("MarchioFile");
+ }
+ }
+
+ public string MarchioAltezza
+ {
+ get { return PicSettings.GetString("marchioAltezza"); }
+ set
+ {
+ PicSettings.Set("marchioAltezza", value);
+ RaisePropertyChanged("MarchioAltezza");
+ }
+ }
+
+ public string MarchioLarghezza
+ {
+ get { return PicSettings.GetString("marchioLarghezza"); }
+ set
+ {
+ PicSettings.Set("marchioLarghezza", value);
+ RaisePropertyChanged("MarchioLarghezza");
+ }
+ }
+
+ public string MarchioMargine
+ {
+ get { return PicSettings.GetString("marchioMargine"); }
+ set
+ {
+ PicSettings.Set("marchioMargine", value);
+ RaisePropertyChanged("MarchioMargine");
+ }
+ }
+
+ public string MarchioAllOrizzontale
+ {
+ get { return PicSettings.GetString("marchioAllOrizzontale"); }
+ set
+ {
+ PicSettings.Set("marchioAllOrizzontale", value);
+ RaisePropertyChanged("MarchioAllOrizzontale");
+ }
+ }
+
+ public string MarchioAllVerticale
+ {
+ get { return PicSettings.GetString("marchioAllVerticale"); }
+ set
+ {
+ PicSettings.Set("marchioAllVerticale", value);
+ RaisePropertyChanged("MarchioAllVerticale");
+ }
+ }
+
+ public string MarchioTrasparenza
+ {
+ get { return PicSettings.GetString("marchioTrasparenza"); }
+ set
+ {
+ PicSettings.Set("marchioTrasparenza", value);
+ RaisePropertyChanged("MarchioTrasparenza");
+ }
+ }
+
+ public bool MarchioAggiungi
+ {
+ get { return PicSettings.GetBool("marchioAggiungi"); }
+ set
+ {
+ PicSettings.Set("marchioAggiungi", value);
+ RaisePropertyChanged("MarchioAggiungi");
+ }
+ }
+
+ public bool TempoGara
+ {
+ get { return PicSettings.GetBool("tempoGara"); }
+ set
+ {
+ PicSettings.Set("tempoGara", value);
+ RaisePropertyChanged("TempoGara");
+ }
+ }
+
+ public bool Orario
+ {
+ get { return PicSettings.GetBool("orario"); }
+ set
+ {
+ PicSettings.Set("orario", value);
+ RaisePropertyChanged("Orario");
+ }
+ }
+
+ public string EtichettaOrario
+ {
+ get { return PicSettings.GetString("etichettaOrario"); }
+ set
+ {
+ PicSettings.Set("etichettaOrario", value);
+ RaisePropertyChanged("EtichettaOrario");
+ }
+ }
+
+ public bool GeneraleForzaJpg
+ {
+ get { return PicSettings.GetBool("generaleForzaJpg"); }
+ set
+ {
+ PicSettings.Set("generaleForzaJpg", value);
+ RaisePropertyChanged("GeneraleForzaJpg");
+ }
+ }
+
+ public bool GeneraleRotazioneAutomatica
+ {
+ get { return PicSettings.GetBool("generaleRotazioneAutomatica"); }
+ set
+ {
+ PicSettings.Set("generaleRotazioneAutomatica", value);
+ RaisePropertyChanged("GeneraleRotazioneAutomatica");
+ }
+ }
+
+ public bool GeneraleSovrascriviFile
+ {
+ get { return PicSettings.GetBool("generaleSovrascriviFile"); }
+ set
+ {
+ PicSettings.Set("generaleSovrascriviFile", value);
+ RaisePropertyChanged("GeneraleSovrascriviFile");
+ }
+ }
+
+
+ public string GrandezzaVerticale
+ {
+ get { return PicSettings.GetString("grandezzaVerticale"); }
+ set
+ {
+ PicSettings.Set("grandezzaVerticale", value);
+ RaisePropertyChanged("GrandezzaVerticale");
+ }
+ }
+
+ public string MargineVerticale
+ {
+ get { return PicSettings.GetString("margineVerticale"); }
+ set
+ {
+ PicSettings.Set("margineVerticale", value);
+ RaisePropertyChanged("MargineVerticale");
+ }
+ }
+
+ public bool DimensioniOriginali
+ {
+ get { return PicSettings.GetBool("dimensioniOriginali"); }
+ set
+ {
+ PicSettings.Set("dimensioniOriginali", value);
+ RaisePropertyChanged("DimensioniOriginali");
+ }
+ }
+
+ public string TestoVerticale
+ {
+ get { return PicSettings.GetString("testoVerticale"); }
+ set
+ {
+ PicSettings.Set("testoVerticale", value);
+ RaisePropertyChanged("TestoVerticale");
+ }
+ }
+
+ public bool NomeMiniatura
+ {
+ get { return PicSettings.GetBool("nomeMiniatura"); }
+ set
+ {
+ PicSettings.Set("nomeMiniatura", value);
+ RaisePropertyChanged("NomeMiniatura");
+ }
+ }
+
+ public bool DataFoto
+ {
+ get { return PicSettings.GetBool("dataFoto"); }
+ set
+ {
+ PicSettings.Set("dataFoto", value);
+ RaisePropertyChanged("DataFoto");
+ }
+ }
+
+ public bool NumeroFoto
+ {
+ get { return PicSettings.GetBool("numeroFoto"); }
+ set
+ {
+ PicSettings.Set("numeroFoto", value);
+ RaisePropertyChanged("NumeroFoto");
+ }
+ }
+
+ public bool TempoSmall
+ {
+ get { return PicSettings.GetBool("tempoSmall"); }
+ set
+ {
+ PicSettings.Set("tempoSmall", value);
+ RaisePropertyChanged("TempoSmall");
+ }
+ }
+
+ public bool NumTempoSmall
+ {
+ get { return PicSettings.GetBool("numTempoSmall"); }
+ set
+ {
+ PicSettings.Set("numTempoSmall", value);
+ RaisePropertyChanged("NumTempoSmall");
+ }
+ }
+
+ public string CompressioneJpeg
+ {
+ get { return PicSettings.GetString("compressioneJpeg"); }
+ set
+ {
+ PicSettings.Set("compressioneJpeg", value);
+ RaisePropertyChanged("CompressioneJpeg");
+ }
+ }
+
+ public string CompressioneJpegMiniatura
+ {
+ get { return PicSettings.GetString("compressioneJpegMiniatura"); }
+ set
+ {
+ PicSettings.Set("compressioneJpegMiniatura", value);
+ RaisePropertyChanged("CompressioneJpegMiniatura");
+ }
+ }
+
+ public string ColoreTestoRGB
+ {
+ get { return PicSettings.GetString("coloreTestoRGB"); }
+ set
+ {
+ PicSettings.Set("coloreTestoRGB", value);
+ RaisePropertyChanged("ColoreTestoRGB");
+ }
+ }
+
+ #endregion
+
+
+
+
+ }
+}
diff --git a/WPFCatalog/Properties/AssemblyInfo.cs b/WPFCatalog/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..5ade458
--- /dev/null
+++ b/WPFCatalog/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WPFCatalog")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WPFCatalog")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set
+//CultureYouAreCodingWith in your .csproj file
+//inside a . For example, if you are using US english
+//in your source files, set the to en-US. Then uncomment
+//the NeutralResourceLanguage attribute below. Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/WPFCatalog/Properties/Resources.Designer.cs b/WPFCatalog/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..aa15d26
--- /dev/null
+++ b/WPFCatalog/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18052
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WPFCatalog.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WPFCatalog.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/WPFCatalog/Properties/Resources.resx b/WPFCatalog/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/WPFCatalog/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/WPFCatalog/Properties/Settings.Designer.cs b/WPFCatalog/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..7150058
--- /dev/null
+++ b/WPFCatalog/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18052
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WPFCatalog.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/WPFCatalog/Properties/Settings.settings b/WPFCatalog/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/WPFCatalog/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WPFCatalog/ViewModel/MainViewModel.cs b/WPFCatalog/ViewModel/MainViewModel.cs
new file mode 100644
index 0000000..b64003e
--- /dev/null
+++ b/WPFCatalog/ViewModel/MainViewModel.cs
@@ -0,0 +1,37 @@
+using GalaSoft.MvvmLight;
+
+namespace WPFCatalog.ViewModel
+{
+ ///
+ /// This class contains properties that the main View can data bind to.
+ ///
+ /// Use the mvvminpc snippet to add bindable properties to this ViewModel.
+ ///
+ ///
+ /// You can also use Blend to data bind with the tool's support.
+ ///
+ ///
+ /// See http://www.galasoft.ch/mvvm
+ ///
+ ///
+ public class MainViewModel : ViewModelBase
+ {
+ ///
+ /// Initializes a new instance of the MainViewModel class.
+ ///
+ public MainViewModel()
+ {
+ ////if (IsInDesignMode)
+ ////{
+ //// // Code runs in Blend --> create design time data.
+ ////}
+ ////else
+ ////{
+ //// // Code runs "for real"
+ ////}
+
+
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/WPFCatalog/ViewModel/ViewModelLocator.cs b/WPFCatalog/ViewModel/ViewModelLocator.cs
new file mode 100644
index 0000000..106efb8
--- /dev/null
+++ b/WPFCatalog/ViewModel/ViewModelLocator.cs
@@ -0,0 +1,63 @@
+/*
+ In App.xaml:
+
+
+
+
+ In the View:
+ DataContext="{Binding Source={StaticResource Locator}, Path=ViewModelName}"
+
+ You can also use Blend to do all this with the tool's support.
+ See http://www.galasoft.ch/mvvm
+*/
+
+using GalaSoft.MvvmLight;
+using GalaSoft.MvvmLight.Ioc;
+using Microsoft.Practices.ServiceLocation;
+
+namespace WPFCatalog.ViewModel
+{
+ ///
+ /// This class contains static references to all the view models in the
+ /// application and provides an entry point for the bindings.
+ ///
+ public class ViewModelLocator
+ {
+ ///
+ /// Initializes a new instance of the ViewModelLocator class.
+ ///
+ public ViewModelLocator()
+ {
+ ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
+
+ ////if (ViewModelBase.IsInDesignModeStatic)
+ ////{
+ //// // Create design time view services and models
+ //// SimpleIoc.Default.Register();
+ ////}
+ ////else
+ ////{
+ //// // Create run time view services and models
+ //// SimpleIoc.Default.Register();
+ ////}
+
+ SimpleIoc.Default.Register();
+ }
+
+ public MainViewModel Main
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance();
+ }
+ }
+
+
+
+ public static void Cleanup()
+ {
+ // TODO Clear the ViewModels
+ }
+ }
+}
\ No newline at end of file
diff --git a/WPFCatalog/ViewModelBase.cs b/WPFCatalog/ViewModelBase.cs
new file mode 100644
index 0000000..a5bd351
--- /dev/null
+++ b/WPFCatalog/ViewModelBase.cs
@@ -0,0 +1,127 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.ComponentModel;
+using System.Diagnostics;
+
+namespace WPFCatalog
+{
+ public abstract class ViewModelBase : GalaSoft.MvvmLight.ViewModelBase, INotifyPropertyChanged, IDisposable
+ {
+
+ #region Constructor
+
+ protected ViewModelBase()
+ {
+ }
+
+ #endregion // Constructor
+
+ #region DisplayName
+
+ ///
+ /// Returns the user-friendly name of this object.
+ /// Child classes can set this property to a new value,
+ /// or override it to determine the value on-demand.
+ ///
+ public virtual string DisplayName { get; protected set; }
+
+ #endregion // DisplayName
+
+ #region Debugging Aides
+
+ /////
+ ///// Warns the developer if this object does not have
+ ///// a public property with the specified name. This
+ ///// method does not exist in a Release build.
+ /////
+ //[Conditional("DEBUG")]
+ //[DebuggerStepThrough]
+ //public void VerifyPropertyName(string propertyName)
+ //{
+ // // Verify that the property name matches a real,
+ // // public, instance property on this object.
+ // if (TypeDescriptor.GetProperties(this)[propertyName] == null)
+ // {
+ // string msg = "Invalid property name: " + propertyName;
+
+ // if (this.ThrowOnInvalidPropertyName)
+ // throw new Exception(msg);
+ // else
+ // Debug.Fail(msg);
+ // }
+ //}
+
+ ///
+ /// Returns whether an exception is thrown, or if a Debug.Fail() is used
+ /// when an invalid property name is passed to the VerifyPropertyName method.
+ /// The default value is false, but subclasses used by unit tests might
+ /// override this property's getter to return true.
+ ///
+ protected virtual bool ThrowOnInvalidPropertyName { get; private set; }
+
+ #endregion // Debugging Aides
+
+
+
+ #region INotifyPropertyChanged Members
+
+ ///
+ /// Raised when a property on this object has a new value.
+ ///
+ //public event PropertyChangedEventHandler PropertyChanged;
+
+ /////
+ ///// Raises this object's PropertyChanged event.
+ /////
+ ///// The property that has a new value.
+ //protected virtual void OnPropertyChanged(string propertyName)
+ //{
+ // this.VerifyPropertyName(propertyName);
+
+ // PropertyChangedEventHandler handler = this.PropertyChanged;
+ // if (handler != null)
+ // {
+ // var e = new PropertyChangedEventArgs(propertyName);
+ // handler(this, e);
+ // }
+ //}
+
+ #endregion // INotifyPropertyChanged Members
+
+ #region IDisposable Members
+
+ ///
+ /// Invoked when this object is being removed from the application
+ /// and will be subject to garbage collection.
+ ///
+ public void Dispose()
+ {
+ this.OnDispose();
+ }
+
+ ///
+ /// Child classes can override this method to perform
+ /// clean-up logic, such as removing event handlers.
+ ///
+ protected virtual void OnDispose()
+ {
+ }
+
+#if DEBUG
+ ///
+ /// Useful for ensuring that ViewModel objects are properly garbage collected.
+ ///
+ ~ViewModelBase()
+ {
+ string msg = string.Format("{0} ({1}) ({2}) Finalized", this.GetType().Name, this.DisplayName, this.GetHashCode());
+ System.Diagnostics.Debug.WriteLine(msg);
+ }
+#endif
+
+ #endregion // IDisposable Members
+
+ }
+}
diff --git a/WPFCatalog/WPFCatalog.csproj b/WPFCatalog/WPFCatalog.csproj
new file mode 100644
index 0000000..b987571
--- /dev/null
+++ b/WPFCatalog/WPFCatalog.csproj
@@ -0,0 +1,178 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {638DE501-CECA-4744-B293-7AE93CAEEB01}
+ WinExe
+ Properties
+ WPFCatalog
+ WPFCatalog
+ v4.5
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+ ..\packages\MvvmLightLibs.4.1.27.1\lib\net45\GalaSoft.MvvmLight.Extras.WPF45.dll
+
+
+ ..\packages\MvvmLightLibs.4.1.27.1\lib\net45\GalaSoft.MvvmLight.WPF45.dll
+
+
+ ..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\MvvmLightLibs.4.1.27.1\lib\net45\System.Windows.Interactivity.dll
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ ..\packages\Extended.Wpf.Toolkit.2.1.0\lib\net40\Xceed.Wpf.AvalonDock.dll
+
+
+ ..\packages\Extended.Wpf.Toolkit.2.1.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll
+
+
+ ..\packages\Extended.Wpf.Toolkit.2.1.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll
+
+
+ ..\packages\Extended.Wpf.Toolkit.2.1.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll
+
+
+ ..\packages\Extended.Wpf.Toolkit.2.1.0\lib\net40\Xceed.Wpf.DataGrid.dll
+
+
+ ..\packages\Extended.Wpf.Toolkit.2.1.0\lib\net40\Xceed.Wpf.Toolkit.dll
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {d27accf2-80fc-4de8-aeb8-351ff076e6d5}
+ CatalogLib
+
+
+
+
+
\ No newline at end of file
diff --git a/WPFCatalog/packages.config b/WPFCatalog/packages.config
new file mode 100644
index 0000000..f6d4e6c
--- /dev/null
+++ b/WPFCatalog/packages.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/imagecatalog/AssemblyInfo.vb b/imagecatalog/AssemblyInfo.vb
new file mode 100644
index 0000000..96c6530
--- /dev/null
+++ b/imagecatalog/AssemblyInfo.vb
@@ -0,0 +1,31 @@
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' General Information about an assembly is controlled through the following
+' set of attributes. Change these attribute values to modify the information
+' associated with an assembly.
+
+' Review the values of the assembly attributes
+
+
+
+
+
+
+
+
+
+'The following GUID is for the ID of the typelib if this project is exposed to COM
+
+
+' Version information for an assembly consists of the following four values:
+'
+' Major Version
+' Minor Version
+' Build Number
+' Revision
+'
+' You can specify all the values or you can default the Build and Revision Numbers
+' by using the '*' as shown below:
+
+
diff --git a/imagecatalog/ClassDiagram1.cd b/imagecatalog/ClassDiagram1.cd
new file mode 100644
index 0000000..0519ecb
--- /dev/null
+++ b/imagecatalog/ClassDiagram1.cd
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/imagecatalog/CreaImmagineSeparateMultiCore.vb b/imagecatalog/CreaImmagineSeparateMultiCore.vb
new file mode 100644
index 0000000..4b645f8
--- /dev/null
+++ b/imagecatalog/CreaImmagineSeparateMultiCore.vb
@@ -0,0 +1,943 @@
+Imports System.IO
+'Imports System.Drawing.Drawing2D
+'Imports System.Drawing.Imaging
+'Imports System.Threading
+
+Public Class CreaImmagineSeparateMultiCore
+
+ Private _DirectorySorgente As String
+ Private _DirectoryDestinazione As String
+
+
+ Private _SourceDir As DirectoryInfo
+ Private _DestDirStart As DirectoryInfo
+ Private _DimStandard As Integer
+ Private _DimStandardMiniatura As Integer
+
+
+ Private _UsaOrarioMiniatura As Boolean
+ Private _UsaOrarioTestoApplicare As Boolean
+ Private _UsaTempoGaraTestoApplicare As Boolean
+ Private _TestoFirmaStart As String
+ Private _TestoFirmaStartV As String
+ Private _DataPartenza As DateTime
+ Private _TestoOrario As String
+
+ Private _UsaRotazioneAutomatica As Boolean
+ Private _UsaForzaJpg As Boolean
+
+ Private _LarghezzaSmall As Integer
+ Private _AltezzaSmall As Integer
+
+ Private _CreaMiniature As Boolean
+ Private _AggiungiScritteMiniature As Boolean
+
+ Private _NomeFileChild As String
+ Private _Suffisso As String
+ Private _Codice As String
+
+ Private _Trasparenza As Integer
+ Private _IlFont As String
+ Private _Grassetto As Boolean
+
+ Private _Posizione As String
+ Private _Allineamento As String
+ Private _Margine As Integer
+
+ Private _LogoAltezza As Integer
+ Private _LogoLarghezza As Integer
+
+ Private _FontColoreR As Integer
+ Private _FontColoreG As Integer
+ Private _FontColoreB As Integer
+
+ Private _LogoAggiungi As Boolean
+ Private _LogoNomeFile As String
+ Private _LogoTrasparenza As String
+ Private _LogoMargine As String
+ Private _LogoPosizioneH As String
+ Private _LogoPosizioneV As String
+
+ Private _FotoGrandeDimOrigina As Boolean
+ Private _AltezzaBig As Integer
+ Private _LarghezzaBig As Integer
+ Private _DestDir As DirectoryInfo
+
+ Public Sub CreaImmagine(ByVal InfoImg As PicInfo)
+ Dim TestoFirma As String = ""
+
+ _DestDir = InfoImg.DirDest
+ _SourceDir = InfoImg.DirSource
+ _DestDirStart = InfoImg.DirDestStart
+ _NomeFileChild = InfoImg.NomeImmagine
+
+ Dim AlphaScelta As Integer = CType((255 * (100 - _Trasparenza) / 100), Integer)
+
+ Dim DimensioneStandard As Integer
+ Dim DimensioneStandardMiniatura As Integer
+
+ Dim DataFoto As DateTime
+ Dim DataPartenzaI As DateTime = _DataPartenza
+ If _TestoOrario.Length > 0 Then
+ _TestoOrario &= " "
+ End If
+ Dim TestoFirmaPiccola As String = ""
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+ DimensioneStandard = _DimStandard
+ DimensioneStandardMiniatura = _DimStandardMiniatura
+
+ Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_SourceDir.FullName, _NomeFileChild))
+
+ If _UsaOrarioTestoApplicare = True Or _UsaTempoGaraTestoApplicare = True Or _UsaOrarioMiniatura = True Then
+ If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+ DataFoto = DatiExif.DateTimeOriginal
+ TestoFirma = _TestoFirmaStart
+ If DataFoto.Year <> 1 Then
+ TestoFirmaPiccola = DataFoto.ToShortTimeString
+ If _UsaOrarioTestoApplicare = True Then
+ TestoFirma &= " - " & DataFoto.ToShortDateString & " " & DataFoto.ToLongTimeString
+ End If
+ If _UsaTempoGaraTestoApplicare = True Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, DataPartenzaI, DataFoto) * 10000000)
+ TestoFirma &= " - " & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ End If
+ End If
+ End If
+ Else
+ TestoFirma = _TestoFirmaStart
+ End If
+
+ Dim FotoRuotaADestra As Boolean = False
+ Dim FotoRuotaASinistra As Boolean = False
+
+ If _UsaRotazioneAutomatica = True Then
+ If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+
+ Select Case DatiExif.Orientation
+ Case ExifReader.Orientations.BottomLeft
+
+ Case ExifReader.Orientations.BottomRight
+
+ Case ExifReader.Orientations.LeftTop
+
+ Case ExifReader.Orientations.LftBottom
+ FotoRuotaASinistra = True
+ Case ExifReader.Orientations.RightBottom
+
+ Case ExifReader.Orientations.RightTop
+
+ Case ExifReader.Orientations.TopLeft
+
+ Case ExifReader.Orientations.TopRight
+
+ End Select
+ End If
+ End If
+ 'rotazione
+ If FotoRuotaASinistra = True Then
+ g.RotateFlip(RotateFlipType.Rotate270FlipNone)
+ End If
+ If FotoRuotaADestra = True Then
+ g.RotateFlip(RotateFlipType.Rotate90FlipNone)
+ End If
+
+ Dim thisFormat As System.Drawing.Imaging.ImageFormat = g.RawFormat
+ If _UsaForzaJpg = True Then
+ thisFormat = System.Drawing.Imaging.ImageFormat.Jpeg
+ End If
+
+ Dim thumbSizeSmall As New Size
+ Dim thumbSizeBig As New Size
+ Dim NomeFileSmall As String = ""
+ Dim NomeFileBig As String = ""
+ Dim NomeFileBig2 As String = ""
+
+ If g.Width > g.Height Then
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, LarghezzaSmall, "Larghezza")
+ Dim SizeOrig As New Size(g.Width, g.Height)
+ thumbSizeBig = SizeOrig
+ Else
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, AltezzaSmall, "Altezza")
+ Dim SizeOrig As New Size(g.Width, g.Height)
+ thumbSizeBig = SizeOrig
+ End If
+
+ NomeFileSmall = Suffisso & _NomeFileChild
+ NomeFileBig = _NomeFileChild
+
+ Dim imgOutputBig As New Bitmap(g, thumbSizeBig.Width, thumbSizeBig.Height)
+ imgOutputBig.SetResolution(g.HorizontalResolution, g.VerticalResolution)
+
+ If _CreaMiniature = True Then
+ If _AggiungiScritteMiniature = False Then
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
+ End If
+ If _UsaOrarioMiniatura = True Then
+ If TestoFirmaPiccola.Length > 0 Then
+ Dim imgOutputSmall As Bitmap
+ imgOutputSmall = CType(imgOutputBig.Clone, Bitmap)
+
+ Dim grPhoto1 As Graphics
+ grPhoto1 = Graphics.FromImage(imgOutputSmall)
+ grPhoto1.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
+
+ Dim crFont1 As Font = Nothing
+ Dim crSize1 As SizeF = New SizeF
+ Dim LarghezzaStandard1 As Integer
+
+ If _Grassetto = True Then
+ crFont1 = New Font(IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
+ Else
+ crFont1 = New Font(_IlFont, DimensioneStandardMiniatura)
+ End If
+
+ crSize1 = grPhoto1.MeasureString(TestoFirmaPiccola, crFont1)
+ LarghezzaStandard1 = CType(crSize1.Width, Integer)
+
+ If crSize1.Width > CType(g.Width, Single) Then
+ Dim Conta As Integer = DimensioneStandardMiniatura
+ Do
+ If Conta > 20 Then
+ Conta -= 5
+ Else
+ Conta -= 1
+ End If
+ If _Grassetto = True Then
+ crFont1 = New Font(_IlFont, Conta, FontStyle.Bold)
+ Else
+ crFont1 = New Font(_IlFont, Conta)
+ End If
+ crSize1 = grPhoto1.MeasureString(TestoFirmaPiccola, crFont1)
+ If crSize1.Width < CType(g.Width, Single) Then
+ LarghezzaStandard1 = CType(crSize1.Width, Integer)
+ Exit Do
+ End If
+ If Conta <= 5 Then Exit Do
+ Loop
+ DimensioneStandardMiniatura = Conta
+ End If
+
+ Dim yPosFromBottom1 As Single
+ Select Case _Posizione.ToUpper
+ Case "ALTO"
+ yPosFromBottom1 = (_Margine)
+
+ Case "BASSO"
+ 'yPosFromBottom = (g.Height - _Margine - DimensioneStandard)
+ 'yPosFromBottom1 = CType((g.Height - crFont1.Height - (g.Height * _Margine / 100) - (crFont1.Height * 0.3)), Single)
+ yPosFromBottom1 = CType((g.Height - crSize1.Height - (g.Height * _Margine / 100)), Single)
+
+ End Select
+
+ Dim xCenterOfImg1 As Single
+ Dim StrFormat1 As StringFormat = New StringFormat
+ Select Case _Allineamento.ToUpper
+ Case "SINISTRA"
+ xCenterOfImg1 = CType((_Margine + (LarghezzaStandard1 / 2)), Single)
+ If (LarghezzaStandard1 / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+ End If
+
+ Case "CENTRO"
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+
+ Case "DESTRA"
+ xCenterOfImg1 = CType((g.Width - _Margine - (LarghezzaStandard1 / 2)), Single)
+ If (LarghezzaStandard1 / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+ End If
+
+ End Select
+ StrFormat1.Alignment = StringAlignment.Center
+
+ Dim semiTransBrush21 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, 0, 0, 0))
+ Dim semiTransBrush1 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
+
+ If _Grassetto = True Then
+ crFont1 = New Font(_IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
+ Else
+ crFont1 = New Font(_IlFont, DimensioneStandardMiniatura)
+ End If
+
+ grPhoto1.DrawString(TestoFirmaPiccola, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(TestoFirmaPiccola, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall), thisFormat)
+ Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall))
+ Dim imgOutputSmall2 As New Bitmap(g2, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall2.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+
+ imgOutputSmall2.Dispose()
+ imgOutputSmall.Dispose()
+ g2.Dispose()
+ Kill(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall))
+ Else
+ Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ End If
+ Else
+ Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ End If
+ End If
+ End If
+
+ Dim grPhoto As Graphics
+ grPhoto = Graphics.FromImage(imgOutputBig)
+ grPhoto.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
+
+ Dim crFont As Font = Nothing
+ Dim crSize As SizeF = New SizeF
+ Dim LarghezzaStandard As Integer
+
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, DimensioneStandard)
+ End If
+ crSize = grPhoto.MeasureString(TestoFirma, crFont)
+ LarghezzaStandard = CType(crSize.Width, Integer)
+
+ If crSize.Width > CType(g.Width, Single) Then
+ Dim Conta As Integer = DimensioneStandard
+ Do
+ If Conta > 20 Then
+ Conta -= 5
+ Else
+ Conta -= 1
+ End If
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, Conta, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, Conta)
+ End If
+ crSize = grPhoto.MeasureString(TestoFirma, crFont)
+ If crSize.Width < CType(g.Width, Single) Then
+ LarghezzaStandard = CType(crSize.Width, Integer)
+ Exit Do
+ End If
+ If Conta <= 5 Then Exit Do
+ Loop
+ DimensioneStandard = Conta
+ End If
+
+ Dim yPosFromBottom As Single
+ Select Case _Posizione.ToUpper
+ Case "ALTO"
+ yPosFromBottom = (_Margine)
+
+ Case "BASSO"
+ 'yPosFromBottom = (g.Height - _Margine - DimensioneStandard)
+ 'yPosFromBottom = CType((g.Height - DimensioneStandard - (g.Height * _Margine / 100) - (DimensioneStandard * 0.3)), Single)
+ yPosFromBottom = CType((g.Height - crSize.Height - (g.Height * _Margine / 100)), Single)
+ End Select
+
+ Dim xCenterOfImg As Single
+ Dim StrFormat As StringFormat = New StringFormat
+ Select Case _Allineamento.ToUpper
+ Case "SINISTRA"
+ xCenterOfImg = CType((_Margine + (LarghezzaStandard / 2)), Single)
+ If (LarghezzaStandard / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg = CType((g.Width / 2), Single)
+ End If
+
+ Case "CENTRO"
+ xCenterOfImg = CType((g.Width / 2), Single)
+
+ Case "DESTRA"
+ xCenterOfImg = CType((g.Width - _Margine - (LarghezzaStandard / 2)), Single)
+ If (LarghezzaStandard / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg = CType((g.Width / 2), Single)
+ End If
+
+ End Select
+ StrFormat.Alignment = StringAlignment.Center
+
+ Dim semiTransBrush2 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, 0, 0, 0))
+ Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
+
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, DimensioneStandard)
+ End If
+
+ grPhoto.DrawString(TestoFirma, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString(TestoFirma, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ NomeFileBig2 = NomeFileBig
+ NomeFileBig = NomeFileBig.Substring(0, NomeFileBig.Length - 4) & Codice & NomeFileBig.Substring(NomeFileBig.Length - 4)
+ End If
+
+
+ 'imgOutputBig
+ If _LogoAggiungi = True And File.Exists(_LogoNomeFile) Then
+
+ Dim ImmagineLogo As Image = Image.FromFile(_LogoNomeFile)
+
+ Dim LogoColoreTrasparente As Color = Color.White
+ 'Dim bmWatermark As Bitmap
+
+ '* Create a Bitmap based on the previously modified photograph Bitmap
+ 'bmWatermark = New Bitmap(imgOutputBig)
+ 'bmWatermark.SetResolution(imgOutputBig.HorizontalResolution, imgOutputBig.VerticalResolution)
+
+ '* Load this Bitmap into a new Graphic Object
+ Dim grWatermark As Graphics = Graphics.FromImage(imgOutputBig)
+
+ '* To achieve a transulcent watermark we will apply (2) color manipulations
+ Dim imageAttributes As Imaging.ImageAttributes = New Imaging.ImageAttributes
+
+ '* The first step replace the background color with one that is trasparent (Alpha=0, R=0, G=0, B=0)
+ Dim colorMap As Imaging.ColorMap = New Imaging.ColorMap
+
+ '* background this will be the color we search for and replace with transparency
+ colorMap.OldColor = LogoColoreTrasparente
+ colorMap.NewColor = Color.FromArgb(0, 0, 0, 0)
+
+ Dim remapTable As Imaging.ColorMap() = {colorMap}
+ imageAttributes.SetRemapTable(remapTable, Imaging.ColorAdjustType.Bitmap)
+
+ '* The second color manipulation is used to change the opacity by setting the 3rd row and 3rd column to 0.3f
+ Dim colorMatrixElements As Single()() = {New Single() {1.0F, 0.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 1.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 1.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, CType(_LogoTrasparenza, Single) / 100, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, 0.0F, 1.0F}}
+ Dim wmColorMatrix As Imaging.ColorMatrix = New Imaging.ColorMatrix(colorMatrixElements)
+ imageAttributes.SetColorMatrix(wmColorMatrix, Imaging.ColorMatrixFlag.Default, Imaging.ColorAdjustType.Bitmap)
+
+ Dim FotoLogoH As Integer = _LogoAltezza
+ Dim FotoLogoW As Integer = _LogoLarghezza
+ Dim FattoreAlt As Double = ImmagineLogo.Height / FotoLogoH
+ Dim FattoreLarg As Double = ImmagineLogo.Width / FotoLogoW
+ Dim NuovaSize As Size
+ If FattoreLarg > FattoreAlt Then
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoW, "Larghezza")
+ Else
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoH, "Altezza")
+ End If
+
+ Dim MargineUsato As Integer
+ Dim MargineL As Integer
+ Dim InPercentualeL As Boolean
+ If _LogoMargine.EndsWith("%") = True Then
+ InPercentualeL = True
+ Else
+ InPercentualeL = False
+ End If
+ MargineL = CType(Val(_LogoMargine), Integer)
+ If InPercentualeL = True Then
+ MargineUsato = CType(imgOutputBig.Height * MargineL / 100, Integer)
+ Else
+ MargineUsato = MargineL
+ End If
+
+ Dim xPosOfWm As Integer
+ Dim yPosOfWm As Integer
+ Select Case _LogoPosizioneH.ToUpper
+ Case "SINISTRA", "NESSUNA"
+ xPosOfWm = MargineUsato
+
+ Case "CENTRO"
+ xPosOfWm = CType((imgOutputBig.Width - NuovaSize.Width) / 2, Integer)
+
+ Case "DESTRA"
+ xPosOfWm = ((imgOutputBig.Width - NuovaSize.Width) - MargineUsato)
+ End Select
+ Select Case _LogoPosizioneV.ToUpper
+ Case "ALTO", "NESSUNA"
+ yPosOfWm = MargineUsato
+
+ Case "CENTRO"
+ yPosOfWm = CType((imgOutputBig.Height - NuovaSize.Height) / 2, Integer)
+
+ Case "BASSO"
+ yPosOfWm = ((imgOutputBig.Height - NuovaSize.Height) - MargineUsato)
+ End Select
+
+ grWatermark.DrawImage(ImmagineLogo, New Rectangle(xPosOfWm, yPosOfWm, NuovaSize.Width, NuovaSize.Height), 0, 0, ImmagineLogo.Width, ImmagineLogo.Height, GraphicsUnit.Pixel, imageAttributes)
+ grWatermark.Dispose()
+ End If
+
+ If _FotoGrandeDimOrigina = False Then
+ imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), thisFormat)
+ Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
+ If g2.Width > g2.Height Then
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, _LarghezzaBig, "Larghezza")
+ Else
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, _AltezzaBig, "Altezza")
+ End If
+ Dim imgOutputBig2 As New Bitmap(g2, thumbSizeBig.Width, thumbSizeBig.Height)
+ imgOutputBig2.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
+ imgOutputBig2.Dispose()
+ imgOutputBig.Dispose()
+ g2.Dispose()
+ Else
+ imgOutputBig.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
+ imgOutputBig.Dispose()
+ End If
+
+ If _CreaMiniature = True Then
+ If _AggiungiScritteMiniature = True Then
+ Dim g1 As System.Drawing.Image
+ If _FotoGrandeDimOrigina = False Then
+ g1 = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
+ Else
+ g1 = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, NomeFileBig))
+ End If
+ Dim imgOutputSmall As New Bitmap(g1, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
+ End If
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ g1.Dispose()
+ End If
+ End If
+
+ If File.Exists(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig)) = True Then
+ Kill(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
+ End If
+
+ g.Dispose()
+ grPhoto.Dispose()
+
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ Kill(Path.Combine(_SourceDir.FullName, NomeFileBig2))
+ End If
+
+ End Sub
+
+
+
+ Function NewthumbSize(ByVal currentwidth As Integer, ByVal currentheight As Integer, ByVal MaxPixel As Integer, ByVal TipoSize As String) As Size
+ ' Calculate the Size of the New image
+ '*** Larghezza, Altezza, Auto
+
+ Dim tempMultiplier As Double
+
+ If TipoSize.ToUpper = "Larghezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentwidth
+ ElseIf TipoSize.ToUpper = "Altezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ If currentheight > currentwidth Then ' portrait
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ tempMultiplier = MaxPixel / currentwidth
+ End If
+ End If
+
+ Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
+
+ Return NewSize
+ End Function
+
+
+
+
+ Public Property DirectorySorgente() As String
+ Get
+ Return _DirectorySorgente
+ End Get
+ Set(ByVal value As String)
+ _DirectorySorgente = value
+ End Set
+ End Property
+
+ Public Property DirectoryDestinazione() As String
+ Get
+ Return _DirectoryDestinazione
+ End Get
+ Set(ByVal value As String)
+ _DirectoryDestinazione = value
+ End Set
+ End Property
+
+
+ Public Property SourceDir() As DirectoryInfo
+ Get
+ Return _SourceDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _SourceDir = value
+ End Set
+ End Property
+
+ Public Property DestDirStart() As DirectoryInfo
+ Get
+ Return _DestDirStart
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDirStart = value
+ End Set
+ End Property
+
+
+
+ Public Property TestoFirmaStart() As String
+ Get
+ Return _TestoFirmaStart
+ End Get
+ Set(ByVal value As String)
+ _TestoFirmaStart = value
+ End Set
+ End Property
+ Public Property TestoFirmaStartV() As String
+ Get
+ Return _TestoFirmaStartV
+ End Get
+ Set(ByVal value As String)
+ _TestoFirmaStartV = value
+ End Set
+ End Property
+
+ Public Property DataPartenza() As DateTime
+ Get
+ Return _DataPartenza
+ End Get
+ Set(ByVal value As DateTime)
+ _DataPartenza = value
+ End Set
+ End Property
+
+ Public Property TestoOrario() As String
+ Get
+ Return _TestoOrario
+ End Get
+ Set(ByVal value As String)
+ _TestoOrario = value
+ End Set
+ End Property
+
+ Public Property DimStandard() As Integer
+ Get
+ Return _DimStandard
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandard = value
+ End Set
+ End Property
+
+ Public Property DimStandardMiniatura() As Integer
+ Get
+ Return _DimStandardMiniatura
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandardMiniatura = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioMiniatura() As Boolean
+ Get
+ Return _UsaOrarioMiniatura
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioMiniatura = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioTestoApplicare() As Boolean
+ Get
+ Return _UsaOrarioTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaTempoGaraTestoApplicare() As Boolean
+ Get
+ Return _UsaTempoGaraTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaTempoGaraTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaRotazioneAutomatica() As Boolean
+ Get
+ Return _UsaRotazioneAutomatica
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaRotazioneAutomatica = value
+ End Set
+ End Property
+
+ Public Property UsaForzaJpg() As Boolean
+ Get
+ Return _UsaForzaJpg
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaForzaJpg = value
+ End Set
+ End Property
+
+
+
+ Public Property LarghezzaSmall() As Integer
+ Get
+ Return _LarghezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaSmall = value
+ End Set
+ End Property
+
+ Public Property AltezzaSmall() As Integer
+ Get
+ Return _AltezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaSmall = value
+ End Set
+ End Property
+
+
+ Public Property CreaMiniature() As Boolean
+ Get
+ Return _CreaMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _CreaMiniature = value
+ End Set
+ End Property
+
+ Public Property AggiungiScritteMiniature() As Boolean
+ Get
+ Return _AggiungiScritteMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _AggiungiScritteMiniature = value
+ End Set
+ End Property
+
+ Public Property NomeFileChild() As String
+ Get
+ Return _NomeFileChild
+ End Get
+ Set(ByVal value As String)
+ _NomeFileChild = value
+ End Set
+ End Property
+
+ Public Property Suffisso() As String
+ Get
+ Return _Suffisso
+ End Get
+ Set(ByVal value As String)
+ _Suffisso = value
+ End Set
+ End Property
+
+ Public Property Codice() As String
+ Get
+ Return _Codice
+ End Get
+ Set(ByVal value As String)
+ _Codice = value
+ End Set
+ End Property
+
+
+ Public Property Trasparenza() As Integer
+ Get
+ Return _Trasparenza
+ End Get
+ Set(ByVal value As Integer)
+ _Trasparenza = value
+ End Set
+ End Property
+
+ Public Property IlFont() As String
+ Get
+ Return _IlFont
+ End Get
+ Set(ByVal value As String)
+ _IlFont = value
+ End Set
+ End Property
+
+ Public Property Grassetto() As Boolean
+ Get
+ Return _Grassetto
+ End Get
+ Set(ByVal value As Boolean)
+ _Grassetto = value
+ End Set
+ End Property
+
+ Public Property Posizione() As String
+ Get
+ Return _Posizione
+ End Get
+ Set(ByVal value As String)
+ _Posizione = value
+ End Set
+ End Property
+
+ Public Property Allineamento() As String
+ Get
+ Return _Allineamento
+ End Get
+ Set(ByVal value As String)
+ _Allineamento = value
+ End Set
+ End Property
+
+ Public Property Margine() As Integer
+ Get
+ Return _Margine
+ End Get
+ Set(ByVal value As Integer)
+ _Margine = value
+ End Set
+ End Property
+
+ Public Property LogoAltezza() As Integer
+ Get
+ Return _LogoAltezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoAltezza = value
+ End Set
+ End Property
+
+ Public Property LogoLarghezza() As Integer
+ Get
+ Return _LogoLarghezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoLarghezza = value
+ End Set
+ End Property
+
+ Public Property FontColoreR() As Integer
+ Get
+ Return _FontColoreR
+ End Get
+ Set(ByVal value As Integer)
+ _FontColoreR = value
+ End Set
+ End Property
+
+ Public Property FontColoreG() As Integer
+ Get
+ Return _FontColoreG
+ End Get
+ Set(ByVal value As Integer)
+ _FontColoreG = value
+ End Set
+ End Property
+
+ Public Property FontColoreB() As Integer
+ Get
+ Return _FontColoreB
+ End Get
+ Set(ByVal value As Integer)
+ _FontColoreB = value
+ End Set
+ End Property
+
+ Public Property LogoAggiungi() As Boolean
+ Get
+ Return _LogoAggiungi
+ End Get
+ Set(ByVal value As Boolean)
+ _LogoAggiungi = value
+ End Set
+ End Property
+
+ Public Property LogoNomeFile() As String
+ Get
+ Return _LogoNomeFile
+ End Get
+ Set(ByVal value As String)
+ _LogoNomeFile = value
+ End Set
+ End Property
+
+ Public Property LogoTrasparenza() As String
+ Get
+ Return _LogoTrasparenza
+ End Get
+ Set(ByVal value As String)
+ _LogoTrasparenza = value
+ End Set
+ End Property
+
+ Public Property LogoMargine() As String
+ Get
+ Return _LogoMargine
+ End Get
+ Set(ByVal value As String)
+ _LogoMargine = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneH() As String
+ Get
+ Return _LogoPosizioneH
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneH = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneV() As String
+ Get
+ Return _LogoPosizioneV
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneV = value
+ End Set
+ End Property
+
+ Public Property FotoGrandeDimOrigina() As Boolean
+ Get
+ Return _FotoGrandeDimOrigina
+ End Get
+ Set(ByVal value As Boolean)
+ _FotoGrandeDimOrigina = value
+ End Set
+ End Property
+
+ Public Property AltezzaBig() As Integer
+ Get
+ Return _AltezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaBig = value
+ End Set
+ End Property
+
+ Public Property LarghezzaBig() As Integer
+ Get
+ Return _LarghezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaBig = value
+ End Set
+ End Property
+
+ Public Property DestDir() As DirectoryInfo
+ Get
+ Return _DestDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDir = value
+ End Set
+ End Property
+
+
+
+End Class
diff --git a/imagecatalog/CreaImmagineSeparateThread.vb b/imagecatalog/CreaImmagineSeparateThread.vb
new file mode 100644
index 0000000..59767e6
--- /dev/null
+++ b/imagecatalog/CreaImmagineSeparateThread.vb
@@ -0,0 +1,1409 @@
+Imports System.IO
+Imports System.Drawing.Drawing2D
+Imports System.Drawing.Imaging
+'Imports System.Threading
+
+Public Class CreaImmagineSeparateThread
+#Region "dichiarazioni"
+ Private _DirectorySorgente As String
+ Private _DirectoryDestinazione As String
+
+ Private _DimVert As Integer
+ Private _MargVert As Integer
+
+ Private _SourceDir As DirectoryInfo
+ Private _DestDirStart As DirectoryInfo
+ Private _DimStandard As Integer
+ Private _DimStandardMiniatura As Integer
+
+ Private _NomeData As Boolean
+ Private _TestoNome As Boolean
+ Private _UsaOrarioMiniatura As Boolean
+ Private _UsaOrarioTestoApplicare As Boolean
+ Private _UsaTempoGaraTestoApplicare As Boolean
+ Private _TestoFirmaStart As String
+ Private _TestoFirmaStartV As String
+ Private _DataPartenza As DateTime
+ Private _TestoOrario As String
+
+ Private _UsaRotazioneAutomatica As Boolean
+ Private _UsaForzaJpg As Boolean
+
+ Private _LarghezzaSmall As Integer
+ Private _AltezzaSmall As Integer
+
+ Private _CreaMiniature As Boolean
+ Private _AggiungiScritteMiniature As Boolean
+ Private _AggTempoGaraMin As Boolean
+ Private _AggNumTempMin As Boolean
+
+
+ Private _NomeFileChild As String
+ Private _Suffisso As String
+ Private _Codice As String
+
+ Private _Trasparenza As Integer
+ Private _IlFont As String
+ Private _Grassetto As Boolean
+
+ Private _Posizione As String
+ Private _Allineamento As String
+ Private _Margine As Integer
+
+ Private _LogoAltezza As Integer
+ Private _LogoLarghezza As Integer
+
+ Private _FontColoreR As Integer
+ Private _FontColoreG As Integer
+ Private _FontColoreB As Integer
+ Private _fontColoreRGB As Color
+
+ Private _LogoAggiungi As Boolean
+ Private _LogoNomeFile As String
+ Private _LogoTrasparenza As String
+ Private _LogoMargine As String
+ Private _LogoPosizioneH As String
+ Private _LogoPosizioneV As String
+
+ Private _FotoGrandeDimOrigina As Boolean
+ Private _AltezzaBig As Integer
+ Private _LarghezzaBig As Integer
+ Private _DestDir As DirectoryInfo
+ Private _DimMin As Integer
+
+ Private _TestoMin As Boolean
+
+ Private _SecretDefault As Boolean
+ Private _SecretBig As Boolean
+ Private _SecretSmall As Boolean
+
+ Private _SecretPathSmall As String
+ Private _SecretPathBig As String
+
+ Private _jpegQuality As Long
+ Private _jpegQualityMin As Long
+
+ Private FotoRuotaADestra As Boolean = False
+ Private FotoRuotaASinistra As Boolean = False
+
+ Private TempMinText As String = ""
+ 'Private crFont1 As Font
+
+
+#End Region
+
+ Private Sub ProcA(ByRef g As System.Drawing.Image, ByRef DataFoto As DateTime, ByRef TestoFirma As String, ByRef TestoFirmaV As String, ByRef TestoFirmaPiccola As String, ByRef DataPartenzaI As DateTime)
+ If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+ DataFoto = DatiExif.DateTimeOriginal
+ TestoFirma = _TestoFirmaStart
+ TestoFirmaV = _TestoFirmaStartV
+
+ If DataFoto.Year <> 1 Then
+ TestoFirmaPiccola = DataFoto.ToShortTimeString
+ If _UsaOrarioTestoApplicare = True Then
+ TestoFirma &= " " & DataFoto.ToShortDateString & " " & DataFoto.ToLongTimeString
+ TestoFirmaV &= " " & DataFoto.ToShortDateString & " " & DataFoto.ToLongTimeString
+ End If
+ If _UsaTempoGaraTestoApplicare = True Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, DataPartenzaI, DataFoto) * 10000000)
+ TestoFirma &= " " & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ TestoFirmaV &= " " & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ End If
+ End If
+
+ End If
+ End Sub
+
+ Private Sub Rotation(ByRef g As System.Drawing.Image)
+
+ FotoRuotaADestra = False
+ FotoRuotaASinistra = False
+
+ If _UsaRotazioneAutomatica = True Then
+ If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+
+ Select Case DatiExif.Orientation
+ Case ExifReader.Orientations.BottomLeft
+
+ Case ExifReader.Orientations.BottomRight
+
+ Case ExifReader.Orientations.LeftTop
+
+ Case ExifReader.Orientations.LftBottom
+ FotoRuotaASinistra = True
+ Case ExifReader.Orientations.RightBottom
+
+ Case ExifReader.Orientations.RightTop
+
+ Case ExifReader.Orientations.TopLeft
+
+ Case ExifReader.Orientations.TopRight
+
+ End Select
+ End If
+ End If
+
+ If FotoRuotaASinistra = True Then
+ g.RotateFlip(RotateFlipType.Rotate270FlipNone)
+ End If
+ If FotoRuotaADestra = True Then
+ g.RotateFlip(RotateFlipType.Rotate90FlipNone)
+ End If
+
+
+
+ End Sub
+
+
+ Public Sub CreaImmagineThread(ByVal Info As String)
+ Dim TestoFirma As String = ""
+ Dim TestoFirmaV As String = ""
+
+ Dim AlphaScelta As Integer = CType((255 * (100 - _Trasparenza) / 100), Integer)
+
+ Dim DimensioneStandard As Integer
+ Dim DimensioneStandardMiniatura As Integer
+
+ Dim DataFoto As DateTime
+ Dim DataPartenzaI As DateTime = _DataPartenza
+ If _TestoOrario.Length > 0 Then
+ _TestoOrario &= " "
+ End If
+ Dim TestoFirmaPiccola As String = ""
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+ DimensioneStandard = _DimStandard
+ DimensioneStandardMiniatura = _DimStandardMiniatura
+
+ Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_SourceDir.FullName, _NomeFileChild))
+ 'dati extra in fondo
+ If _UsaOrarioTestoApplicare Or
+ _UsaTempoGaraTestoApplicare Or
+ _UsaOrarioMiniatura Or
+ _TestoMin Or
+ _AggTempoGaraMin Or
+ _AggNumTempMin Then
+
+ ProcA(g, DataFoto, TestoFirma, TestoFirmaV, TestoFirmaPiccola, DataPartenzaI)
+
+ 'If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ ' Dim DatiExif As New ExifReader(CType(g, Bitmap))
+ ' DataFoto = DatiExif.DateTimeOriginal
+ ' TestoFirma = _TestoFirmaStart
+ ' TestoFirmaV = _TestoFirmaStartV
+
+ ' If DataFoto.Year <> 1 Then
+ ' TestoFirmaPiccola = DataFoto.ToShortTimeString
+ ' If _UsaOrarioTestoApplicare = True Then
+ ' TestoFirma &= " - " & DataFoto.ToShortDateString & " " & DataFoto.ToLongTimeString
+ ' TestoFirmaV &= " - " & DataFoto.ToShortDateString & " " & DataFoto.ToLongTimeString
+ ' End If
+ ' If _UsaTempoGaraTestoApplicare = True Then
+ ' Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, DataPartenzaI, DataFoto) * 10000000)
+ ' TestoFirma &= " - " & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ ' TestoFirmaV &= " - " & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ ' End If
+ ' End If
+
+ 'End If
+
+ Else
+ TestoFirma = _TestoFirmaStart
+ TestoFirmaV = _TestoFirmaStartV
+
+ End If
+
+
+ Rotation(g)
+
+ 'Dim FotoRuotaADestra As Boolean = False
+ 'Dim FotoRuotaASinistra As Boolean = False
+
+ 'If _UsaRotazioneAutomatica = True Then
+ ' If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ ' Dim DatiExif As New ExifReader(CType(g, Bitmap))
+
+ ' Select Case DatiExif.Orientation
+ ' Case ExifReader.Orientations.BottomLeft
+
+ ' Case ExifReader.Orientations.BottomRight
+
+ ' Case ExifReader.Orientations.LeftTop
+
+ ' Case ExifReader.Orientations.LftBottom
+ ' FotoRuotaASinistra = True
+ ' Case ExifReader.Orientations.RightBottom
+
+ ' Case ExifReader.Orientations.RightTop
+
+ ' Case ExifReader.Orientations.TopLeft
+
+ ' Case ExifReader.Orientations.TopRight
+
+ ' End Select
+ ' End If
+ 'End If
+
+ 'If FotoRuotaASinistra = True Then
+ ' g.RotateFlip(RotateFlipType.Rotate270FlipNone)
+ 'End If
+ 'If FotoRuotaADestra = True Then
+ ' g.RotateFlip(RotateFlipType.Rotate90FlipNone)
+ 'End If
+
+ Dim thisFormat As System.Drawing.Imaging.ImageFormat = g.RawFormat
+ If _UsaForzaJpg = True Then
+ thisFormat = System.Drawing.Imaging.ImageFormat.Jpeg
+ End If
+
+ Dim thumbSizeSmall As New Size
+ Dim thumbSizeBig As New Size
+ Dim NomeFileSmall As String = ""
+
+ Dim NomeFileBig2 As String = ""
+ Dim NomeFileBig As String = ""
+
+
+ If g.Width > g.Height Then
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, LarghezzaSmall, "Larghezza")
+ Dim SizeOrig As New Size(g.Width, g.Height)
+ thumbSizeBig = SizeOrig
+ Else
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, AltezzaSmall, "Altezza")
+ Dim SizeOrig As New Size(g.Width, g.Height)
+ thumbSizeBig = SizeOrig
+ End If
+
+ NomeFileSmall = Suffisso & _NomeFileChild
+ NomeFileBig = _NomeFileChild
+
+ Dim imgOutputBig As New Bitmap(g, thumbSizeBig.Width, thumbSizeBig.Height)
+ imgOutputBig.SetResolution(g.HorizontalResolution, g.VerticalResolution)
+
+ If _TestoMin Then
+ TestoFirmaPiccola = NomeFileBig
+ ElseIf _AggNumTempMin Then
+ TestoFirmaPiccola = NomeFileBig + " "
+ End If
+ Dim yPosFromBottom4 As Single
+
+ Dim crFont1 As Font = Nothing
+ Dim crFont2 As Font = Nothing
+ Dim crSize1 As SizeF = New SizeF
+ Dim crSize2 As SizeF = New SizeF
+
+ If _CreaMiniature = True Then
+ If _AggiungiScritteMiniature = False Then
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
+ End If
+ If _UsaOrarioMiniatura Or
+ _TestoMin Or
+ _AggTempoGaraMin Or
+ _AggNumTempMin Then
+
+ If TestoFirmaPiccola.Length > 0 Then
+ Dim imgOutputSmall As Bitmap
+ imgOutputSmall = CType(imgOutputBig.Clone, Bitmap)
+
+ Dim grPhoto1 As Graphics
+ grPhoto1 = Graphics.FromImage(imgOutputSmall)
+ grPhoto1.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
+
+ 'erano qui
+
+ Dim LarghezzaStandard1 As Integer
+ 'quick fix
+ DimensioneStandardMiniatura = 50
+ If _Grassetto = True Then
+ crFont1 = New Font(IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
+ crFont2 = New Font(IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont1 = New Font(_IlFont, DimensioneStandardMiniatura)
+ crFont2 = New Font(IlFont, DimensioneStandard)
+ End If
+
+ crSize1 = grPhoto1.MeasureString(TestoFirmaPiccola, crFont1)
+ crSize2 = grPhoto1.MeasureString(TestoFirma, crFont1)
+ LarghezzaStandard1 = CType(crSize1.Width, Integer)
+
+ If crSize1.Width > CType(g.Width, Single) Then
+ Dim Conta As Integer = DimensioneStandardMiniatura
+ Do
+ If Conta > 20 Then
+ Conta -= 5
+ Else
+ Conta -= 1
+ End If
+ If _Grassetto = True Then
+ crFont1 = New Font(_IlFont, Conta, FontStyle.Bold)
+ Else
+ crFont1 = New Font(_IlFont, Conta)
+ End If
+ crSize1 = grPhoto1.MeasureString(TestoFirmaPiccola, crFont1)
+ If crSize1.Width < CType(g.Width, Single) Then
+ LarghezzaStandard1 = CType(crSize1.Width, Integer)
+ Exit Do
+ End If
+ If Conta <= 5 Then Exit Do
+ Loop
+ DimensioneStandardMiniatura = Conta
+ End If
+
+ Dim yPosFromBottom1 As Single
+
+
+
+ Select Case _Posizione.ToUpper
+ Case "ALTO"
+
+ yPosFromBottom1 = (_Margine)
+ yPosFromBottom4 = (_MargVert)
+
+ Case "BASSO"
+ 'yPosFromBottom = (g.Height - _Margine - DimensioneStandard)
+ 'yPosFromBottom1 = CType((g.Height - crFont1.Height - (g.Height * _Margine / 100) - (crFont1.Height * 0.3)), Single)
+ yPosFromBottom1 = CType((g.Height - crSize1.Height - (g.Height * _Margine / 100)), Single)
+ yPosFromBottom4 = CType((g.Height - crSize1.Height - (g.Height * _MargVert / 100)), Single)
+
+ End Select
+
+ Dim xCenterOfImg1 As Single
+
+ Dim StrFormat1 As StringFormat = New StringFormat
+ Select Case _Allineamento.ToUpper
+ Case "SINISTRA"
+ xCenterOfImg1 = CType((_Margine + (LarghezzaStandard1 / 2)), Single)
+
+ If (LarghezzaStandard1 / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+ End If
+
+
+ Case "CENTRO"
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+
+
+ Case "DESTRA"
+ xCenterOfImg1 = CType((g.Width - _Margine - (LarghezzaStandard1 / 2)), Single)
+
+ If (LarghezzaStandard1 / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+ End If
+
+
+ End Select
+ StrFormat1.Alignment = StringAlignment.Center
+
+ Dim semiTransBrush21 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, 0, 0, 0))
+ Dim semiTransBrush1 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
+ 'quick fix
+ DimensioneStandardMiniatura = _DimMin
+
+ If _Grassetto = True Then
+ crFont1 = New Font(_IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
+ Else
+ crFont1 = New Font(_IlFont, DimensioneStandardMiniatura)
+ End If
+ 'asdgadfhdfhjgfsjgfjygfdhsdafa
+ If _TestoMin Then
+ grPhoto1.DrawString(NomeFileBig, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(NomeFileBig, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+ ElseIf _AggTempoGaraMin And _UsaTempoGaraTestoApplicare Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, DataPartenzaI, DataFoto) * 10000000)
+ Dim tempstr As String = ""
+
+
+ tempstr &= ControlChars.CrLf & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+
+
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+
+ ElseIf _AggNumTempMin Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, DataPartenzaI, DataFoto) * 10000000)
+ Dim tempstr As String = ""
+ tempstr &= NomeFileBig
+
+ tempstr &= ControlChars.CrLf & _TestoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+
+
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+
+
+ Else
+ grPhoto1.DrawString(TestoFirmaPiccola, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(TestoFirmaPiccola, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+ End If
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall), thisFormat)
+ Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall))
+ Dim imgOutputSmall2 As New Bitmap(g2, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall2.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+
+ imgOutputSmall2.Dispose()
+ imgOutputSmall.Dispose()
+ g2.Dispose()
+ Kill(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileSmall))
+ Else
+ Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ End If
+ Else
+ Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ End If
+ End If
+ End If
+
+ Dim grPhoto As Graphics
+ grPhoto = Graphics.FromImage(imgOutputBig)
+ grPhoto.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
+
+ Dim crFont As Font = Nothing
+ Dim crSize As SizeF = New SizeF
+ Dim LarghezzaStandard As Integer
+
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, DimensioneStandard)
+ End If
+ crSize = grPhoto.MeasureString(TestoFirma, crFont)
+ LarghezzaStandard = CType(crSize.Width, Integer)
+
+ If crSize.Width > CType(g.Width, Single) Then
+ Dim Conta As Integer = DimensioneStandard
+ Do
+ If Conta > 20 Then
+ Conta -= 5
+ Else
+ Conta -= 1
+ End If
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, Conta, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, Conta)
+ End If
+ crSize = grPhoto.MeasureString(TestoFirma, crFont)
+ If crSize.Width < CType(g.Width, Single) Then
+ LarghezzaStandard = CType(crSize.Width, Integer)
+ Exit Do
+ End If
+ If Conta <= 5 Then Exit Do
+ Loop
+ DimensioneStandard = Conta
+ End If
+
+ Dim yPosFromBottom As Single
+ Dim yPosFromBottom3 As Single
+ Select Case _Posizione.ToUpper
+ Case "ALTO"
+ yPosFromBottom = (_Margine)
+ yPosFromBottom3 = (_MargVert)
+
+ Case "BASSO"
+ 'yPosFromBottom = (g.Height - _Margine - DimensioneStandard)
+ 'yPosFromBottom = CType((g.Height - DimensioneStandard - (g.Height * _Margine / 100) - (DimensioneStandard * 0.3)), Single)
+ yPosFromBottom = CType((g.Height - crSize.Height - (g.Height * _Margine / 100)), Single)
+ yPosFromBottom3 = CType((g.Height - crSize.Height - (g.Height * _MargVert / 100)), Single)
+ End Select
+
+ Dim xCenterOfImg As Single
+ Dim xCenterOfImg3 As Single
+ Dim StrFormat As StringFormat = New StringFormat
+ Select Case _Allineamento.ToUpper
+ Case "SINISTRA"
+ xCenterOfImg = CType((_Margine + (LarghezzaStandard / 2)), Single)
+ xCenterOfImg3 = CType((_MargVert + (LarghezzaStandard / 2)), Single)
+ If (LarghezzaStandard / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg = CType((g.Width / 2), Single)
+ End If
+ If (LarghezzaStandard / 2) > (g.Width / 2) - _MargVert Then
+ xCenterOfImg3 = CType((g.Width / 2), Single)
+ End If
+
+ Case "CENTRO"
+ xCenterOfImg = CType((g.Width / 2), Single)
+
+ Case "DESTRA"
+ xCenterOfImg = CType((g.Width - _Margine - (LarghezzaStandard / 2)), Single)
+ xCenterOfImg3 = CType((g.Width - _MargVert - (LarghezzaStandard / 2)), Single)
+ If (LarghezzaStandard / 2) > (g.Width / 2) - _Margine Then
+ xCenterOfImg = CType((g.Width / 2), Single)
+ End If
+ If (LarghezzaStandard / 2) > (g.Width / 2) - _MargVert Then
+ xCenterOfImg3 = CType((g.Width / 2), Single)
+ End If
+
+ End Select
+ StrFormat.Alignment = StringAlignment.Center
+
+ Dim semiTransBrush2 As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, 0, 0, 0))
+ Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
+
+ If FotoRuotaADestra Or FotoRuotaASinistra Then
+
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, DimVert, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, DimVert)
+ End If
+
+ Else
+
+ If _Grassetto = True Then
+ crFont = New Font(_IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont = New Font(_IlFont, DimensioneStandard)
+ End If
+ End If
+
+ aggiungiTesto(g, DataFoto, grPhoto, NomeFileBig, crFont, semiTransBrush,
+ semiTransBrush2, xCenterOfImg, yPosFromBottom, StrFormat,
+ TestoFirmaV, yPosFromBottom3, yPosFromBottom4, TestoFirma, NomeFileBig2)
+
+ aggiungiLogo(imgOutputBig)
+ salvaFoto(imgOutputBig, thumbSizeBig, NomeFileBig, NomeFileSmall, thumbSizeSmall)
+
+ g.Dispose()
+ grPhoto.Dispose()
+ GC.Collect()
+
+ End Sub
+
+ Private Sub aggiungiTesto(g As Image, DataFoto As Date, grPhoto As Graphics, NomeFileBig As String, crFont As Font, semiTransBrush As SolidBrush,
+ semiTransBrush2 As SolidBrush, xCenterOfImg As Single, yPosFromBottom As Single, StrFormat As StringFormat,
+ TestoFirmav As String, yPosFromBottom3 As Single, yPosFromBottom4 As Single, TestoFirma As String, NomeFileBig2 As String)
+ 'qui scrive il testo (nomefilebig)
+ If _TestoNome Then
+ If NomeData And g.PropertyIdList.Length > 0 Then
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+ DataFoto = DatiExif.DateTimeOriginal
+
+
+ grPhoto.DrawString((NomeFileBig & " " & DataFoto.ToShortDateString), crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString((NomeFileBig & " " & DataFoto.ToShortDateString), crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+
+
+ Else
+
+ grPhoto.DrawString(NomeFileBig, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString(NomeFileBig, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+
+ End If
+ End If
+
+ If _TestoNome = False Then
+ If FotoRuotaADestra Or FotoRuotaASinistra Then
+ If _TestoMin = False Then
+
+
+ grPhoto.DrawString(TestoFirmav, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom3 + 1), StrFormat)
+ grPhoto.DrawString(TestoFirmav, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom3), StrFormat)
+ End If
+ If _TestoMin = True Then
+
+ grPhoto.DrawString(TestoFirmav, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom4 + 1), StrFormat)
+ grPhoto.DrawString(TestoFirmav, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom4), StrFormat)
+
+ End If
+ Else
+ grPhoto.DrawString(TestoFirma, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString(TestoFirma, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+
+
+ End If
+ End If
+
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ NomeFileBig2 = NomeFileBig
+ NomeFileBig = NomeFileBig.Substring(0, NomeFileBig.Length - 4) & Codice & NomeFileBig.Substring(NomeFileBig.Length - 4)
+ End If
+ End Sub
+
+ Private Sub aggiungiLogo(imgOutputBig As Bitmap)
+ 'imgOutputBig
+ If _LogoAggiungi = True And File.Exists(_LogoNomeFile) Then
+
+ Dim ImmagineLogo As Image = Image.FromFile(_LogoNomeFile)
+
+ Dim LogoColoreTrasparente As Color = Color.White
+ 'Dim bmWatermark As Bitmap
+
+ '* Create a Bitmap based on the previously modified photograph Bitmap
+ 'bmWatermark = New Bitmap(imgOutputBig)
+ 'bmWatermark.SetResolution(imgOutputBig.HorizontalResolution, imgOutputBig.VerticalResolution)
+
+ '* Load this Bitmap into a new Graphic Object
+ Dim grWatermark As Graphics = Graphics.FromImage(imgOutputBig)
+
+ '* To achieve a transulcent watermark we will apply (2) color manipulations
+ Dim imageAttributes As Imaging.ImageAttributes = New Imaging.ImageAttributes
+
+ '* The first step replace the background color with one that is trasparent (Alpha=0, R=0, G=0, B=0)
+ Dim colorMap As Imaging.ColorMap = New Imaging.ColorMap
+
+ '* background this will be the color we search for and replace with transparency
+ colorMap.OldColor = LogoColoreTrasparente
+ colorMap.NewColor = Color.FromArgb(0, 0, 0, 0)
+
+ Dim remapTable As Imaging.ColorMap() = {colorMap}
+ imageAttributes.SetRemapTable(remapTable, Imaging.ColorAdjustType.Bitmap)
+
+ '* The second color manipulation is used to change the opacity by setting the 3rd row and 3rd column to 0.3f
+ Dim colorMatrixElements As Single()() = {New Single() {1.0F, 0.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 1.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 1.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, CType(_LogoTrasparenza, Single) / 100, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, 0.0F, 1.0F}}
+ Dim wmColorMatrix As Imaging.ColorMatrix = New Imaging.ColorMatrix(colorMatrixElements)
+ imageAttributes.SetColorMatrix(wmColorMatrix, Imaging.ColorMatrixFlag.Default, Imaging.ColorAdjustType.Bitmap)
+
+ Dim FotoLogoH As Integer = _LogoAltezza
+ Dim FotoLogoW As Integer = _LogoLarghezza
+ Dim FattoreAlt As Double = ImmagineLogo.Height / FotoLogoH
+ Dim FattoreLarg As Double = ImmagineLogo.Width / FotoLogoW
+ Dim NuovaSize As Size
+ If FattoreLarg > FattoreAlt Then
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoW, "Larghezza")
+ Else
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoH, "Altezza")
+ End If
+
+ Dim MargineUsato As Integer
+ Dim MargineL As Integer
+ Dim InPercentualeL As Boolean
+ If _LogoMargine.EndsWith("%") = True Then
+ InPercentualeL = True
+ Else
+ InPercentualeL = False
+ End If
+ MargineL = CType(Val(_LogoMargine), Integer)
+ If InPercentualeL = True Then
+ MargineUsato = CType(imgOutputBig.Height * MargineL / 100, Integer)
+ Else
+ MargineUsato = MargineL
+ End If
+
+ Dim xPosOfWm As Integer
+ Dim yPosOfWm As Integer
+ Select Case _LogoPosizioneH.ToUpper
+ Case "SINISTRA", "NESSUNA"
+ xPosOfWm = MargineUsato
+
+ Case "CENTRO"
+ xPosOfWm = CType((imgOutputBig.Width - NuovaSize.Width) / 2, Integer)
+
+ Case "DESTRA"
+ xPosOfWm = ((imgOutputBig.Width - NuovaSize.Width) - MargineUsato)
+ End Select
+ Select Case _LogoPosizioneV.ToUpper
+ Case "ALTO", "NESSUNA"
+ yPosOfWm = MargineUsato
+
+ Case "CENTRO"
+ yPosOfWm = CType((imgOutputBig.Height - NuovaSize.Height) / 2, Integer)
+
+ Case "BASSO"
+ yPosOfWm = ((imgOutputBig.Height - NuovaSize.Height) - MargineUsato)
+ End Select
+
+ grWatermark.DrawImage(ImmagineLogo, New Rectangle(xPosOfWm, yPosOfWm, NuovaSize.Width, NuovaSize.Height), 0, 0, ImmagineLogo.Width, ImmagineLogo.Height, GraphicsUnit.Pixel, imageAttributes)
+ grWatermark.Dispose()
+ End If
+ End Sub
+
+
+ Private Sub salvaFoto(imgOutputBig As Bitmap, thumbSizeBig As Size, NomeFileBig As String, NomeFileSmall As String, thumbSizeSmall As Size)
+
+ If _FotoGrandeDimOrigina = False Then
+ 'attenzione non controlla se è png
+ 'imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), thisFormat)
+ salvaImmagineCustomQuality(imgOutputBig, Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), jpegQuality)
+
+ Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
+ If g2.Width > g2.Height Then
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, _LarghezzaBig, "Larghezza")
+ Else
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, _AltezzaBig, "Altezza")
+ End If
+ Dim imgOutputBig2 As New Bitmap(g2, thumbSizeBig.Width, thumbSizeBig.Height)
+ 'imgOutputBig2.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
+ salvaImmagineCustomQuality(imgOutputBig2, Path.Combine(_DestDir.FullName, NomeFileBig), jpegQuality)
+ 'imgOutputBig2.Dispose()
+ 'imgOutputBig.Dispose()
+ g2.Dispose()
+ Else
+ 'imgOutputBig.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
+ salvaImmagineCustomQuality(imgOutputBig, Path.Combine(_DestDir.FullName, NomeFileBig), jpegQuality)
+ imgOutputBig.Dispose()
+ End If
+
+
+ If _CreaMiniature Then
+ If _AggiungiScritteMiniature = True Then
+ Dim g1 As System.Drawing.Image
+ If _FotoGrandeDimOrigina = False Then
+ g1 = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
+ Else
+ g1 = System.Drawing.Image.FromFile(Path.Combine(_DestDir.FullName, NomeFileBig))
+ End If
+ Dim imgOutputSmall As New Bitmap(g1, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ If _DirectorySorgente.ToUpper = _DirectoryDestinazione.ToUpper Then
+ NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
+ End If
+ 'imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ salvaImmagineCustomQuality(imgOutputSmall, Path.Combine(_DestDir.FullName, NomeFileSmall), jpegQualityMin)
+ 'imgOutputSmall.Dispose()
+ g1.Dispose()
+ End If
+
+
+
+ End If
+
+ If File.Exists(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig)) = True Then
+ Kill(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig))
+ End If
+
+
+ End Sub
+
+ Private Sub salvaImmagineCustomQuality(imageToSave As Bitmap, nomeFileFinale As String, quality As Long)
+
+ Dim JgpEncoder As ImageCodecInfo = GetEncoder(ImageFormat.Jpeg)
+ Dim MyEncoder As Encoder = Encoder.Quality
+
+ Dim MyEncoderParameters As New EncoderParameters(1)
+
+ Dim MyEncoderParameter As New EncoderParameter(MyEncoder, jpegQuality)
+ MyEncoderParameters.Param(0) = MyEncoderParameter
+ imageToSave.Save(nomeFileFinale, JgpEncoder, MyEncoderParameters)
+ imageToSave.Dispose()
+ End Sub
+
+
+
+ Private Function GetEncoder(ByVal format As ImageFormat) As ImageCodecInfo
+
+ Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageDecoders()
+
+ Dim codec As ImageCodecInfo
+ For Each codec In codecs
+ If codec.FormatID = format.Guid Then
+ Return codec
+ End If
+ Next codec
+ Return Nothing
+
+ End Function
+
+
+
+
+
+
+ '''
+ ''' Calculate the Size of the New image
+ '''
+ ''' Larghezza
+ ''' Altezza
+ '''
+ '''
+ '''
+ '''
+ Function NewthumbSize(ByVal currentwidth As Integer, ByVal currentheight As Integer, ByVal MaxPixel As Integer, ByVal TipoSize As String) As Size
+ ' e
+ '*** Larghezza, Altezza, Auto
+
+ Dim tempMultiplier As Double
+
+ If TipoSize.ToUpper = "Larghezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentwidth
+ ElseIf TipoSize.ToUpper = "Altezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ If currentheight > currentwidth Then ' portrait
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ tempMultiplier = MaxPixel / currentwidth
+ End If
+ End If
+
+ Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
+
+ Return NewSize
+ End Function
+
+
+
+
+ Public Property DirectorySorgente() As String
+ Get
+ Return _DirectorySorgente
+ End Get
+ Set(ByVal value As String)
+ _DirectorySorgente = value
+ End Set
+ End Property
+
+ Public Property DirectoryDestinazione() As String
+ Get
+ Return _DirectoryDestinazione
+ End Get
+ Set(ByVal value As String)
+ _DirectoryDestinazione = value
+ End Set
+ End Property
+
+
+ Public Property SourceDir() As DirectoryInfo
+ Get
+ Return _SourceDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _SourceDir = value
+ End Set
+ End Property
+
+ Public Property DestDirStart() As DirectoryInfo
+ Get
+ Return _DestDirStart
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDirStart = value
+ End Set
+ End Property
+
+
+
+ Public Property TestoFirmaStart() As String
+ Get
+ Return _TestoFirmaStart
+ End Get
+ Set(ByVal value As String)
+ _TestoFirmaStart = value
+ End Set
+ End Property
+
+ Public Property TestoFirmaStartV() As String
+ Get
+ Return _TestoFirmaStartV
+ End Get
+
+ Set(ByVal value As String)
+ _TestoFirmaStartV = value
+ End Set
+ End Property
+
+ Public Property DataPartenza() As DateTime
+ Get
+ Return _DataPartenza
+ End Get
+ Set(ByVal value As DateTime)
+ _DataPartenza = value
+ End Set
+ End Property
+
+ Public Property TestoOrario() As String
+ Get
+ Return _TestoOrario
+ End Get
+ Set(ByVal value As String)
+ _TestoOrario = value
+ End Set
+ End Property
+
+ Public Property DimStandard() As Integer
+ Get
+ Return _DimStandard
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandard = value
+ End Set
+ End Property
+
+ Public Property DimStandardMiniatura() As Integer
+ Get
+ Return _DimStandardMiniatura
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandardMiniatura = value
+ End Set
+ End Property
+
+ Public Property NomeData() As Boolean
+ Get
+ Return _NomeData
+ End Get
+ Set(ByVal value As Boolean)
+ _NomeData = value
+ End Set
+ End Property
+
+ Public Property TestoNome() As Boolean
+ Get
+ Return _TestoNome
+ End Get
+ Set(ByVal value As Boolean)
+ _TestoNome = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioMiniatura() As Boolean
+ Get
+ Return _UsaOrarioMiniatura
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioMiniatura = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioTestoApplicare() As Boolean
+ Get
+ Return _UsaOrarioTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaTempoGaraTestoApplicare() As Boolean
+ Get
+ Return _UsaTempoGaraTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaTempoGaraTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaRotazioneAutomatica() As Boolean
+ Get
+ Return _UsaRotazioneAutomatica
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaRotazioneAutomatica = value
+ End Set
+ End Property
+
+ Public Property UsaForzaJpg() As Boolean
+ Get
+ Return _UsaForzaJpg
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaForzaJpg = value
+ End Set
+ End Property
+
+
+
+ Public Property LarghezzaSmall() As Integer
+ Get
+ Return _LarghezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaSmall = value
+ End Set
+ End Property
+
+ Public Property AltezzaSmall() As Integer
+ Get
+ Return _AltezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaSmall = value
+ End Set
+ End Property
+
+
+ Public Property CreaMiniature() As Boolean
+ Get
+ Return _CreaMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _CreaMiniature = value
+ End Set
+ End Property
+
+ Public Property AggiungiScritteMiniature() As Boolean
+ Get
+ Return _AggiungiScritteMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _AggiungiScritteMiniature = value
+ End Set
+ End Property
+
+ Public Property NomeFileChild() As String
+ Get
+ Return _NomeFileChild
+ End Get
+ Set(ByVal value As String)
+ _NomeFileChild = value
+ End Set
+ End Property
+
+ Public Property Suffisso() As String
+ Get
+ Return _Suffisso
+ End Get
+ Set(ByVal value As String)
+ _Suffisso = value
+ End Set
+ End Property
+
+ Public Property Codice() As String
+ Get
+ Return _Codice
+ End Get
+ Set(ByVal value As String)
+ _Codice = value
+ End Set
+ End Property
+
+
+ Public Property Trasparenza() As Integer
+ Get
+ Return _Trasparenza
+ End Get
+ Set(ByVal value As Integer)
+ _Trasparenza = value
+ End Set
+ End Property
+
+ Public Property IlFont() As String
+ Get
+ Return _IlFont
+ End Get
+ Set(ByVal value As String)
+ _IlFont = value
+ End Set
+ End Property
+
+ Public Property Grassetto() As Boolean
+ Get
+ Return _Grassetto
+ End Get
+ Set(ByVal value As Boolean)
+ _Grassetto = value
+ End Set
+ End Property
+
+ Public Property Posizione() As String
+ Get
+ Return _Posizione
+ End Get
+ Set(ByVal value As String)
+ _Posizione = value
+ End Set
+ End Property
+
+ Public Property Allineamento() As String
+ Get
+ Return _Allineamento
+ End Get
+ Set(ByVal value As String)
+ _Allineamento = value
+ End Set
+ End Property
+
+ Public Property Margine() As Integer
+ Get
+ Return _Margine
+ End Get
+ Set(ByVal value As Integer)
+ _Margine = value
+ End Set
+ End Property
+
+ Public Property LogoAltezza() As Integer
+ Get
+ Return _LogoAltezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoAltezza = value
+ End Set
+ End Property
+
+ Public Property LogoLarghezza() As Integer
+ Get
+ Return _LogoLarghezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoLarghezza = value
+ End Set
+ End Property
+
+ Public Property FontColoreR() As Integer
+ Get
+ Return _FontColoreR
+ End Get
+ Set(ByVal value As Integer)
+ _FontColoreR = value
+ End Set
+ End Property
+
+ Public Property FontColoreG() As Integer
+ Get
+ Return _FontColoreG
+ End Get
+ Set(ByVal value As Integer)
+ _FontColoreG = value
+ End Set
+ End Property
+
+ Public Property FontColoreB() As Integer
+ Get
+ Return _FontColoreB
+ End Get
+ Set(ByVal value As Integer)
+ _FontColoreB = value
+ End Set
+ End Property
+
+ Public Property fontColoreRGB() As Color
+ Get
+ Return _fontColoreRGB
+ End Get
+ Set(ByVal value As Color)
+ _fontColoreRGB = value
+ End Set
+ End Property
+
+ Public Property LogoAggiungi() As Boolean
+ Get
+ Return _LogoAggiungi
+ End Get
+ Set(ByVal value As Boolean)
+ _LogoAggiungi = value
+ End Set
+ End Property
+
+ Public Property LogoNomeFile() As String
+ Get
+ Return _LogoNomeFile
+ End Get
+ Set(ByVal value As String)
+ _LogoNomeFile = value
+ End Set
+ End Property
+
+ Public Property LogoTrasparenza() As String
+ Get
+ Return _LogoTrasparenza
+ End Get
+ Set(ByVal value As String)
+ _LogoTrasparenza = value
+ End Set
+ End Property
+
+ Public Property LogoMargine() As String
+ Get
+ Return _LogoMargine
+ End Get
+ Set(ByVal value As String)
+ _LogoMargine = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneH() As String
+ Get
+ Return _LogoPosizioneH
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneH = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneV() As String
+ Get
+ Return _LogoPosizioneV
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneV = value
+ End Set
+ End Property
+
+ Public Property FotoGrandeDimOrigina() As Boolean
+ Get
+ Return _FotoGrandeDimOrigina
+ End Get
+ Set(ByVal value As Boolean)
+ _FotoGrandeDimOrigina = value
+ End Set
+ End Property
+
+ Public Property AltezzaBig() As Integer
+ Get
+ Return _AltezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaBig = value
+ End Set
+ End Property
+
+ Public Property LarghezzaBig() As Integer
+ Get
+ Return _LarghezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaBig = value
+ End Set
+ End Property
+
+ Public Property DestDir() As DirectoryInfo
+ Get
+ Return _DestDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDir = value
+ End Set
+ End Property
+
+ Public Property DimVert() As Integer
+ Get
+ Return _DimVert
+
+ End Get
+ Set(ByVal value As Integer)
+ _DimVert = value
+
+ End Set
+ End Property
+
+ Public Property MargVert() As Integer
+ Get
+ Return _MargVert
+
+ End Get
+ Set(ByVal value As Integer)
+ _MargVert = value
+ End Set
+ End Property
+
+ Public Property TestoMin() As Boolean
+ Get
+ Return _TestoMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _TestoMin = value
+
+ End Set
+ End Property
+
+ Public Property DimMin() As Integer
+ Get
+ Return _DimMin
+
+ End Get
+ Set(ByVal value As Integer)
+ _DimMin = value
+
+ End Set
+ End Property
+
+ Public Property SecretDefault() As Boolean
+ Get
+ Return _SecretDefault
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretDefault = value
+
+ End Set
+ End Property
+
+ Public Property SecretBig() As Boolean
+ Get
+ Return _SecretBig
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretBig = value
+
+ End Set
+ End Property
+
+ Public Property SecretSmall() As Boolean
+ Get
+ Return _SecretSmall
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretSmall = value
+
+ End Set
+ End Property
+
+ Public Property SecretPathSmall() As String
+ Get
+ Return _SecretPathSmall
+
+ End Get
+ Set(ByVal value As String)
+ _SecretPathSmall = value
+
+ End Set
+ End Property
+
+ Public Property SecretPathBig() As String
+ Get
+ Return _SecretPathBig
+
+ End Get
+ Set(ByVal value As String)
+ _SecretPathBig = value
+
+ End Set
+ End Property
+
+ Public Property AggTempoGaraMin() As Boolean
+ Get
+ Return _AggTempoGaraMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _AggTempoGaraMin = value
+
+ End Set
+ End Property
+
+ Public Property AggNumTempMin() As Boolean
+ Get
+ Return _AggNumTempMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _AggNumTempMin = value
+
+ End Set
+ End Property
+
+ Public Property jpegQuality() As Long
+ Get
+ Return _jpegQuality
+ End Get
+ Set(ByVal value As Long)
+ _jpegQuality = value
+ End Set
+
+ End Property
+
+ Public Property jpegQualityMin() As Long
+ Get
+ Return _jpegQualityMin
+ End Get
+ Set(ByVal value As Long)
+ _jpegQualityMin = value
+ End Set
+
+ End Property
+
+End Class
diff --git a/imagecatalog/ExifReader.vb b/imagecatalog/ExifReader.vb
new file mode 100644
index 0000000..15a19bd
--- /dev/null
+++ b/imagecatalog/ExifReader.vb
@@ -0,0 +1,1068 @@
+'''-----------------------------------------------------------------------------
+'''
+''' Utility class for reading EXIF data from images. Provides abstraction
+''' for most common data and generic utilities for work with all other.
+'''
+'''
+''' Copyright (c) Michal A. Valášek - Altair Communications, 2003
+''' Copmany: http://software.altaircom.net * support@altaircom.net
+''' Private: http://www.rider.cz * developer@rider.cz
+''' This is free software licensed under GNU Lesser General Public License
+'''
+'''
+''' [altair] 10.9.2003 Created
+'''
+'''-----------------------------------------------------------------------------
+Public Class ExifReader
+ Implements IDisposable
+
+ Private Image As System.Drawing.Bitmap
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Contains possible values of EXIF tag names (ID)
+ '''
+ ''' See GdiPlusImaging.h
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum TagNames
+ ExifIFD = &H8769
+ GpsIFD = &H8825
+ NewSubfileType = &HFE
+ SubfileType = &HFF
+ ImageWidth = &H100
+ ImageHeight = &H101
+ BitsPerSample = &H102
+ Compression = &H103
+ PhotometricInterp = &H106
+ ThreshHolding = &H107
+ CellWidth = &H108
+ CellHeight = &H109
+ FillOrder = &H10A
+ DocumentName = &H10D
+ ImageDescription = &H10E
+ EquipMake = &H10F
+ EquipModel = &H110
+ StripOffsets = &H111
+ Orientation = &H112
+ SamplesPerPixel = &H115
+ RowsPerStrip = &H116
+ StripBytesCount = &H117
+ MinSampleValue = &H118
+ MaxSampleValue = &H119
+ XResolution = &H11A
+ YResolution = &H11B
+ PlanarConfig = &H11C
+ PageName = &H11D
+ XPosition = &H11E
+ YPosition = &H11F
+ FreeOffset = &H120
+ FreeByteCounts = &H121
+ GrayResponseUnit = &H122
+ GrayResponseCurve = &H123
+ T4Option = &H124
+ T6Option = &H125
+ ResolutionUnit = &H128
+ PageNumber = &H129
+ TransferFuncition = &H12D
+ SoftwareUsed = &H131
+ DateTime = &H132
+ Artist = &H13B
+ HostComputer = &H13C
+ Predictor = &H13D
+ WhitePoint = &H13E
+ PrimaryChromaticities = &H13F
+ ColorMap = &H140
+ HalftoneHints = &H141
+ TileWidth = &H142
+ TileLength = &H143
+ TileOffset = &H144
+ TileByteCounts = &H145
+ InkSet = &H14C
+ InkNames = &H14D
+ NumberOfInks = &H14E
+ DotRange = &H150
+ TargetPrinter = &H151
+ ExtraSamples = &H152
+ SampleFormat = &H153
+ SMinSampleValue = &H154
+ SMaxSampleValue = &H155
+ TransferRange = &H156
+ JPEGProc = &H200
+ JPEGInterFormat = &H201
+ JPEGInterLength = &H202
+ JPEGRestartInterval = &H203
+ JPEGLosslessPredictors = &H205
+ JPEGPointTransforms = &H206
+ JPEGQTables = &H207
+ JPEGDCTables = &H208
+ JPEGACTables = &H209
+ YCbCrCoefficients = &H211
+ YCbCrSubsampling = &H212
+ YCbCrPositioning = &H213
+ REFBlackWhite = &H214
+ ICCProfile = &H8773
+ Gamma = &H301
+ ICCProfileDescriptor = &H302
+ SRGBRenderingIntent = &H303
+ ImageTitle = &H320
+ Copyright = &H8298
+ ResolutionXUnit = &H5001
+ ResolutionYUnit = &H5002
+ ResolutionXLengthUnit = &H5003
+ ResolutionYLengthUnit = &H5004
+ PrintFlags = &H5005
+ PrintFlagsVersion = &H5006
+ PrintFlagsCrop = &H5007
+ PrintFlagsBleedWidth = &H5008
+ PrintFlagsBleedWidthScale = &H5009
+ HalftoneLPI = &H500A
+ HalftoneLPIUnit = &H500B
+ HalftoneDegree = &H500C
+ HalftoneShape = &H500D
+ HalftoneMisc = &H500E
+ HalftoneScreen = &H500F
+ JPEGQuality = &H5010
+ GridSize = &H5011
+ ThumbnailFormat = &H5012
+ ThumbnailWidth = &H5013
+ ThumbnailHeight = &H5014
+ ThumbnailColorDepth = &H5015
+ ThumbnailPlanes = &H5016
+ ThumbnailRawBytes = &H5017
+ ThumbnailSize = &H5018
+ ThumbnailCompressedSize = &H5019
+ ColorTransferFunction = &H501A
+ ThumbnailData = &H501B
+ ThumbnailImageWidth = &H5020
+ ThumbnailImageHeight = &H502
+ ThumbnailBitsPerSample = &H5022
+ ThumbnailCompression = &H5023
+ ThumbnailPhotometricInterp = &H5024
+ ThumbnailImageDescription = &H5025
+ ThumbnailEquipMake = &H5026
+ ThumbnailEquipModel = &H5027
+ ThumbnailStripOffsets = &H5028
+ ThumbnailOrientation = &H5029
+ ThumbnailSamplesPerPixel = &H502A
+ ThumbnailRowsPerStrip = &H502B
+ ThumbnailStripBytesCount = &H502C
+ ThumbnailResolutionX = &H502D
+ ThumbnailResolutionY = &H502E
+ ThumbnailPlanarConfig = &H502F
+ ThumbnailResolutionUnit = &H5030
+ ThumbnailTransferFunction = &H5031
+ ThumbnailSoftwareUsed = &H5032
+ ThumbnailDateTime = &H5033
+ ThumbnailArtist = &H5034
+ ThumbnailWhitePoint = &H5035
+ ThumbnailPrimaryChromaticities = &H5036
+ ThumbnailYCbCrCoefficients = &H5037
+ ThumbnailYCbCrSubsampling = &H5038
+ ThumbnailYCbCrPositioning = &H5039
+ ThumbnailRefBlackWhite = &H503A
+ ThumbnailCopyRight = &H503B
+ LuminanceTable = &H5090
+ ChrominanceTable = &H5091
+ FrameDelay = &H5100
+ LoopCount = &H5101
+ PixelUnit = &H5110
+ PixelPerUnitX = &H5111
+ PixelPerUnitY = &H5112
+ PaletteHistogram = &H5113
+ ExifExposureTime = &H829A
+ ExifFNumber = &H829D
+ ExifExposureProg = &H8822
+ ExifSpectralSense = &H8824
+ ExifISOSpeed = &H8827
+ ExifOECF = &H8828
+ ExifVer = &H9000
+ ExifDTOrig = &H9003
+ ExifDTDigitized = &H9004
+ ExifCompConfig = &H9101
+ ExifCompBPP = &H9102
+ ExifShutterSpeed = &H9201
+ ExifAperture = &H9202
+ ExifBrightness = &H9203
+ ExifExposureBias = &H9204
+ ExifMaxAperture = &H9205
+ ExifSubjectDist = &H9206
+ ExifMeteringMode = &H9207
+ ExifLightSource = &H9208
+ ExifFlash = &H9209
+ ExifFocalLength = &H920A
+ ExifMakerNote = &H927C
+ ExifUserComment = &H9286
+ ExifDTSubsec = &H9290
+ ExifDTOrigSS = &H9291
+ ExifDTDigSS = &H9292
+ ExifFPXVer = &HA000
+ ExifColorSpace = &HA001
+ ExifPixXDim = &HA002
+ ExifPixYDim = &HA003
+ ExifRelatedWav = &HA004
+ ExifInterop = &HA005
+ ExifFlashEnergy = &HA20B
+ ExifSpatialFR = &HA20C
+ ExifFocalXRes = &HA20E
+ ExifFocalYRes = &HA20F
+ ExifFocalResUnit = &HA210
+ ExifSubjectLoc = &HA214
+ ExifExposureIndex = &HA215
+ ExifSensingMethod = &HA217
+ ExifFileSource = &HA300
+ ExifSceneType = &HA301
+ ExifCfaPattern = &HA302
+ GpsVer = &H0
+ GpsLatitudeRef = &H1
+ GpsLatitude = &H2
+ GpsLongitudeRef = &H3
+ GpsLongitude = &H4
+ GpsAltitudeRef = &H5
+ GpsAltitude = &H6
+ GpsGpsTime = &H7
+ GpsGpsSatellites = &H8
+ GpsGpsStatus = &H9
+ GpsGpsMeasureMode = &HA
+ GpsGpsDop = &HB
+ GpsSpeedRef = &HC
+ GpsSpeed = &HD
+ GpsTrackRef = &HE
+ GpsTrack = &HF
+ GpsImgDirRef = &H10
+ GpsImgDir = &H11
+ GpsMapDatum = &H12
+ GpsDestLatRef = &H13
+ GpsDestLat = &H14
+ GpsDestLongRef = &H15
+ GpsDestLong = &H16
+ GpsDestBearRef = &H17
+ GpsDestBear = &H18
+ GpsDestDistRef = &H19
+ GpsDestDist = &H1A
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Real position of 0th row and column of picture
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum Orientations
+ TopLeft = 1
+ TopRight = 2
+ BottomRight = 3
+ BottomLeft = 4
+ LeftTop = 5
+ RightTop = 6
+ RightBottom = 7
+ LftBottom = 8
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure programs
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum ExposurePrograms
+ Manual = 1
+ Normal = 2
+ AperturePriority = 3
+ ShutterPriority = 4
+ Creative = 5
+ Action = 6
+ Portrait = 7
+ Landscape = 8
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure metering modes
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum ExposureMeteringModes
+ Unknown = 0
+ Average = 1
+ CenterWeightedAverage = 2
+ Spot = 3
+ MultiSpot = 4
+ MultiSegment = 5
+ [Partial] = 6
+ Other = 255
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Flash activity modes
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum FlashModes
+ NotFired = 0
+ Fired = 1
+ FiredButNoStrobeReturned = 5
+ FiredAndStrobeReturned = 7
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Possible light sources (white balance)
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Enum LightSources
+ Unknown = 0
+ Daylight = 1
+ Fluorescent = 2
+ Tungsten = 3
+ Flash = 10
+ StandardLightA = 17
+ StandardLightB = 18
+ StandardLightC = 19
+ D55 = 20
+ D65 = 21
+ D75 = 22
+ Other = 255
+ End Enum
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Represents rational which is type of some Exif properties
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Structure Rational
+ Dim Numerator As Int32
+ Dim Denominator As Int32
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Converts rational to string representation
+ '''
+ ''' Optional, default "/". String to be used as delimiter of components.
+ ''' String representation of the rational.
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Shadows Function ToString(Optional ByVal Delimiter As String = "/") As String
+ Return Numerator & Delimiter & Denominator
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Converts rational to double precision real number
+ '''
+ ''' The rational as double precision real number.
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Function ToDouble() As Double
+ Return Numerator / Denominator
+ End Function
+ End Structure
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Initializes new instance of this class.
+ '''
+ ''' Bitmap to read exif information from
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Sub New(ByVal Bitmap As System.Drawing.Bitmap)
+ If Bitmap Is Nothing Then Throw New ArgumentNullException("Bitmap")
+ Me.Image = Bitmap
+ End Sub
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Returns all available data in formatted string form
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Overrides Function ToString() As String
+ Dim SB As New System.Text.StringBuilder
+
+ SB.Append("Image:")
+ SB.Append("\n\tDimensions: " & Me.Width & " x " & Me.Height & " px")
+ SB.Append("\n\tResolution: " & Me.ResolutionX & " x " & Me.ResolutionY & " dpi")
+ SB.Append("\n\tOrientation: " & [Enum].GetName(GetType(Orientations), Me.Orientation))
+ SB.Append("\n\tTitle: " & Me.Title)
+ SB.Append("\n\tDescription: " & Me.Description)
+ SB.Append("\n\tCopyright: " & Me.Copyright)
+ SB.Append("\nEquipment:")
+ SB.Append("\n\tMaker: " & Me.EquipmentMaker)
+ SB.Append("\n\tModel: " & Me.EquipmentModel)
+ SB.Append("\n\tSoftware: " & Me.Software)
+ SB.Append("\nDate and time:")
+ SB.Append("\n\tGeneral: " & Me.DateTimeLastModified.ToString())
+ SB.Append("\n\tOriginal: " & Me.DateTimeOriginal.ToString())
+ SB.Append("\n\tDigitized: " & Me.DateTimeDigitized.ToString())
+ SB.Append("\nShooting conditions:")
+ SB.Append("\n\tExposure time: " & Me.ExposureTime.ToString("N4") & " s")
+ SB.Append("\n\tExposure program: " & [Enum].GetName(GetType(ExposurePrograms), Me.ExposureProgram))
+ SB.Append("\n\tExposure mode: " & [Enum].GetName(GetType(ExposureMeteringModes), Me.ExposureMeteringMode))
+ SB.Append("\n\tAperture: F" & Me.Aperture.ToString("N2"))
+ SB.Append("\n\tISO sensitivity: " & Me.ISO)
+ SB.Append("\n\tSubject distance: " & Me.SubjectDistance.ToString("N2") & " m")
+ SB.Append("\n\tFocal length: " & Me.FocalLength)
+ SB.Append("\n\tFlash: " & [Enum].GetName(GetType(FlashModes), Me.FlashMode))
+ SB.Append("\n\tLight source (WB): " & [Enum].GetName(GetType(LightSources), Me.LightSource))
+ SB.Append("\n\nCopyright (c) Michal A. Valasek - Altair Communications, 2003")
+ SB.Append("\nhttp://software.altaircom.net * support@altaircom.net")
+
+ SB.Replace("\n", vbCrLf)
+ SB.Replace("\t", vbTab)
+ Return SB.ToString()
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Brand of equipment (EXIF EquipMake)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property EquipmentMaker() As String
+ Get
+ Return Me.GetPropertyString(TagNames.EquipMake)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Model of equipment (EXIF EquipModel)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property EquipmentModel() As String
+ Get
+ Return Me.GetPropertyString(TagNames.EquipModel)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Software used for processing (EXIF Software)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Software() As String
+ Get
+ Return Me.GetPropertyString(TagNames.SoftwareUsed)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Orientation of image (position of row 0, column 0) (EXIF Orientation)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Orientation() As Orientations
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.Orientation)
+
+ If Not [Enum].IsDefined(GetType(Orientations), X) Then
+ Return Orientations.TopLeft
+ Else
+ Return CType([Enum].Parse(GetType(Orientations), [Enum].GetName(GetType(Orientations), X)), Orientations)
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Time when image was last modified (EXIF DateTime).
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property DateTimeLastModified() As DateTime
+ Get
+ Try
+ Return DateTime.ParseExact(Me.GetPropertyString(TagNames.DateTime), "yyyy\:MM\:dd HH\:mm\:ss", Nothing)
+ Catch ex As Exception
+ Return DateTime.MinValue
+ End Try
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Time when image was taken (EXIF DateTimeOriginal).
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property DateTimeOriginal() As DateTime
+ Get
+ Try
+ Return DateTime.ParseExact(Me.GetPropertyString(TagNames.ExifDTOrig), "yyyy\:MM\:dd HH\:mm\:ss", Nothing)
+ Catch ex As Exception
+ Return DateTime.MinValue
+ End Try
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Time when image was digitized (EXIF DateTimeDigitized).
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property DateTimeDigitized() As DateTime
+ Get
+ Try
+ Return DateTime.ParseExact(Me.GetPropertyString(TagNames.ExifDTDigitized), "yyyy\:MM\:dd HH\:mm\:ss", Nothing)
+ Catch ex As Exception
+ Return DateTime.MinValue
+ End Try
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image width
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Width() As Int16
+ Get
+ Return Me.GetPropertyInt16(TagNames.ImageWidth)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image height
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Height() As Int16
+ Get
+ Return Me.GetPropertyInt16(TagNames.ImageHeight)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' X resolution in dpi (EXIF XResolution/ResolutionUnit)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ResolutionX() As Double
+ Get
+ Dim R As Double = Me.GetPropertyRational(TagNames.XResolution).ToDouble()
+
+ If Me.GetPropertyInt16(TagNames.ResolutionUnit) = 3 Then
+ '-- resolution is in points/cm
+ Return R * 2.54
+ Else
+ '-- resolution is in points/inch
+ Return R
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Y resolution in dpi (EXIF YResolution/ResolutionUnit)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ResolutionY() As Double
+ Get
+ Dim R As Double = Me.GetPropertyRational(TagNames.YResolution).ToDouble()
+
+ If Me.GetPropertyInt16(TagNames.ResolutionUnit) = 3 Then
+ '-- resolution is in points/cm
+ Return R * 2.54
+ Else
+ '-- resolution is in points/inch
+ Return R
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image title (EXIF ImageTitle)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Title() As String
+ Get
+ Return Me.GetPropertyString(TagNames.ImageTitle)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image description (EXIF ImageDescription)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Description() As String
+ Get
+ Return Me.GetPropertyString(TagNames.ImageDescription)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Image copyright (EXIF Copyright)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Copyright() As String
+ Get
+ Return Me.GetPropertyString(TagNames.Copyright)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure time in seconds (EXIF ExifExposureTime/ExifShutterSpeed)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ExposureTime() As Double
+ Get
+ If Me.IsPropertyDefined(TagNames.ExifExposureTime) Then
+ '-- Exposure time is explicitly specified
+ Return Me.GetPropertyRational(TagNames.ExifExposureTime).ToDouble
+ ElseIf Me.IsPropertyDefined(TagNames.ExifShutterSpeed) Then
+ '-- Compute exposure time from shutter speed
+ Return 1 / (2 ^ Me.GetPropertyRational(TagNames.ExifShutterSpeed).ToDouble)
+ Else
+ '-- Can't figure out
+ Return 0
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Aperture value as F number (EXIF ExifFNumber/ExifApertureValue)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property Aperture() As Double
+ Get
+ If Me.IsPropertyDefined(TagNames.ExifFNumber) Then
+ Return Me.GetPropertyRational(TagNames.ExifFNumber).ToDouble()
+ ElseIf Me.IsPropertyDefined(TagNames.ExifAperture) Then
+ Return System.Math.Sqrt(2) ^ Me.GetPropertyRational(TagNames.ExifAperture).ToDouble()
+ Else
+ Return 0
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure program used (EXIF ExifExposureProg)
+ '''
+ '''
+ ''' If not specified, returns Normal (2)
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ExposureProgram() As ExposurePrograms
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifExposureProg)
+
+ If [Enum].IsDefined(GetType(ExposurePrograms), X) Then
+ Return CType([Enum].Parse(GetType(ExposurePrograms), [Enum].GetName(GetType(ExposurePrograms), X)), ExposurePrograms)
+ Else
+ Return ExposurePrograms.Normal
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' ISO sensitivity
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ISO() As Int16
+ Get
+ Return Me.GetPropertyInt16(TagNames.ExifISOSpeed)
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Subject distance in meters (EXIF SubjectDistance)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property SubjectDistance() As Double
+ Get
+ Return Me.GetPropertyRational(TagNames.ExifSubjectDist).ToDouble()
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Exposure method metering mode used (EXIF MeteringMode)
+ '''
+ '''
+ ''' If not specified, returns Unknown (0)
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property ExposureMeteringMode() As ExposureMeteringModes
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifMeteringMode)
+
+ If [Enum].IsDefined(GetType(ExposureMeteringModes), X) Then
+ Return CType([Enum].Parse(GetType(ExposureMeteringModes), [Enum].GetName(GetType(ExposureMeteringModes), X)), ExposureMeteringModes)
+ Else
+ Return ExposureMeteringModes.Unknown
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Focal length of lenses in mm (EXIF FocalLength)
+ '''
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property FocalLength() As Double
+ Get
+ Return Me.GetPropertyRational(TagNames.ExifFocalLength).ToDouble
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Flash mode (EXIF Flash)
+ '''
+ '''
+ ''' If not present, value NotFired (0) is returned
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property FlashMode() As FlashModes
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifFlash)
+
+ If [Enum].IsDefined(GetType(FlashModes), X) Then
+ Return CType([Enum].Parse(GetType(FlashModes), [Enum].GetName(GetType(FlashModes), X)), FlashModes)
+ Else
+ Return FlashModes.NotFired
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Light source / white balance (EXIF LightSource)
+ '''
+ '''
+ ''' If not specified, returns Unknown (0).
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public ReadOnly Property LightSource() As LightSources
+ Get
+ Dim X As Int32 = Me.GetPropertyInt16(TagNames.ExifLightSource)
+
+ If [Enum].IsDefined(GetType(LightSources), X) Then
+ Return CType([Enum].Parse(GetType(LightSources), [Enum].GetName(GetType(LightSources), X)), LightSources)
+ Else
+ Return LightSources.Unknown
+ End If
+ End Get
+ End Property
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Checks if current image has specified certain property
+ '''
+ '''
+ ''' True if image has specified property, False otherwise.
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function IsPropertyDefined(ByVal PID As Int32) As Boolean
+ Return CBool([Array].IndexOf(Me.Image.PropertyIdList, PID) > -1)
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified Int32 property
+ '''
+ ''' Property ID
+ ''' Optional, default 0. Default value returned if property is not present.
+ ''' Value of property or DefaultValue if property is not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyInt32(ByVal PID As Int32, Optional ByVal DefaultValue As Int32 = 0) As Int32
+ If Me.IsPropertyDefined(PID) Then
+ Return GetInt32(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Return DefaultValue
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified Int16 property
+ '''
+ ''' Property ID
+ ''' Optional, default 0. Default value returned if property is not present.
+ ''' Value of property or DefaultValue if property is not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyInt16(ByVal PID As Int32, Optional ByVal DefaultValue As Int16 = 0) As Int16
+ If Me.IsPropertyDefined(PID) Then
+ Return GetInt16(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Return DefaultValue
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified string property
+ '''
+ ''' Property ID
+ ''' Optional, default String.Empty. Default value returned if property is not present.
+ '''
+ ''' Value of property or DefaultValue if property is not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyString(ByVal PID As Int32, Optional ByVal DefaultValue As String = "") As String
+ If Me.IsPropertyDefined(PID) Then
+ Return GetString(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Return DefaultValue
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Gets specified rational property
+ '''
+ ''' Property ID
+ '''
+ ''' Value of property or 0/1 if not present.
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Function GetPropertyRational(ByVal PID As Int32) As Rational
+ If Me.IsPropertyDefined(PID) Then
+ Return GetRational(Me.Image.GetPropertyItem(PID).Value)
+ Else
+ Dim R As Rational
+ R.Numerator = 0
+ R.Denominator = 1
+ Return R
+ End If
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads Int32 from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetInt32(ByVal B As Byte()) As Int32
+ If B.Length < 4 Then Throw New ArgumentException("Data too short (4 bytes expected)", "B")
+ Return B(3) << 24 Or B(2) << 16 Or B(1) << 8 Or B(0)
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads Int16 from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetInt16(ByVal B As Byte()) As Int16
+ If B.Length < 2 Then Throw New ArgumentException("Data too short (2 bytes expected)", "B")
+ Return B(1) << 8 Or B(0)
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads string from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetString(ByVal B As Byte()) As String
+ Dim R As String = System.Text.Encoding.ASCII.GetString(B)
+ If R.EndsWith(vbNullChar) Then R = R.Substring(0, R.Length - 1)
+ Return R
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Reads rational from EXIF bytearray.
+ '''
+ ''' EXIF bytearray to process
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Shared Function GetRational(ByVal B As Byte()) As Rational
+ Dim R As New Rational, N(3), D(3) As Byte
+ Array.Copy(B, 0, N, 0, 4)
+ Array.Copy(B, 4, D, 0, 4)
+ R.Denominator = GetInt32(D)
+ R.Numerator = GetInt32(N)
+ Return R
+ End Function
+
+ '''-----------------------------------------------------------------------------
+ '''
+ ''' Disposes unmanaged resources of this class
+ '''
+ '''
+ '''
+ ''' [altair] 10.9.2003 Created
+ '''
+ '''-----------------------------------------------------------------------------
+ Public Sub Dispose() Implements System.IDisposable.Dispose
+ Me.Image.Dispose()
+ End Sub
+End Class
diff --git a/imagecatalog/FileHelper.vb b/imagecatalog/FileHelper.vb
new file mode 100644
index 0000000..8d203c3
--- /dev/null
+++ b/imagecatalog/FileHelper.vb
@@ -0,0 +1,143 @@
+Imports System.IO
+Imports System.Collections.Generic
+
+Public Class FileHelper
+ 'Private dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo)
+ Private filesPerFolder As Integer
+ Private suffix As String
+ Private counterSize As Integer
+ Private numerationType As Integer
+ Private filter As String
+ Private separateFiles As Boolean
+ Private extensions As String = "*.jpg,*.png,*.gif"
+
+
+ Public Enum numerazione
+ Progressiva
+ Files
+ End Enum
+ '''
+ ''' Preparazione per la separazione
+ '''
+ '''
+ '''
+ '''
+ '''
+ '''
+ Public Sub New(ByVal filesPerFolder As Integer, ByVal suffix As String, ByVal counterSize As Integer, ByVal numerationType As Integer)
+ Me.filesPerFolder = filesPerFolder
+ Me.suffix = suffix
+ Me.counterSize = counterSize
+ me.numerationType = numerationType
+ Me.separateFiles = True
+ End Sub
+
+ '''
+ ''' nessuna separazione
+ '''
+ '''
+ Public Sub New()
+ me.separateFiles = False
+ End Sub
+
+
+ Public Function GetFilesRecursive(ByVal root As DirectoryInfo, ByVal destRoot As DirectoryInfo, ByVal filter As String) As Dictionary(Of FileInfo, DirectoryInfo)
+ Dim dirSourceDest As New Dictionary(Of FileInfo, DirectoryInfo)
+ Dim result As New List(Of FileInfo)
+
+ 'Dim stack As New Stack(Of DirectoryInfo)
+ Dim stack As New Stack(Of KeyValuePair(Of DirectoryInfo, DirectoryInfo))
+
+
+ Me.filter = filter
+ Dim pair As New KeyValuePair(Of DirectoryInfo, DirectoryInfo)
+
+
+ 'stack.Push(root)
+ stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(root, destRoot))
+
+ Do While (stack.Count > 0)
+ Dim curDirKV As KeyValuePair(Of DirectoryInfo, DirectoryInfo) = stack.Pop
+ 'curDirKP = stack.Pop()
+ Dim dir As DirectoryInfo = curDirKV.Key
+ Dim dDir As DirectoryInfo = curDirKV.Value
+ Try
+ 'result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
+ ' dividere file qui
+ If filesPerFolder > 0 And separateFiles Then
+ appendDictionary(dirSourceDest, dividiFilesInDir(dir, dDir))
+ Else
+ appendDictionary(dirSourceDest, getAllFilesInDir(dir, dDir))
+ End If
+
+
+
+ For Each subDirectory As DirectoryInfo In dir.GetDirectories
+ stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(subDirectory, New DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))))
+
+ Next
+ Catch ex As Exception
+
+ End Try
+ Loop
+
+ Return dirSourceDest
+ End Function
+
+ Public Function appendDictionary(ByVal dictA As Dictionary(Of FileInfo, DirectoryInfo), ByVal dictB As Dictionary(Of FileInfo, DirectoryInfo)) As Dictionary(Of FileInfo, DirectoryInfo)
+ For Each pair As KeyValuePair(Of FileInfo, DirectoryInfo) In dictB
+ dictA.Add(pair.Key, pair.Value)
+ Next
+ Return dictA
+ End Function
+
+ Public Function getAllFilesInDir(dir As DirectoryInfo, dirDest As DirectoryInfo) As Dictionary(Of FileInfo, DirectoryInfo)
+ Dim dict As New Dictionary(Of FileInfo, DirectoryInfo)
+ For Each File As FileInfo In dir.GetFiles(filter)
+ dict.Add(File, New DirectoryInfo(Path.Combine(dirDest.FullName, File.Name)))
+
+ Next
+ Return dict
+ End Function
+
+ Private Function dividiFilesInDir(dir As DirectoryInfo, dirDest As DirectoryInfo) As Dictionary(Of FileInfo, DirectoryInfo)
+ Dim filesCount As Integer = dir.GetFiles(filter).Count
+ Dim contaFilePerDir As Integer = 0
+ Dim contaDirPerDir As Integer = 0
+ Dim tempText As String = String.Empty
+ Dim foldersDict As New Dictionary(Of FileInfo, DirectoryInfo)
+
+ Dim destDir As DirectoryInfo
+ destDir = New DirectoryInfo(Path.Combine(dirDest.FullName))
+ For Each file As FileInfo In dir.GetFiles(filter)
+
+ contaFilePerDir += 1
+
+ If contaFilePerDir = (contaDirPerDir * filesPerFolder) + 1 Then
+ contaDirPerDir += 1
+
+ If numerationType = numerazione.Progressiva Then
+ tempText = contaDirPerDir.ToString
+ Else
+ tempText = (contaDirPerDir * filesPerFolder).ToString
+ End If
+ Dim i As Integer
+ For i = 1 To (counterSize - tempText.Length)
+ tempText = "0" & tempText
+ Next
+ destDir = New DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText))
+
+
+
+ End If
+
+ If Not destDir.Exists Then
+ destDir.Create()
+ End If
+
+ foldersDict.Add(file, destDir)
+ Next
+
+ Return foldersDict
+ End Function
+End Class
diff --git a/imagecatalog/Form1.resx b/imagecatalog/Form1.resx
new file mode 100644
index 0000000..d58980a
--- /dev/null
+++ b/imagecatalog/Form1.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/imagecatalog/Form1.vb b/imagecatalog/Form1.vb
new file mode 100644
index 0000000..8a271f5
--- /dev/null
+++ b/imagecatalog/Form1.vb
@@ -0,0 +1,2945 @@
+Imports System.IO
+Imports System.Drawing.Drawing2D
+Imports System.Drawing.Imaging
+Imports System.Threading
+Imports System.Collections.Generic
+
+Public Delegate Sub XyThreadAddold(ByVal Info As String)
+
+Public Class Form1
+ Inherits System.Windows.Forms.Form
+
+#Region " Windows Form Designer generated code "
+
+ Public Sub New()
+ MyBase.New()
+
+ 'This call is required by the Windows Form Designer.
+ InitializeComponent()
+
+ 'Add any initialization after the InitializeComponent() call
+
+ End Sub
+
+ 'Form overrides dispose to clean up the component list.
+ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If Not (components Is Nothing) Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ Friend WithEvents Button1 As System.Windows.Forms.Button
+ Friend WithEvents Label10 As System.Windows.Forms.Label
+ Friend WithEvents Label17 As System.Windows.Forms.Label
+ Friend WithEvents Label18 As System.Windows.Forms.Label
+ Friend WithEvents Label19 As System.Windows.Forms.Label
+ Friend WithEvents Label20 As System.Windows.Forms.Label
+ Friend WithEvents Button6 As System.Windows.Forms.Button
+ Friend WithEvents Button5 As System.Windows.Forms.Button
+ Friend WithEvents Button7 As System.Windows.Forms.Button
+ Friend WithEvents Label27 As System.Windows.Forms.Label
+ Friend WithEvents TextBox13 As System.Windows.Forms.TextBox
+ Friend WithEvents Label16 As System.Windows.Forms.Label
+ Friend WithEvents Label7 As System.Windows.Forms.Label
+ Friend WithEvents TextBox7 As System.Windows.Forms.TextBox
+ Friend WithEvents Label8 As System.Windows.Forms.Label
+ Friend WithEvents TextBox8 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox2 As System.Windows.Forms.CheckBox
+ Friend WithEvents Label43 As System.Windows.Forms.Label
+ Friend WithEvents CheckBox22 As System.Windows.Forms.CheckBox
+ Friend WithEvents TabPage4 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox6 As System.Windows.Forms.GroupBox
+ Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
+ Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
+ Friend WithEvents ComboBox5 As System.Windows.Forms.ComboBox
+ Friend WithEvents ComboBox4 As System.Windows.Forms.ComboBox
+ Friend WithEvents TextBox19 As System.Windows.Forms.TextBox
+ Friend WithEvents Label28 As System.Windows.Forms.Label
+ Friend WithEvents CheckBox5 As System.Windows.Forms.CheckBox
+ Friend WithEvents TextBox15 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox14 As System.Windows.Forms.TextBox
+ Friend WithEvents Label25 As System.Windows.Forms.Label
+ Friend WithEvents TextBox16 As System.Windows.Forms.TextBox
+ Friend WithEvents Label24 As System.Windows.Forms.Label
+ Friend WithEvents Label22 As System.Windows.Forms.Label
+ Friend WithEvents Label23 As System.Windows.Forms.Label
+ Friend WithEvents Button4 As System.Windows.Forms.Button
+ Friend WithEvents TextBox10 As System.Windows.Forms.TextBox
+ Friend WithEvents Label29 As System.Windows.Forms.Label
+ Friend WithEvents Label30 As System.Windows.Forms.Label
+ Friend WithEvents PictureBox3 As System.Windows.Forms.PictureBox
+ Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
+ Friend WithEvents Panel2 As System.Windows.Forms.Panel
+ Friend WithEvents RadioButton3 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton7 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton4 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton6 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton5 As System.Windows.Forms.RadioButton
+ Friend WithEvents Label5 As System.Windows.Forms.Label
+ Friend WithEvents TextBox5 As System.Windows.Forms.TextBox
+ Friend WithEvents Label6 As System.Windows.Forms.Label
+ Friend WithEvents TextBox6 As System.Windows.Forms.TextBox
+ Friend WithEvents Label3 As System.Windows.Forms.Label
+ Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox
+ Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
+ Friend WithEvents TextBox26 As System.Windows.Forms.TextBox
+ Friend WithEvents Label37 As System.Windows.Forms.Label
+ Friend WithEvents Label38 As System.Windows.Forms.Label
+ Friend WithEvents TextBox27 As System.Windows.Forms.TextBox
+ Friend WithEvents Label39 As System.Windows.Forms.Label
+ Friend WithEvents TextBox28 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox15 As System.Windows.Forms.CheckBox
+ Friend WithEvents TabPage3 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox10 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label42 As System.Windows.Forms.Label
+ Friend WithEvents Label41 As System.Windows.Forms.Label
+ Friend WithEvents TextBox31 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox30 As System.Windows.Forms.TextBox
+ Friend WithEvents GroupBox9 As System.Windows.Forms.GroupBox
+ Friend WithEvents CheckBox17 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox16 As System.Windows.Forms.CheckBox
+ Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox
+ Friend WithEvents Button8 As System.Windows.Forms.Button
+ Friend WithEvents Label36 As System.Windows.Forms.Label
+ Friend WithEvents TextBox25 As System.Windows.Forms.TextBox
+ Friend WithEvents Label35 As System.Windows.Forms.Label
+ Friend WithEvents ComboBox3 As System.Windows.Forms.ComboBox
+ Friend WithEvents TextBox11 As System.Windows.Forms.TextBox
+ Friend WithEvents Label12 As System.Windows.Forms.Label
+ Friend WithEvents Label11 As System.Windows.Forms.Label
+ Friend WithEvents CheckBox3 As System.Windows.Forms.CheckBox
+ Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label40 As System.Windows.Forms.Label
+ Friend WithEvents TextBox29 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox18 As System.Windows.Forms.TextBox
+ Friend WithEvents Label26 As System.Windows.Forms.Label
+ Friend WithEvents DateTimePicker1 As System.Windows.Forms.DateTimePicker
+ Friend WithEvents CheckBox8 As System.Windows.Forms.CheckBox
+ Friend WithEvents TextBox9 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox7 As System.Windows.Forms.CheckBox
+ Friend WithEvents Label4 As System.Windows.Forms.Label
+ Friend WithEvents TextBox4 As System.Windows.Forms.TextBox
+ Friend WithEvents Label9 As System.Windows.Forms.Label
+ Friend WithEvents Label13 As System.Windows.Forms.Label
+ Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
+ Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox
+ Friend WithEvents Label14 As System.Windows.Forms.Label
+ Friend WithEvents TextBox12 As System.Windows.Forms.TextBox
+ Friend WithEvents Label15 As System.Windows.Forms.Label
+ Friend WithEvents TabPage5 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox
+ Friend WithEvents CheckBox6 As System.Windows.Forms.CheckBox
+ Friend WithEvents Button3 As System.Windows.Forms.Button
+ Friend WithEvents Button2 As System.Windows.Forms.Button
+ Friend WithEvents Label1 As System.Windows.Forms.Label
+ Friend WithEvents Label2 As System.Windows.Forms.Label
+ Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
+ Friend WithEvents GroupBox8 As System.Windows.Forms.GroupBox
+ Friend WithEvents RadioButton2 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton1 As System.Windows.Forms.RadioButton
+ Friend WithEvents TextBox21 As System.Windows.Forms.TextBox
+ Friend WithEvents Label34 As System.Windows.Forms.Label
+ Friend WithEvents TextBox20 As System.Windows.Forms.TextBox
+ Friend WithEvents Label33 As System.Windows.Forms.Label
+ Friend WithEvents Label31 As System.Windows.Forms.Label
+ Friend WithEvents CheckBox11 As System.Windows.Forms.CheckBox
+ Friend WithEvents TextBox17 As System.Windows.Forms.TextBox
+ Friend WithEvents Label32 As System.Windows.Forms.Label
+ Friend WithEvents GroupBox7 As System.Windows.Forms.GroupBox
+ Friend WithEvents CheckBox10 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox9 As System.Windows.Forms.CheckBox
+ Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
+ Friend WithEvents Label45 As System.Windows.Forms.Label
+ Friend WithEvents TextBox32 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox33 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox34 As System.Windows.Forms.TextBox
+ Friend WithEvents Label46 As System.Windows.Forms.Label
+ Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
+ Friend WithEvents Panel1 As System.Windows.Forms.Panel
+ Friend WithEvents CheckBox18 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox4 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox12 As System.Windows.Forms.CheckBox
+ Friend WithEvents Label44 As System.Windows.Forms.Label
+ Private Sub InitializeComponent()
+ Me.Button1 = New System.Windows.Forms.Button()
+ Me.Label10 = New System.Windows.Forms.Label()
+ Me.Label17 = New System.Windows.Forms.Label()
+ Me.Label18 = New System.Windows.Forms.Label()
+ Me.Label19 = New System.Windows.Forms.Label()
+ Me.Label20 = New System.Windows.Forms.Label()
+ Me.Button6 = New System.Windows.Forms.Button()
+ Me.Button5 = New System.Windows.Forms.Button()
+ Me.Button7 = New System.Windows.Forms.Button()
+ Me.Label27 = New System.Windows.Forms.Label()
+ Me.TextBox13 = New System.Windows.Forms.TextBox()
+ Me.Label16 = New System.Windows.Forms.Label()
+ Me.Label7 = New System.Windows.Forms.Label()
+ Me.TextBox7 = New System.Windows.Forms.TextBox()
+ Me.Label8 = New System.Windows.Forms.Label()
+ Me.TextBox8 = New System.Windows.Forms.TextBox()
+ Me.CheckBox2 = New System.Windows.Forms.CheckBox()
+ Me.Label43 = New System.Windows.Forms.Label()
+ Me.CheckBox22 = New System.Windows.Forms.CheckBox()
+ Me.Label44 = New System.Windows.Forms.Label()
+ Me.TabPage4 = New System.Windows.Forms.TabPage()
+ Me.GroupBox6 = New System.Windows.Forms.GroupBox()
+ Me.PictureBox2 = New System.Windows.Forms.PictureBox()
+ Me.PictureBox1 = New System.Windows.Forms.PictureBox()
+ Me.ComboBox5 = New System.Windows.Forms.ComboBox()
+ Me.ComboBox4 = New System.Windows.Forms.ComboBox()
+ Me.TextBox19 = New System.Windows.Forms.TextBox()
+ Me.Label28 = New System.Windows.Forms.Label()
+ Me.CheckBox5 = New System.Windows.Forms.CheckBox()
+ Me.TextBox15 = New System.Windows.Forms.TextBox()
+ Me.TextBox14 = New System.Windows.Forms.TextBox()
+ Me.Label25 = New System.Windows.Forms.Label()
+ Me.TextBox16 = New System.Windows.Forms.TextBox()
+ Me.Label24 = New System.Windows.Forms.Label()
+ Me.Label22 = New System.Windows.Forms.Label()
+ Me.Label23 = New System.Windows.Forms.Label()
+ Me.Button4 = New System.Windows.Forms.Button()
+ Me.TextBox10 = New System.Windows.Forms.TextBox()
+ Me.Label29 = New System.Windows.Forms.Label()
+ Me.Label30 = New System.Windows.Forms.Label()
+ Me.PictureBox3 = New System.Windows.Forms.PictureBox()
+ Me.TabPage1 = New System.Windows.Forms.TabPage()
+ Me.GroupBox1 = New System.Windows.Forms.GroupBox()
+ Me.Label46 = New System.Windows.Forms.Label()
+ Me.TextBox33 = New System.Windows.Forms.TextBox()
+ Me.Panel2 = New System.Windows.Forms.Panel()
+ Me.RadioButton3 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton7 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton4 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton6 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton5 = New System.Windows.Forms.RadioButton()
+ Me.Label5 = New System.Windows.Forms.Label()
+ Me.TextBox5 = New System.Windows.Forms.TextBox()
+ Me.Label6 = New System.Windows.Forms.Label()
+ Me.TextBox6 = New System.Windows.Forms.TextBox()
+ Me.Label3 = New System.Windows.Forms.Label()
+ Me.TextBox3 = New System.Windows.Forms.TextBox()
+ Me.CheckBox1 = New System.Windows.Forms.CheckBox()
+ Me.TabPage2 = New System.Windows.Forms.TabPage()
+ Me.GroupBox2 = New System.Windows.Forms.GroupBox()
+ Me.Label45 = New System.Windows.Forms.Label()
+ Me.TextBox32 = New System.Windows.Forms.TextBox()
+ Me.TextBox26 = New System.Windows.Forms.TextBox()
+ Me.Label37 = New System.Windows.Forms.Label()
+ Me.Label38 = New System.Windows.Forms.Label()
+ Me.TextBox27 = New System.Windows.Forms.TextBox()
+ Me.Label39 = New System.Windows.Forms.Label()
+ Me.TextBox28 = New System.Windows.Forms.TextBox()
+ Me.CheckBox15 = New System.Windows.Forms.CheckBox()
+ Me.TabPage3 = New System.Windows.Forms.TabPage()
+ Me.GroupBox10 = New System.Windows.Forms.GroupBox()
+ Me.Label42 = New System.Windows.Forms.Label()
+ Me.Label41 = New System.Windows.Forms.Label()
+ Me.TextBox31 = New System.Windows.Forms.TextBox()
+ Me.TextBox30 = New System.Windows.Forms.TextBox()
+ Me.GroupBox9 = New System.Windows.Forms.GroupBox()
+ Me.CheckBox17 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox16 = New System.Windows.Forms.CheckBox()
+ Me.GroupBox5 = New System.Windows.Forms.GroupBox()
+ Me.TextBox34 = New System.Windows.Forms.TextBox()
+ Me.Button8 = New System.Windows.Forms.Button()
+ Me.Label36 = New System.Windows.Forms.Label()
+ Me.TextBox25 = New System.Windows.Forms.TextBox()
+ Me.Label35 = New System.Windows.Forms.Label()
+ Me.ComboBox3 = New System.Windows.Forms.ComboBox()
+ Me.TextBox11 = New System.Windows.Forms.TextBox()
+ Me.Label12 = New System.Windows.Forms.Label()
+ Me.Label11 = New System.Windows.Forms.Label()
+ Me.CheckBox3 = New System.Windows.Forms.CheckBox()
+ Me.GroupBox4 = New System.Windows.Forms.GroupBox()
+ Me.Label40 = New System.Windows.Forms.Label()
+ Me.TextBox29 = New System.Windows.Forms.TextBox()
+ Me.TextBox18 = New System.Windows.Forms.TextBox()
+ Me.Label26 = New System.Windows.Forms.Label()
+ Me.DateTimePicker1 = New System.Windows.Forms.DateTimePicker()
+ Me.CheckBox8 = New System.Windows.Forms.CheckBox()
+ Me.TextBox9 = New System.Windows.Forms.TextBox()
+ Me.CheckBox7 = New System.Windows.Forms.CheckBox()
+ Me.Label4 = New System.Windows.Forms.Label()
+ Me.TextBox4 = New System.Windows.Forms.TextBox()
+ Me.Label9 = New System.Windows.Forms.Label()
+ Me.Label13 = New System.Windows.Forms.Label()
+ Me.ComboBox1 = New System.Windows.Forms.ComboBox()
+ Me.ComboBox2 = New System.Windows.Forms.ComboBox()
+ Me.Label14 = New System.Windows.Forms.Label()
+ Me.TextBox12 = New System.Windows.Forms.TextBox()
+ Me.Label15 = New System.Windows.Forms.Label()
+ Me.TabPage5 = New System.Windows.Forms.TabPage()
+ Me.GroupBox3 = New System.Windows.Forms.GroupBox()
+ Me.CheckBox6 = New System.Windows.Forms.CheckBox()
+ Me.Button3 = New System.Windows.Forms.Button()
+ Me.Button2 = New System.Windows.Forms.Button()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.Label2 = New System.Windows.Forms.Label()
+ Me.TextBox1 = New System.Windows.Forms.TextBox()
+ Me.TextBox2 = New System.Windows.Forms.TextBox()
+ Me.GroupBox8 = New System.Windows.Forms.GroupBox()
+ Me.RadioButton2 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton1 = New System.Windows.Forms.RadioButton()
+ Me.TextBox21 = New System.Windows.Forms.TextBox()
+ Me.Label34 = New System.Windows.Forms.Label()
+ Me.TextBox20 = New System.Windows.Forms.TextBox()
+ Me.Label33 = New System.Windows.Forms.Label()
+ Me.Label31 = New System.Windows.Forms.Label()
+ Me.CheckBox11 = New System.Windows.Forms.CheckBox()
+ Me.TextBox17 = New System.Windows.Forms.TextBox()
+ Me.Label32 = New System.Windows.Forms.Label()
+ Me.GroupBox7 = New System.Windows.Forms.GroupBox()
+ Me.CheckBox10 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox9 = New System.Windows.Forms.CheckBox()
+ Me.TabControl1 = New System.Windows.Forms.TabControl()
+ Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
+ Me.CheckBox12 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox4 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox18 = New System.Windows.Forms.CheckBox()
+ Me.Panel1 = New System.Windows.Forms.Panel()
+ Me.TabPage4.SuspendLayout()
+ Me.GroupBox6.SuspendLayout()
+ CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.TabPage1.SuspendLayout()
+ Me.GroupBox1.SuspendLayout()
+ Me.Panel2.SuspendLayout()
+ Me.TabPage2.SuspendLayout()
+ Me.GroupBox2.SuspendLayout()
+ Me.TabPage3.SuspendLayout()
+ Me.GroupBox10.SuspendLayout()
+ Me.GroupBox9.SuspendLayout()
+ Me.GroupBox5.SuspendLayout()
+ Me.GroupBox4.SuspendLayout()
+ Me.TabPage5.SuspendLayout()
+ Me.GroupBox3.SuspendLayout()
+ Me.GroupBox8.SuspendLayout()
+ Me.GroupBox7.SuspendLayout()
+ Me.TabControl1.SuspendLayout()
+ Me.Panel1.SuspendLayout()
+ Me.SuspendLayout()
+ '
+ 'Button1
+ '
+ Me.Button1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button1.Location = New System.Drawing.Point(539, 77)
+ Me.Button1.Name = "Button1"
+ Me.Button1.Size = New System.Drawing.Size(192, 39)
+ Me.Button1.TabIndex = 2
+ Me.Button1.Text = "crea catalogo"
+ '
+ 'Label10
+ '
+ Me.Label10.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label10.Location = New System.Drawing.Point(539, 163)
+ Me.Label10.Name = "Label10"
+ Me.Label10.Size = New System.Drawing.Size(192, 72)
+ Me.Label10.TabIndex = 21
+ Me.Label10.Text = "file"
+ '
+ 'Label17
+ '
+ Me.Label17.AutoSize = True
+ Me.Label17.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label17.Location = New System.Drawing.Point(643, 243)
+ Me.Label17.Name = "Label17"
+ Me.Label17.Size = New System.Drawing.Size(19, 20)
+ Me.Label17.TabIndex = 38
+ Me.Label17.Text = "0"
+ '
+ 'Label18
+ '
+ Me.Label18.AutoSize = True
+ Me.Label18.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label18.Location = New System.Drawing.Point(643, 262)
+ Me.Label18.Name = "Label18"
+ Me.Label18.Size = New System.Drawing.Size(19, 20)
+ Me.Label18.TabIndex = 39
+ Me.Label18.Text = "0"
+ '
+ 'Label19
+ '
+ Me.Label19.AutoSize = True
+ Me.Label19.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label19.Location = New System.Drawing.Point(539, 243)
+ Me.Label19.Name = "Label19"
+ Me.Label19.Size = New System.Drawing.Size(80, 16)
+ Me.Label19.TabIndex = 40
+ Me.Label19.Text = "foto totali: "
+ '
+ 'Label20
+ '
+ Me.Label20.AutoSize = True
+ Me.Label20.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label20.Location = New System.Drawing.Point(539, 262)
+ Me.Label20.Name = "Label20"
+ Me.Label20.Size = New System.Drawing.Size(104, 16)
+ Me.Label20.TabIndex = 41
+ Me.Label20.Text = "foto generate:"
+ '
+ 'Button6
+ '
+ Me.Button6.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button6.Location = New System.Drawing.Point(539, 12)
+ Me.Button6.Name = "Button6"
+ Me.Button6.Size = New System.Drawing.Size(192, 32)
+ Me.Button6.TabIndex = 12
+ Me.Button6.Text = "Carica impostazioni"
+ '
+ 'Button5
+ '
+ Me.Button5.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button5.Location = New System.Drawing.Point(539, 43)
+ Me.Button5.Name = "Button5"
+ Me.Button5.Size = New System.Drawing.Size(192, 32)
+ Me.Button5.TabIndex = 43
+ Me.Button5.Text = "Salva impostazioni"
+ '
+ 'Button7
+ '
+ Me.Button7.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button7.Location = New System.Drawing.Point(539, 120)
+ Me.Button7.Name = "Button7"
+ Me.Button7.Size = New System.Drawing.Size(192, 40)
+ Me.Button7.TabIndex = 44
+ Me.Button7.Text = "stop creazione"
+ '
+ 'Label27
+ '
+ Me.Label27.Location = New System.Drawing.Point(591, 346)
+ Me.Label27.Name = "Label27"
+ Me.Label27.Size = New System.Drawing.Size(140, 20)
+ Me.Label27.TabIndex = 46
+ Me.Label27.Text = "Versione 2.0 BETA 1"
+ Me.Label27.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'TextBox13
+ '
+ Me.TextBox13.Location = New System.Drawing.Point(224, 48)
+ Me.TextBox13.Name = "TextBox13"
+ Me.TextBox13.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox13.TabIndex = 20
+ Me.TextBox13.Text = "TextBox13"
+ '
+ 'Label16
+ '
+ Me.Label16.ForeColor = System.Drawing.Color.Black
+ Me.Label16.Location = New System.Drawing.Point(168, 48)
+ Me.Label16.Name = "Label16"
+ Me.Label16.Size = New System.Drawing.Size(48, 16)
+ Me.Label16.TabIndex = 19
+ Me.Label16.Text = "Suffisso"
+ Me.Label16.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'Label7
+ '
+ Me.Label7.AutoSize = True
+ Me.Label7.ForeColor = System.Drawing.Color.Black
+ Me.Label7.Location = New System.Drawing.Point(24, 24)
+ Me.Label7.Name = "Label7"
+ Me.Label7.Size = New System.Drawing.Size(41, 13)
+ Me.Label7.TabIndex = 16
+ Me.Label7.Text = "Altezza"
+ '
+ 'TextBox7
+ '
+ Me.TextBox7.Location = New System.Drawing.Point(72, 24)
+ Me.TextBox7.Name = "TextBox7"
+ Me.TextBox7.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox7.TabIndex = 14
+ Me.TextBox7.Text = "TextBox7"
+ '
+ 'Label8
+ '
+ Me.Label8.AutoSize = True
+ Me.Label8.ForeColor = System.Drawing.Color.Black
+ Me.Label8.Location = New System.Drawing.Point(8, 48)
+ Me.Label8.Name = "Label8"
+ Me.Label8.Size = New System.Drawing.Size(56, 13)
+ Me.Label8.TabIndex = 17
+ Me.Label8.Text = "Larghezza"
+ '
+ 'TextBox8
+ '
+ Me.TextBox8.Location = New System.Drawing.Point(72, 48)
+ Me.TextBox8.Name = "TextBox8"
+ Me.TextBox8.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox8.TabIndex = 15
+ Me.TextBox8.Text = "TextBox8"
+ '
+ 'CheckBox2
+ '
+ Me.CheckBox2.Checked = True
+ Me.CheckBox2.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.CheckBox2.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox2.Location = New System.Drawing.Point(168, 16)
+ Me.CheckBox2.Name = "CheckBox2"
+ Me.CheckBox2.Size = New System.Drawing.Size(120, 32)
+ Me.CheckBox2.TabIndex = 18
+ Me.CheckBox2.Text = "Mantieni dimensioni originali"
+ '
+ 'Label43
+ '
+ Me.Label43.AutoSize = True
+ Me.Label43.Location = New System.Drawing.Point(651, 303)
+ Me.Label43.Name = "Label43"
+ Me.Label43.Size = New System.Drawing.Size(25, 13)
+ Me.Label43.TabIndex = 49
+ Me.Label43.Text = "000"
+ '
+ 'CheckBox22
+ '
+ Me.CheckBox22.AutoSize = True
+ Me.CheckBox22.Location = New System.Drawing.Point(539, 326)
+ Me.CheckBox22.Name = "CheckBox22"
+ Me.CheckBox22.Size = New System.Drawing.Size(104, 17)
+ Me.CheckBox22.TabIndex = 50
+ Me.CheckBox22.Text = "Arresta il sistema"
+ Me.CheckBox22.UseVisualStyleBackColor = True
+ '
+ 'Label44
+ '
+ Me.Label44.AutoSize = True
+ Me.Label44.Location = New System.Drawing.Point(539, 303)
+ Me.Label44.Name = "Label44"
+ Me.Label44.Size = New System.Drawing.Size(106, 13)
+ Me.Label44.TabIndex = 51
+ Me.Label44.Text = "Tempo elaborazione:"
+ '
+ 'TabPage4
+ '
+ Me.TabPage4.Controls.Add(Me.GroupBox6)
+ Me.TabPage4.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage4.Name = "TabPage4"
+ Me.TabPage4.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage4.Size = New System.Drawing.Size(513, 326)
+ Me.TabPage4.TabIndex = 3
+ Me.TabPage4.Text = "Logo"
+ Me.TabPage4.UseVisualStyleBackColor = True
+ '
+ 'GroupBox6
+ '
+ Me.GroupBox6.Controls.Add(Me.PictureBox2)
+ Me.GroupBox6.Controls.Add(Me.PictureBox1)
+ Me.GroupBox6.Controls.Add(Me.ComboBox5)
+ Me.GroupBox6.Controls.Add(Me.ComboBox4)
+ Me.GroupBox6.Controls.Add(Me.TextBox19)
+ Me.GroupBox6.Controls.Add(Me.Label28)
+ Me.GroupBox6.Controls.Add(Me.CheckBox5)
+ Me.GroupBox6.Controls.Add(Me.TextBox15)
+ Me.GroupBox6.Controls.Add(Me.TextBox14)
+ Me.GroupBox6.Controls.Add(Me.Label25)
+ Me.GroupBox6.Controls.Add(Me.TextBox16)
+ Me.GroupBox6.Controls.Add(Me.Label24)
+ Me.GroupBox6.Controls.Add(Me.Label22)
+ Me.GroupBox6.Controls.Add(Me.Label23)
+ Me.GroupBox6.Controls.Add(Me.Button4)
+ Me.GroupBox6.Controls.Add(Me.TextBox10)
+ Me.GroupBox6.Controls.Add(Me.Label29)
+ Me.GroupBox6.Controls.Add(Me.Label30)
+ Me.GroupBox6.Controls.Add(Me.PictureBox3)
+ Me.GroupBox6.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox6.Location = New System.Drawing.Point(6, 6)
+ Me.GroupBox6.Name = "GroupBox6"
+ Me.GroupBox6.Size = New System.Drawing.Size(496, 224)
+ Me.GroupBox6.TabIndex = 42
+ Me.GroupBox6.TabStop = False
+ Me.GroupBox6.Text = "Logo"
+ '
+ 'PictureBox2
+ '
+ Me.PictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+ Me.PictureBox2.Location = New System.Drawing.Point(144, 192)
+ Me.PictureBox2.Name = "PictureBox2"
+ Me.PictureBox2.Size = New System.Drawing.Size(24, 24)
+ Me.PictureBox2.TabIndex = 44
+ Me.PictureBox2.TabStop = False
+ Me.PictureBox2.Visible = False
+ '
+ 'PictureBox1
+ '
+ Me.PictureBox1.Cursor = System.Windows.Forms.Cursors.Cross
+ Me.PictureBox1.Location = New System.Drawing.Point(256, 56)
+ Me.PictureBox1.Name = "PictureBox1"
+ Me.PictureBox1.Size = New System.Drawing.Size(224, 160)
+ Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
+ Me.PictureBox1.TabIndex = 43
+ Me.PictureBox1.TabStop = False
+ '
+ 'ComboBox5
+ '
+ Me.ComboBox5.Location = New System.Drawing.Point(144, 168)
+ Me.ComboBox5.Name = "ComboBox5"
+ Me.ComboBox5.Size = New System.Drawing.Size(96, 21)
+ Me.ComboBox5.TabIndex = 42
+ Me.ComboBox5.Text = "ComboBox5"
+ '
+ 'ComboBox4
+ '
+ Me.ComboBox4.Location = New System.Drawing.Point(144, 144)
+ Me.ComboBox4.Name = "ComboBox4"
+ Me.ComboBox4.Size = New System.Drawing.Size(96, 21)
+ Me.ComboBox4.TabIndex = 41
+ Me.ComboBox4.Text = "ComboBox4"
+ '
+ 'TextBox19
+ '
+ Me.TextBox19.Location = New System.Drawing.Point(144, 96)
+ Me.TextBox19.Name = "TextBox19"
+ Me.TextBox19.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox19.TabIndex = 40
+ Me.TextBox19.Text = "TextBox19"
+ '
+ 'Label28
+ '
+ Me.Label28.ForeColor = System.Drawing.Color.Black
+ Me.Label28.Location = New System.Drawing.Point(17, 97)
+ Me.Label28.Name = "Label28"
+ Me.Label28.Size = New System.Drawing.Size(120, 16)
+ Me.Label28.TabIndex = 39
+ Me.Label28.Text = "Trasparenza (0-100%)"
+ Me.Label28.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'CheckBox5
+ '
+ Me.CheckBox5.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox5.Location = New System.Drawing.Point(0, 26)
+ Me.CheckBox5.Name = "CheckBox5"
+ Me.CheckBox5.Size = New System.Drawing.Size(72, 20)
+ Me.CheckBox5.TabIndex = 38
+ Me.CheckBox5.Text = "Aggiungi"
+ '
+ 'TextBox15
+ '
+ Me.TextBox15.Location = New System.Drawing.Point(144, 72)
+ Me.TextBox15.Name = "TextBox15"
+ Me.TextBox15.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox15.TabIndex = 19
+ Me.TextBox15.Text = "TextBox15"
+ '
+ 'TextBox14
+ '
+ Me.TextBox14.Location = New System.Drawing.Point(144, 48)
+ Me.TextBox14.Name = "TextBox14"
+ Me.TextBox14.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox14.TabIndex = 18
+ Me.TextBox14.Text = "TextBox14"
+ '
+ 'Label25
+ '
+ Me.Label25.AutoSize = True
+ Me.Label25.ForeColor = System.Drawing.Color.Black
+ Me.Label25.Location = New System.Drawing.Point(17, 168)
+ Me.Label25.Name = "Label25"
+ Me.Label25.Size = New System.Drawing.Size(95, 13)
+ Me.Label25.TabIndex = 36
+ Me.Label25.Text = "Posizione verticale"
+ Me.Label25.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'TextBox16
+ '
+ Me.TextBox16.Location = New System.Drawing.Point(144, 120)
+ Me.TextBox16.Name = "TextBox16"
+ Me.TextBox16.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox16.TabIndex = 35
+ Me.TextBox16.Text = "TextBox16"
+ '
+ 'Label24
+ '
+ Me.Label24.AutoSize = True
+ Me.Label24.ForeColor = System.Drawing.Color.Black
+ Me.Label24.Location = New System.Drawing.Point(19, 123)
+ Me.Label24.Name = "Label24"
+ Me.Label24.Size = New System.Drawing.Size(88, 13)
+ Me.Label24.TabIndex = 34
+ Me.Label24.Text = "Margine (pixel/%)"
+ Me.Label24.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label22
+ '
+ Me.Label22.AutoSize = True
+ Me.Label22.ForeColor = System.Drawing.Color.Black
+ Me.Label22.Location = New System.Drawing.Point(19, 51)
+ Me.Label22.Name = "Label22"
+ Me.Label22.Size = New System.Drawing.Size(41, 13)
+ Me.Label22.TabIndex = 20
+ Me.Label22.Text = "Altezza"
+ Me.Label22.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label23
+ '
+ Me.Label23.AutoSize = True
+ Me.Label23.ForeColor = System.Drawing.Color.Black
+ Me.Label23.Location = New System.Drawing.Point(19, 75)
+ Me.Label23.Name = "Label23"
+ Me.Label23.Size = New System.Drawing.Size(56, 13)
+ Me.Label23.TabIndex = 21
+ Me.Label23.Text = "Larghezza"
+ Me.Label23.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Button4
+ '
+ Me.Button4.Location = New System.Drawing.Point(464, 24)
+ Me.Button4.Name = "Button4"
+ Me.Button4.Size = New System.Drawing.Size(24, 20)
+ Me.Button4.TabIndex = 8
+ Me.Button4.Text = "..."
+ '
+ 'TextBox10
+ '
+ Me.TextBox10.Location = New System.Drawing.Point(144, 24)
+ Me.TextBox10.Name = "TextBox10"
+ Me.TextBox10.Size = New System.Drawing.Size(312, 20)
+ Me.TextBox10.TabIndex = 6
+ Me.TextBox10.Text = "TextBox10"
+ '
+ 'Label29
+ '
+ Me.Label29.AutoSize = True
+ Me.Label29.ForeColor = System.Drawing.Color.Black
+ Me.Label29.Location = New System.Drawing.Point(17, 147)
+ Me.Label29.Name = "Label29"
+ Me.Label29.Size = New System.Drawing.Size(105, 13)
+ Me.Label29.TabIndex = 36
+ Me.Label29.Text = "Posizione orizzontale"
+ Me.Label29.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label30
+ '
+ Me.Label30.AutoSize = True
+ Me.Label30.ForeColor = System.Drawing.Color.Black
+ Me.Label30.Location = New System.Drawing.Point(19, 203)
+ Me.Label30.Name = "Label30"
+ Me.Label30.Size = New System.Drawing.Size(93, 13)
+ Me.Label30.TabIndex = 36
+ Me.Label30.Text = "Colore trasparente"
+ Me.Label30.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ Me.Label30.Visible = False
+ '
+ 'PictureBox3
+ '
+ Me.PictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+ Me.PictureBox3.Location = New System.Drawing.Point(216, 192)
+ Me.PictureBox3.Name = "PictureBox3"
+ Me.PictureBox3.Size = New System.Drawing.Size(24, 24)
+ Me.PictureBox3.TabIndex = 44
+ Me.PictureBox3.TabStop = False
+ Me.PictureBox3.Visible = False
+ '
+ 'TabPage1
+ '
+ Me.TabPage1.Controls.Add(Me.Panel1)
+ Me.TabPage1.Controls.Add(Me.GroupBox1)
+ Me.TabPage1.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage1.Name = "TabPage1"
+ Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage1.Size = New System.Drawing.Size(513, 326)
+ Me.TabPage1.TabIndex = 0
+ Me.TabPage1.Text = "Miniature"
+ Me.TabPage1.UseVisualStyleBackColor = True
+ '
+ 'GroupBox1
+ '
+ Me.GroupBox1.Controls.Add(Me.Label46)
+ Me.GroupBox1.Controls.Add(Me.TextBox33)
+ Me.GroupBox1.Controls.Add(Me.Panel2)
+ Me.GroupBox1.Controls.Add(Me.Label5)
+ Me.GroupBox1.Controls.Add(Me.TextBox5)
+ Me.GroupBox1.Controls.Add(Me.Label6)
+ Me.GroupBox1.Controls.Add(Me.TextBox6)
+ Me.GroupBox1.Controls.Add(Me.Label3)
+ Me.GroupBox1.Controls.Add(Me.TextBox3)
+ Me.GroupBox1.Controls.Add(Me.CheckBox1)
+ Me.GroupBox1.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox1.Location = New System.Drawing.Point(6, 5)
+ Me.GroupBox1.Name = "GroupBox1"
+ Me.GroupBox1.Size = New System.Drawing.Size(350, 210)
+ Me.GroupBox1.TabIndex = 25
+ Me.GroupBox1.TabStop = False
+ Me.GroupBox1.Text = "Miniature"
+ '
+ 'Label46
+ '
+ Me.Label46.AutoSize = True
+ Me.Label46.Location = New System.Drawing.Point(198, 43)
+ Me.Label46.Name = "Label46"
+ Me.Label46.Size = New System.Drawing.Size(40, 13)
+ Me.Label46.TabIndex = 21
+ Me.Label46.Text = "Qualità"
+ '
+ 'TextBox33
+ '
+ Me.TextBox33.Location = New System.Drawing.Point(244, 40)
+ Me.TextBox33.Name = "TextBox33"
+ Me.TextBox33.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox33.TabIndex = 20
+ '
+ 'Panel2
+ '
+ Me.Panel2.Controls.Add(Me.RadioButton3)
+ Me.Panel2.Controls.Add(Me.RadioButton7)
+ Me.Panel2.Controls.Add(Me.RadioButton4)
+ Me.Panel2.Controls.Add(Me.RadioButton6)
+ Me.Panel2.Controls.Add(Me.RadioButton5)
+ Me.Panel2.Location = New System.Drawing.Point(56, 114)
+ Me.Panel2.Name = "Panel2"
+ Me.Panel2.Size = New System.Drawing.Size(235, 90)
+ Me.Panel2.TabIndex = 19
+ '
+ 'RadioButton3
+ '
+ Me.RadioButton3.AutoSize = True
+ Me.RadioButton3.Location = New System.Drawing.Point(15, 16)
+ Me.RadioButton3.Name = "RadioButton3"
+ Me.RadioButton3.Size = New System.Drawing.Size(99, 17)
+ Me.RadioButton3.TabIndex = 14
+ Me.RadioButton3.TabStop = True
+ Me.RadioButton3.Text = "Aggiungi Scritta"
+ Me.RadioButton3.UseVisualStyleBackColor = True
+ '
+ 'RadioButton7
+ '
+ Me.RadioButton7.AutoSize = True
+ Me.RadioButton7.Location = New System.Drawing.Point(129, 40)
+ Me.RadioButton7.Name = "RadioButton7"
+ Me.RadioButton7.Size = New System.Drawing.Size(95, 17)
+ Me.RadioButton7.TabIndex = 18
+ Me.RadioButton7.TabStop = True
+ Me.RadioButton7.Text = "numero+tempo"
+ Me.RadioButton7.UseVisualStyleBackColor = True
+ '
+ 'RadioButton4
+ '
+ Me.RadioButton4.AutoSize = True
+ Me.RadioButton4.Location = New System.Drawing.Point(15, 40)
+ Me.RadioButton4.Name = "RadioButton4"
+ Me.RadioButton4.Size = New System.Drawing.Size(95, 17)
+ Me.RadioButton4.TabIndex = 15
+ Me.RadioButton4.TabStop = True
+ Me.RadioButton4.Text = "Aggiungi orario"
+ Me.RadioButton4.UseVisualStyleBackColor = True
+ '
+ 'RadioButton6
+ '
+ Me.RadioButton6.AutoSize = True
+ Me.RadioButton6.Location = New System.Drawing.Point(129, 16)
+ Me.RadioButton6.Name = "RadioButton6"
+ Me.RadioButton6.Size = New System.Drawing.Size(83, 17)
+ Me.RadioButton6.TabIndex = 17
+ Me.RadioButton6.TabStop = True
+ Me.RadioButton6.Text = "Numero foto"
+ Me.RadioButton6.UseVisualStyleBackColor = True
+ '
+ 'RadioButton5
+ '
+ Me.RadioButton5.AutoSize = True
+ Me.RadioButton5.Location = New System.Drawing.Point(15, 65)
+ Me.RadioButton5.Name = "RadioButton5"
+ Me.RadioButton5.Size = New System.Drawing.Size(84, 17)
+ Me.RadioButton5.TabIndex = 16
+ Me.RadioButton5.TabStop = True
+ Me.RadioButton5.Text = "Tempo Gara"
+ Me.RadioButton5.UseVisualStyleBackColor = True
+ '
+ 'Label5
+ '
+ Me.Label5.AutoSize = True
+ Me.Label5.ForeColor = System.Drawing.Color.Black
+ Me.Label5.Location = New System.Drawing.Point(24, 88)
+ Me.Label5.Name = "Label5"
+ Me.Label5.Size = New System.Drawing.Size(41, 13)
+ Me.Label5.TabIndex = 12
+ Me.Label5.Text = "Altezza"
+ '
+ 'TextBox5
+ '
+ Me.TextBox5.Location = New System.Drawing.Point(72, 64)
+ Me.TextBox5.Name = "TextBox5"
+ Me.TextBox5.Size = New System.Drawing.Size(88, 20)
+ Me.TextBox5.TabIndex = 10
+ Me.TextBox5.Text = "TextBox5"
+ '
+ 'Label6
+ '
+ Me.Label6.AutoSize = True
+ Me.Label6.ForeColor = System.Drawing.Color.Black
+ Me.Label6.Location = New System.Drawing.Point(8, 64)
+ Me.Label6.Name = "Label6"
+ Me.Label6.Size = New System.Drawing.Size(56, 13)
+ Me.Label6.TabIndex = 13
+ Me.Label6.Text = "Larghezza"
+ '
+ 'TextBox6
+ '
+ Me.TextBox6.Location = New System.Drawing.Point(72, 88)
+ Me.TextBox6.Name = "TextBox6"
+ Me.TextBox6.Size = New System.Drawing.Size(88, 20)
+ Me.TextBox6.TabIndex = 11
+ Me.TextBox6.Text = "TextBox6"
+ '
+ 'Label3
+ '
+ Me.Label3.AutoSize = True
+ Me.Label3.ForeColor = System.Drawing.Color.Black
+ Me.Label3.Location = New System.Drawing.Point(24, 40)
+ Me.Label3.Name = "Label3"
+ Me.Label3.Size = New System.Drawing.Size(44, 13)
+ Me.Label3.TabIndex = 7
+ Me.Label3.Text = "Suffisso"
+ '
+ 'TextBox3
+ '
+ Me.TextBox3.Location = New System.Drawing.Point(72, 40)
+ Me.TextBox3.Name = "TextBox3"
+ Me.TextBox3.Size = New System.Drawing.Size(88, 20)
+ Me.TextBox3.TabIndex = 6
+ Me.TextBox3.Text = "TextBox3"
+ '
+ 'CheckBox1
+ '
+ Me.CheckBox1.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox1.Location = New System.Drawing.Point(72, 16)
+ Me.CheckBox1.Name = "CheckBox1"
+ Me.CheckBox1.Size = New System.Drawing.Size(104, 24)
+ Me.CheckBox1.TabIndex = 5
+ Me.CheckBox1.Text = "Crea miniature"
+ '
+ 'TabPage2
+ '
+ Me.TabPage2.Controls.Add(Me.GroupBox2)
+ Me.TabPage2.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage2.Name = "TabPage2"
+ Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage2.Size = New System.Drawing.Size(513, 326)
+ Me.TabPage2.TabIndex = 5
+ Me.TabPage2.Text = "Foto"
+ Me.TabPage2.UseVisualStyleBackColor = True
+ '
+ 'GroupBox2
+ '
+ Me.GroupBox2.Controls.Add(Me.Label45)
+ Me.GroupBox2.Controls.Add(Me.TextBox32)
+ Me.GroupBox2.Controls.Add(Me.TextBox26)
+ Me.GroupBox2.Controls.Add(Me.Label37)
+ Me.GroupBox2.Controls.Add(Me.Label38)
+ Me.GroupBox2.Controls.Add(Me.TextBox27)
+ Me.GroupBox2.Controls.Add(Me.Label39)
+ Me.GroupBox2.Controls.Add(Me.TextBox28)
+ Me.GroupBox2.Controls.Add(Me.CheckBox15)
+ Me.GroupBox2.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox2.Location = New System.Drawing.Point(3, 6)
+ Me.GroupBox2.Name = "GroupBox2"
+ Me.GroupBox2.Size = New System.Drawing.Size(304, 156)
+ Me.GroupBox2.TabIndex = 36
+ Me.GroupBox2.TabStop = False
+ Me.GroupBox2.Text = "Foto grande"
+ '
+ 'Label45
+ '
+ Me.Label45.AutoSize = True
+ Me.Label45.Location = New System.Drawing.Point(11, 86)
+ Me.Label45.Name = "Label45"
+ Me.Label45.Size = New System.Drawing.Size(40, 13)
+ Me.Label45.TabIndex = 22
+ Me.Label45.Text = "Qualità"
+ '
+ 'TextBox32
+ '
+ Me.TextBox32.Location = New System.Drawing.Point(72, 80)
+ Me.TextBox32.Name = "TextBox32"
+ Me.TextBox32.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox32.TabIndex = 21
+ Me.TextBox32.Text = "100"
+ '
+ 'TextBox26
+ '
+ Me.TextBox26.Location = New System.Drawing.Point(224, 48)
+ Me.TextBox26.Name = "TextBox26"
+ Me.TextBox26.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox26.TabIndex = 20
+ Me.TextBox26.Text = "TextBox26"
+ '
+ 'Label37
+ '
+ Me.Label37.ForeColor = System.Drawing.Color.Black
+ Me.Label37.Location = New System.Drawing.Point(168, 48)
+ Me.Label37.Name = "Label37"
+ Me.Label37.Size = New System.Drawing.Size(48, 16)
+ Me.Label37.TabIndex = 19
+ Me.Label37.Text = "Suffisso"
+ Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'Label38
+ '
+ Me.Label38.AutoSize = True
+ Me.Label38.ForeColor = System.Drawing.Color.Black
+ Me.Label38.Location = New System.Drawing.Point(24, 24)
+ Me.Label38.Name = "Label38"
+ Me.Label38.Size = New System.Drawing.Size(41, 13)
+ Me.Label38.TabIndex = 16
+ Me.Label38.Text = "Altezza"
+ '
+ 'TextBox27
+ '
+ Me.TextBox27.Location = New System.Drawing.Point(72, 24)
+ Me.TextBox27.Name = "TextBox27"
+ Me.TextBox27.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox27.TabIndex = 14
+ Me.TextBox27.Text = "TextBox27"
+ '
+ 'Label39
+ '
+ Me.Label39.AutoSize = True
+ Me.Label39.ForeColor = System.Drawing.Color.Black
+ Me.Label39.Location = New System.Drawing.Point(8, 48)
+ Me.Label39.Name = "Label39"
+ Me.Label39.Size = New System.Drawing.Size(56, 13)
+ Me.Label39.TabIndex = 17
+ Me.Label39.Text = "Larghezza"
+ '
+ 'TextBox28
+ '
+ Me.TextBox28.Location = New System.Drawing.Point(72, 48)
+ Me.TextBox28.Name = "TextBox28"
+ Me.TextBox28.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox28.TabIndex = 15
+ Me.TextBox28.Text = "TextBox28"
+ '
+ 'CheckBox15
+ '
+ Me.CheckBox15.Checked = True
+ Me.CheckBox15.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.CheckBox15.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox15.Location = New System.Drawing.Point(168, 16)
+ Me.CheckBox15.Name = "CheckBox15"
+ Me.CheckBox15.Size = New System.Drawing.Size(120, 32)
+ Me.CheckBox15.TabIndex = 18
+ Me.CheckBox15.Text = "Mantieni dimensioni originali"
+ '
+ 'TabPage3
+ '
+ Me.TabPage3.Controls.Add(Me.GroupBox10)
+ Me.TabPage3.Controls.Add(Me.GroupBox9)
+ Me.TabPage3.Controls.Add(Me.GroupBox5)
+ Me.TabPage3.Controls.Add(Me.GroupBox4)
+ Me.TabPage3.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage3.Name = "TabPage3"
+ Me.TabPage3.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage3.Size = New System.Drawing.Size(513, 326)
+ Me.TabPage3.TabIndex = 2
+ Me.TabPage3.Text = "Testo"
+ Me.TabPage3.UseVisualStyleBackColor = True
+ '
+ 'GroupBox10
+ '
+ Me.GroupBox10.Controls.Add(Me.Label42)
+ Me.GroupBox10.Controls.Add(Me.Label41)
+ Me.GroupBox10.Controls.Add(Me.TextBox31)
+ Me.GroupBox10.Controls.Add(Me.TextBox30)
+ Me.GroupBox10.Location = New System.Drawing.Point(316, 53)
+ Me.GroupBox10.Name = "GroupBox10"
+ Me.GroupBox10.Size = New System.Drawing.Size(186, 73)
+ Me.GroupBox10.TabIndex = 39
+ Me.GroupBox10.TabStop = False
+ Me.GroupBox10.Text = "Testo foto verticali"
+ '
+ 'Label42
+ '
+ Me.Label42.AutoSize = True
+ Me.Label42.Location = New System.Drawing.Point(7, 46)
+ Me.Label42.Name = "Label42"
+ Me.Label42.Size = New System.Drawing.Size(45, 13)
+ Me.Label42.TabIndex = 3
+ Me.Label42.Text = "Margine"
+ '
+ 'Label41
+ '
+ Me.Label41.AutoSize = True
+ Me.Label41.Location = New System.Drawing.Point(7, 25)
+ Me.Label41.Name = "Label41"
+ Me.Label41.Size = New System.Drawing.Size(108, 13)
+ Me.Label41.TabIndex = 2
+ Me.Label41.Text = "Dimensione Carattere"
+ '
+ 'TextBox31
+ '
+ Me.TextBox31.Location = New System.Drawing.Point(131, 46)
+ Me.TextBox31.Name = "TextBox31"
+ Me.TextBox31.Size = New System.Drawing.Size(39, 20)
+ Me.TextBox31.TabIndex = 1
+ '
+ 'TextBox30
+ '
+ Me.TextBox30.Location = New System.Drawing.Point(131, 22)
+ Me.TextBox30.Name = "TextBox30"
+ Me.TextBox30.Size = New System.Drawing.Size(39, 20)
+ Me.TextBox30.TabIndex = 0
+ '
+ 'GroupBox9
+ '
+ Me.GroupBox9.Controls.Add(Me.CheckBox17)
+ Me.GroupBox9.Controls.Add(Me.CheckBox16)
+ Me.GroupBox9.Location = New System.Drawing.Point(316, 6)
+ Me.GroupBox9.Name = "GroupBox9"
+ Me.GroupBox9.Size = New System.Drawing.Size(186, 45)
+ Me.GroupBox9.TabIndex = 38
+ Me.GroupBox9.TabStop = False
+ Me.GroupBox9.Text = "Slide show"
+ '
+ 'CheckBox17
+ '
+ Me.CheckBox17.AutoSize = True
+ Me.CheckBox17.Location = New System.Drawing.Point(96, 18)
+ Me.CheckBox17.Name = "CheckBox17"
+ Me.CheckBox17.Size = New System.Drawing.Size(84, 17)
+ Me.CheckBox17.TabIndex = 1
+ Me.CheckBox17.Text = "Numero foto"
+ Me.CheckBox17.UseVisualStyleBackColor = True
+ '
+ 'CheckBox16
+ '
+ Me.CheckBox16.AutoSize = True
+ Me.CheckBox16.Location = New System.Drawing.Point(6, 19)
+ Me.CheckBox16.Name = "CheckBox16"
+ Me.CheckBox16.Size = New System.Drawing.Size(49, 17)
+ Me.CheckBox16.TabIndex = 0
+ Me.CheckBox16.Text = "Data"
+ Me.CheckBox16.UseVisualStyleBackColor = True
+ '
+ 'GroupBox5
+ '
+ Me.GroupBox5.Controls.Add(Me.TextBox34)
+ Me.GroupBox5.Controls.Add(Me.Button8)
+ Me.GroupBox5.Controls.Add(Me.Label36)
+ Me.GroupBox5.Controls.Add(Me.TextBox25)
+ Me.GroupBox5.Controls.Add(Me.Label35)
+ Me.GroupBox5.Controls.Add(Me.ComboBox3)
+ Me.GroupBox5.Controls.Add(Me.TextBox11)
+ Me.GroupBox5.Controls.Add(Me.Label12)
+ Me.GroupBox5.Controls.Add(Me.Label11)
+ Me.GroupBox5.Controls.Add(Me.CheckBox3)
+ Me.GroupBox5.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox5.Location = New System.Drawing.Point(6, 6)
+ Me.GroupBox5.Name = "GroupBox5"
+ Me.GroupBox5.Size = New System.Drawing.Size(304, 120)
+ Me.GroupBox5.TabIndex = 37
+ Me.GroupBox5.TabStop = False
+ Me.GroupBox5.Text = "Carattere"
+ '
+ 'TextBox34
+ '
+ Me.TextBox34.Location = New System.Drawing.Point(160, 91)
+ Me.TextBox34.Name = "TextBox34"
+ Me.TextBox34.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox34.TabIndex = 36
+ Me.TextBox34.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
+ '
+ 'Button8
+ '
+ Me.Button8.ForeColor = System.Drawing.Color.Black
+ Me.Button8.Location = New System.Drawing.Point(222, 89)
+ Me.Button8.Name = "Button8"
+ Me.Button8.Size = New System.Drawing.Size(74, 24)
+ Me.Button8.TabIndex = 35
+ Me.Button8.Text = "Scegli..."
+ '
+ 'Label36
+ '
+ Me.Label36.ForeColor = System.Drawing.Color.Black
+ Me.Label36.Location = New System.Drawing.Point(8, 60)
+ Me.Label36.Name = "Label36"
+ Me.Label36.Size = New System.Drawing.Size(120, 19)
+ Me.Label36.TabIndex = 34
+ Me.Label36.Text = "Dimensione miniatura"
+ Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'TextBox25
+ '
+ Me.TextBox25.Location = New System.Drawing.Point(160, 59)
+ Me.TextBox25.Name = "TextBox25"
+ Me.TextBox25.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox25.TabIndex = 33
+ Me.TextBox25.Text = "TextBox25"
+ '
+ 'Label35
+ '
+ Me.Label35.ForeColor = System.Drawing.Color.Black
+ Me.Label35.Location = New System.Drawing.Point(8, 93)
+ Me.Label35.Name = "Label35"
+ Me.Label35.Size = New System.Drawing.Size(72, 16)
+ Me.Label35.TabIndex = 32
+ Me.Label35.Text = "Colore RGB"
+ Me.Label35.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'ComboBox3
+ '
+ Me.ComboBox3.Location = New System.Drawing.Point(96, 8)
+ Me.ComboBox3.Name = "ComboBox3"
+ Me.ComboBox3.Size = New System.Drawing.Size(120, 21)
+ Me.ComboBox3.TabIndex = 28
+ Me.ComboBox3.Text = "ComboBox3"
+ '
+ 'TextBox11
+ '
+ Me.TextBox11.Location = New System.Drawing.Point(160, 35)
+ Me.TextBox11.Name = "TextBox11"
+ Me.TextBox11.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox11.TabIndex = 27
+ Me.TextBox11.Text = "TextBox11"
+ '
+ 'Label12
+ '
+ Me.Label12.AutoSize = True
+ Me.Label12.ForeColor = System.Drawing.Color.Black
+ Me.Label12.Location = New System.Drawing.Point(8, 38)
+ Me.Label12.Name = "Label12"
+ Me.Label12.Size = New System.Drawing.Size(62, 13)
+ Me.Label12.TabIndex = 26
+ Me.Label12.Text = "Dimensione"
+ Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label11
+ '
+ Me.Label11.AutoSize = True
+ Me.Label11.ForeColor = System.Drawing.Color.Black
+ Me.Label11.Location = New System.Drawing.Point(56, 8)
+ Me.Label11.Name = "Label11"
+ Me.Label11.Size = New System.Drawing.Size(28, 13)
+ Me.Label11.TabIndex = 22
+ Me.Label11.Text = "Font"
+ '
+ 'CheckBox3
+ '
+ Me.CheckBox3.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox3.Location = New System.Drawing.Point(224, 8)
+ Me.CheckBox3.Name = "CheckBox3"
+ Me.CheckBox3.Size = New System.Drawing.Size(72, 24)
+ Me.CheckBox3.TabIndex = 24
+ Me.CheckBox3.Text = "Grassetto"
+ '
+ 'GroupBox4
+ '
+ Me.GroupBox4.Controls.Add(Me.Label40)
+ Me.GroupBox4.Controls.Add(Me.TextBox29)
+ Me.GroupBox4.Controls.Add(Me.TextBox18)
+ Me.GroupBox4.Controls.Add(Me.Label26)
+ Me.GroupBox4.Controls.Add(Me.DateTimePicker1)
+ Me.GroupBox4.Controls.Add(Me.CheckBox8)
+ Me.GroupBox4.Controls.Add(Me.TextBox9)
+ Me.GroupBox4.Controls.Add(Me.CheckBox7)
+ Me.GroupBox4.Controls.Add(Me.Label4)
+ Me.GroupBox4.Controls.Add(Me.TextBox4)
+ Me.GroupBox4.Controls.Add(Me.Label9)
+ Me.GroupBox4.Controls.Add(Me.Label13)
+ Me.GroupBox4.Controls.Add(Me.ComboBox1)
+ Me.GroupBox4.Controls.Add(Me.ComboBox2)
+ Me.GroupBox4.Controls.Add(Me.Label14)
+ Me.GroupBox4.Controls.Add(Me.TextBox12)
+ Me.GroupBox4.Controls.Add(Me.Label15)
+ Me.GroupBox4.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox4.Location = New System.Drawing.Point(6, 132)
+ Me.GroupBox4.Name = "GroupBox4"
+ Me.GroupBox4.Size = New System.Drawing.Size(496, 186)
+ Me.GroupBox4.TabIndex = 36
+ Me.GroupBox4.TabStop = False
+ Me.GroupBox4.Text = "Testo da applicare"
+ '
+ 'Label40
+ '
+ Me.Label40.AutoSize = True
+ Me.Label40.Location = New System.Drawing.Point(8, 52)
+ Me.Label40.Name = "Label40"
+ Me.Label40.Size = New System.Drawing.Size(48, 13)
+ Me.Label40.TabIndex = 40
+ Me.Label40.Text = "Verticale"
+ '
+ 'TextBox29
+ '
+ Me.TextBox29.Location = New System.Drawing.Point(72, 49)
+ Me.TextBox29.Multiline = True
+ Me.TextBox29.Name = "TextBox29"
+ Me.TextBox29.Size = New System.Drawing.Size(408, 44)
+ Me.TextBox29.TabIndex = 39
+ '
+ 'TextBox18
+ '
+ Me.TextBox18.Location = New System.Drawing.Point(232, 156)
+ Me.TextBox18.Name = "TextBox18"
+ Me.TextBox18.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox18.TabIndex = 38
+ '
+ 'Label26
+ '
+ Me.Label26.AutoSize = True
+ Me.Label26.ForeColor = System.Drawing.Color.Black
+ Me.Label26.Location = New System.Drawing.Point(344, 156)
+ Me.Label26.Name = "Label26"
+ Me.Label26.Size = New System.Drawing.Size(48, 13)
+ Me.Label26.TabIndex = 37
+ Me.Label26.Text = "partenza"
+ '
+ 'DateTimePicker1
+ '
+ Me.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Time
+ Me.DateTimePicker1.Location = New System.Drawing.Point(392, 156)
+ Me.DateTimePicker1.Name = "DateTimePicker1"
+ Me.DateTimePicker1.Size = New System.Drawing.Size(88, 20)
+ Me.DateTimePicker1.TabIndex = 36
+ '
+ 'CheckBox8
+ '
+ Me.CheckBox8.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox8.Location = New System.Drawing.Point(72, 156)
+ Me.CheckBox8.Name = "CheckBox8"
+ Me.CheckBox8.Size = New System.Drawing.Size(56, 16)
+ Me.CheckBox8.TabIndex = 35
+ Me.CheckBox8.Text = "Orario"
+ '
+ 'TextBox9
+ '
+ Me.TextBox9.Location = New System.Drawing.Point(120, 108)
+ Me.TextBox9.Name = "TextBox9"
+ Me.TextBox9.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox9.TabIndex = 20
+ Me.TextBox9.Text = "TextBox9"
+ '
+ 'CheckBox7
+ '
+ Me.CheckBox7.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox7.Location = New System.Drawing.Point(136, 156)
+ Me.CheckBox7.Name = "CheckBox7"
+ Me.CheckBox7.Size = New System.Drawing.Size(88, 16)
+ Me.CheckBox7.TabIndex = 34
+ Me.CheckBox7.Text = "Tempo gara"
+ '
+ 'Label4
+ '
+ Me.Label4.AutoSize = True
+ Me.Label4.ForeColor = System.Drawing.Color.Black
+ Me.Label4.Location = New System.Drawing.Point(8, 24)
+ Me.Label4.Name = "Label4"
+ Me.Label4.Size = New System.Drawing.Size(59, 13)
+ Me.Label4.TabIndex = 9
+ Me.Label4.Text = "Orizzontale"
+ '
+ 'TextBox4
+ '
+ Me.TextBox4.Location = New System.Drawing.Point(72, 24)
+ Me.TextBox4.Name = "TextBox4"
+ Me.TextBox4.Size = New System.Drawing.Size(408, 20)
+ Me.TextBox4.TabIndex = 8
+ Me.TextBox4.Text = "TextBox4"
+ '
+ 'Label9
+ '
+ Me.Label9.AutoSize = True
+ Me.Label9.ForeColor = System.Drawing.Color.Black
+ Me.Label9.Location = New System.Drawing.Point(8, 108)
+ Me.Label9.Name = "Label9"
+ Me.Label9.Size = New System.Drawing.Size(110, 13)
+ Me.Label9.TabIndex = 19
+ Me.Label9.Text = "Trasparenza (0-100%)"
+ '
+ 'Label13
+ '
+ Me.Label13.AutoSize = True
+ Me.Label13.ForeColor = System.Drawing.Color.Black
+ Me.Label13.Location = New System.Drawing.Point(16, 132)
+ Me.Label13.Name = "Label13"
+ Me.Label13.Size = New System.Drawing.Size(52, 13)
+ Me.Label13.TabIndex = 29
+ Me.Label13.Text = "Posizione"
+ '
+ 'ComboBox1
+ '
+ Me.ComboBox1.Location = New System.Drawing.Point(72, 132)
+ Me.ComboBox1.Name = "ComboBox1"
+ Me.ComboBox1.Size = New System.Drawing.Size(104, 21)
+ Me.ComboBox1.TabIndex = 28
+ Me.ComboBox1.Text = "ComboBox1"
+ '
+ 'ComboBox2
+ '
+ Me.ComboBox2.Location = New System.Drawing.Point(376, 132)
+ Me.ComboBox2.Name = "ComboBox2"
+ Me.ComboBox2.Size = New System.Drawing.Size(104, 21)
+ Me.ComboBox2.TabIndex = 31
+ Me.ComboBox2.Text = "ComboBox2"
+ '
+ 'Label14
+ '
+ Me.Label14.AutoSize = True
+ Me.Label14.ForeColor = System.Drawing.Color.Black
+ Me.Label14.Location = New System.Drawing.Point(304, 132)
+ Me.Label14.Name = "Label14"
+ Me.Label14.Size = New System.Drawing.Size(67, 13)
+ Me.Label14.TabIndex = 30
+ Me.Label14.Text = "Allineamento"
+ '
+ 'TextBox12
+ '
+ Me.TextBox12.Location = New System.Drawing.Point(376, 108)
+ Me.TextBox12.Name = "TextBox12"
+ Me.TextBox12.Size = New System.Drawing.Size(104, 20)
+ Me.TextBox12.TabIndex = 33
+ Me.TextBox12.Text = "TextBox12"
+ '
+ 'Label15
+ '
+ Me.Label15.AutoSize = True
+ Me.Label15.ForeColor = System.Drawing.Color.Black
+ Me.Label15.Location = New System.Drawing.Point(296, 108)
+ Me.Label15.Name = "Label15"
+ Me.Label15.Size = New System.Drawing.Size(75, 13)
+ Me.Label15.TabIndex = 32
+ Me.Label15.Text = "Margine (pixel)"
+ '
+ 'TabPage5
+ '
+ Me.TabPage5.Controls.Add(Me.GroupBox3)
+ Me.TabPage5.Controls.Add(Me.GroupBox8)
+ Me.TabPage5.Controls.Add(Me.GroupBox7)
+ Me.TabPage5.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage5.Name = "TabPage5"
+ Me.TabPage5.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage5.Size = New System.Drawing.Size(513, 326)
+ Me.TabPage5.TabIndex = 4
+ Me.TabPage5.Text = "Generale"
+ Me.TabPage5.UseVisualStyleBackColor = True
+ '
+ 'GroupBox3
+ '
+ Me.GroupBox3.Controls.Add(Me.CheckBox6)
+ Me.GroupBox3.Controls.Add(Me.Button3)
+ Me.GroupBox3.Controls.Add(Me.Button2)
+ Me.GroupBox3.Controls.Add(Me.Label1)
+ Me.GroupBox3.Controls.Add(Me.Label2)
+ Me.GroupBox3.Controls.Add(Me.TextBox1)
+ Me.GroupBox3.Controls.Add(Me.TextBox2)
+ Me.GroupBox3.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox3.Location = New System.Drawing.Point(6, 6)
+ Me.GroupBox3.Name = "GroupBox3"
+ Me.GroupBox3.Size = New System.Drawing.Size(496, 101)
+ Me.GroupBox3.TabIndex = 35
+ Me.GroupBox3.TabStop = False
+ Me.GroupBox3.Text = "Directory"
+ '
+ 'CheckBox6
+ '
+ Me.CheckBox6.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox6.Location = New System.Drawing.Point(80, 64)
+ Me.CheckBox6.Name = "CheckBox6"
+ Me.CheckBox6.Size = New System.Drawing.Size(152, 24)
+ Me.CheckBox6.TabIndex = 25
+ Me.CheckBox6.Text = "aggiorna le sottodirectory"
+ '
+ 'Button3
+ '
+ Me.Button3.Location = New System.Drawing.Point(462, 40)
+ Me.Button3.Name = "Button3"
+ Me.Button3.Size = New System.Drawing.Size(24, 20)
+ Me.Button3.TabIndex = 6
+ Me.Button3.Text = "..."
+ '
+ 'Button2
+ '
+ Me.Button2.Location = New System.Drawing.Point(462, 16)
+ Me.Button2.Name = "Button2"
+ Me.Button2.Size = New System.Drawing.Size(24, 20)
+ Me.Button2.TabIndex = 5
+ Me.Button2.Text = "..."
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.ForeColor = System.Drawing.Color.Black
+ Me.Label1.Location = New System.Drawing.Point(6, 19)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(50, 13)
+ Me.Label1.TabIndex = 3
+ Me.Label1.Text = "Sorgente"
+ '
+ 'Label2
+ '
+ Me.Label2.AutoSize = True
+ Me.Label2.ForeColor = System.Drawing.Color.Black
+ Me.Label2.Location = New System.Drawing.Point(6, 43)
+ Me.Label2.Name = "Label2"
+ Me.Label2.Size = New System.Drawing.Size(68, 13)
+ Me.Label2.TabIndex = 4
+ Me.Label2.Text = "Destinazione"
+ '
+ 'TextBox1
+ '
+ Me.TextBox1.Location = New System.Drawing.Point(80, 16)
+ Me.TextBox1.Name = "TextBox1"
+ Me.TextBox1.Size = New System.Drawing.Size(376, 20)
+ Me.TextBox1.TabIndex = 0
+ Me.TextBox1.Text = "TextBox1"
+ '
+ 'TextBox2
+ '
+ Me.TextBox2.Location = New System.Drawing.Point(80, 40)
+ Me.TextBox2.Name = "TextBox2"
+ Me.TextBox2.Size = New System.Drawing.Size(376, 20)
+ Me.TextBox2.TabIndex = 1
+ Me.TextBox2.Text = "TextBox2"
+ '
+ 'GroupBox8
+ '
+ Me.GroupBox8.Controls.Add(Me.RadioButton2)
+ Me.GroupBox8.Controls.Add(Me.RadioButton1)
+ Me.GroupBox8.Controls.Add(Me.TextBox21)
+ Me.GroupBox8.Controls.Add(Me.Label34)
+ Me.GroupBox8.Controls.Add(Me.TextBox20)
+ Me.GroupBox8.Controls.Add(Me.Label33)
+ Me.GroupBox8.Controls.Add(Me.Label31)
+ Me.GroupBox8.Controls.Add(Me.CheckBox11)
+ Me.GroupBox8.Controls.Add(Me.TextBox17)
+ Me.GroupBox8.Controls.Add(Me.Label32)
+ Me.GroupBox8.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox8.Location = New System.Drawing.Point(204, 113)
+ Me.GroupBox8.Name = "GroupBox8"
+ Me.GroupBox8.Size = New System.Drawing.Size(192, 152)
+ Me.GroupBox8.TabIndex = 47
+ Me.GroupBox8.TabStop = False
+ Me.GroupBox8.Text = "Sottocartelle"
+ '
+ 'RadioButton2
+ '
+ Me.RadioButton2.ForeColor = System.Drawing.Color.Black
+ Me.RadioButton2.Location = New System.Drawing.Point(32, 128)
+ Me.RadioButton2.Name = "RadioButton2"
+ Me.RadioButton2.Size = New System.Drawing.Size(136, 16)
+ Me.RadioButton2.TabIndex = 38
+ Me.RadioButton2.Text = "Numerazione files"
+ '
+ 'RadioButton1
+ '
+ Me.RadioButton1.Checked = True
+ Me.RadioButton1.ForeColor = System.Drawing.Color.Black
+ Me.RadioButton1.Location = New System.Drawing.Point(32, 112)
+ Me.RadioButton1.Name = "RadioButton1"
+ Me.RadioButton1.Size = New System.Drawing.Size(152, 16)
+ Me.RadioButton1.TabIndex = 37
+ Me.RadioButton1.TabStop = True
+ Me.RadioButton1.Text = "Numerazione progressiva"
+ '
+ 'TextBox21
+ '
+ Me.TextBox21.Location = New System.Drawing.Point(128, 88)
+ Me.TextBox21.Name = "TextBox21"
+ Me.TextBox21.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox21.TabIndex = 34
+ Me.TextBox21.Text = "4"
+ '
+ 'Label34
+ '
+ Me.Label34.ForeColor = System.Drawing.Color.Black
+ Me.Label34.Location = New System.Drawing.Point(8, 88)
+ Me.Label34.Name = "Label34"
+ Me.Label34.Size = New System.Drawing.Size(112, 16)
+ Me.Label34.TabIndex = 33
+ Me.Label34.Text = "Num. cifre contatore"
+ Me.Label34.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'TextBox20
+ '
+ Me.TextBox20.Location = New System.Drawing.Point(56, 64)
+ Me.TextBox20.Name = "TextBox20"
+ Me.TextBox20.Size = New System.Drawing.Size(128, 20)
+ Me.TextBox20.TabIndex = 32
+ Me.TextBox20.Text = "TextBox20"
+ '
+ 'Label33
+ '
+ Me.Label33.ForeColor = System.Drawing.Color.Black
+ Me.Label33.Location = New System.Drawing.Point(6, 67)
+ Me.Label33.Name = "Label33"
+ Me.Label33.Size = New System.Drawing.Size(48, 16)
+ Me.Label33.TabIndex = 31
+ Me.Label33.Text = "Suffisso"
+ '
+ 'Label31
+ '
+ Me.Label31.ForeColor = System.Drawing.Color.Black
+ Me.Label31.Location = New System.Drawing.Point(24, 40)
+ Me.Label31.Name = "Label31"
+ Me.Label31.Size = New System.Drawing.Size(32, 16)
+ Me.Label31.TabIndex = 30
+ Me.Label31.Text = "ogni"
+ '
+ 'CheckBox11
+ '
+ Me.CheckBox11.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox11.Location = New System.Drawing.Point(56, 16)
+ Me.CheckBox11.Name = "CheckBox11"
+ Me.CheckBox11.Size = New System.Drawing.Size(112, 16)
+ Me.CheckBox11.TabIndex = 29
+ Me.CheckBox11.Text = "crea sottocartelle"
+ '
+ 'TextBox17
+ '
+ Me.TextBox17.Location = New System.Drawing.Point(56, 40)
+ Me.TextBox17.Name = "TextBox17"
+ Me.TextBox17.Size = New System.Drawing.Size(64, 20)
+ Me.TextBox17.TabIndex = 27
+ Me.TextBox17.Text = "99"
+ '
+ 'Label32
+ '
+ Me.Label32.ForeColor = System.Drawing.Color.Black
+ Me.Label32.Location = New System.Drawing.Point(128, 40)
+ Me.Label32.Name = "Label32"
+ Me.Label32.Size = New System.Drawing.Size(24, 16)
+ Me.Label32.TabIndex = 28
+ Me.Label32.Text = "file"
+ '
+ 'GroupBox7
+ '
+ Me.GroupBox7.Controls.Add(Me.CheckBox10)
+ Me.GroupBox7.Controls.Add(Me.CheckBox9)
+ Me.GroupBox7.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox7.Location = New System.Drawing.Point(6, 113)
+ Me.GroupBox7.Name = "GroupBox7"
+ Me.GroupBox7.Size = New System.Drawing.Size(192, 88)
+ Me.GroupBox7.TabIndex = 45
+ Me.GroupBox7.TabStop = False
+ Me.GroupBox7.Text = "Generale"
+ '
+ 'CheckBox10
+ '
+ Me.CheckBox10.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox10.Location = New System.Drawing.Point(16, 37)
+ Me.CheckBox10.Name = "CheckBox10"
+ Me.CheckBox10.Size = New System.Drawing.Size(136, 16)
+ Me.CheckBox10.TabIndex = 1
+ Me.CheckBox10.Text = "Rotazione automatica"
+ '
+ 'CheckBox9
+ '
+ Me.CheckBox9.Checked = True
+ Me.CheckBox9.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.CheckBox9.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox9.Location = New System.Drawing.Point(16, 18)
+ Me.CheckBox9.Name = "CheckBox9"
+ Me.CheckBox9.Size = New System.Drawing.Size(80, 16)
+ Me.CheckBox9.TabIndex = 0
+ Me.CheckBox9.Text = "Forza Jpg"
+ '
+ 'TabControl1
+ '
+ Me.TabControl1.Controls.Add(Me.TabPage5)
+ Me.TabControl1.Controls.Add(Me.TabPage3)
+ Me.TabControl1.Controls.Add(Me.TabPage2)
+ Me.TabControl1.Controls.Add(Me.TabPage1)
+ Me.TabControl1.Controls.Add(Me.TabPage4)
+ Me.TabControl1.Location = New System.Drawing.Point(12, 12)
+ Me.TabControl1.Name = "TabControl1"
+ Me.TabControl1.SelectedIndex = 0
+ Me.TabControl1.Size = New System.Drawing.Size(521, 352)
+ Me.TabControl1.TabIndex = 48
+ '
+ 'ProgressBar1
+ '
+ Me.ProgressBar1.Location = New System.Drawing.Point(539, 211)
+ Me.ProgressBar1.Name = "ProgressBar1"
+ Me.ProgressBar1.Size = New System.Drawing.Size(192, 23)
+ Me.ProgressBar1.TabIndex = 52
+ '
+ 'CheckBox12
+ '
+ Me.CheckBox12.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox12.Location = New System.Drawing.Point(10, 19)
+ Me.CheckBox12.Name = "CheckBox12"
+ Me.CheckBox12.Size = New System.Drawing.Size(104, 21)
+ Me.CheckBox12.TabIndex = 35
+ Me.CheckBox12.Text = "Aggiungi orario"
+ '
+ 'CheckBox4
+ '
+ Me.CheckBox4.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox4.Location = New System.Drawing.Point(10, 3)
+ Me.CheckBox4.Name = "CheckBox4"
+ Me.CheckBox4.Size = New System.Drawing.Size(104, 17)
+ Me.CheckBox4.TabIndex = 34
+ Me.CheckBox4.Text = "Aggiungi scritta"
+ '
+ 'CheckBox18
+ '
+ Me.CheckBox18.AutoSize = True
+ Me.CheckBox18.Location = New System.Drawing.Point(140, 3)
+ Me.CheckBox18.Name = "CheckBox18"
+ Me.CheckBox18.Size = New System.Drawing.Size(84, 17)
+ Me.CheckBox18.TabIndex = 36
+ Me.CheckBox18.Text = "Numero foto"
+ Me.CheckBox18.UseVisualStyleBackColor = True
+ '
+ 'Panel1
+ '
+ Me.Panel1.Controls.Add(Me.CheckBox18)
+ Me.Panel1.Controls.Add(Me.CheckBox4)
+ Me.Panel1.Controls.Add(Me.CheckBox12)
+ Me.Panel1.Location = New System.Drawing.Point(52, 236)
+ Me.Panel1.Name = "Panel1"
+ Me.Panel1.Size = New System.Drawing.Size(304, 73)
+ Me.Panel1.TabIndex = 26
+ Me.Panel1.Visible = False
+ '
+ 'Form1
+ '
+ Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
+ Me.ClientSize = New System.Drawing.Size(740, 375)
+ Me.Controls.Add(Me.ProgressBar1)
+ Me.Controls.Add(Me.Label44)
+ Me.Controls.Add(Me.CheckBox22)
+ Me.Controls.Add(Me.Label43)
+ Me.Controls.Add(Me.TabControl1)
+ Me.Controls.Add(Me.Label27)
+ Me.Controls.Add(Me.Button7)
+ Me.Controls.Add(Me.Button5)
+ Me.Controls.Add(Me.Label20)
+ Me.Controls.Add(Me.Label19)
+ Me.Controls.Add(Me.Label18)
+ Me.Controls.Add(Me.Label17)
+ Me.Controls.Add(Me.Label10)
+ Me.Controls.Add(Me.Button1)
+ Me.Controls.Add(Me.Button6)
+ Me.MaximizeBox = False
+ Me.MaximumSize = New System.Drawing.Size(756, 414)
+ Me.MinimumSize = New System.Drawing.Size(756, 414)
+ Me.Name = "Form1"
+ Me.Text = "Image Catalog"
+ Me.TabPage4.ResumeLayout(False)
+ Me.GroupBox6.ResumeLayout(False)
+ Me.GroupBox6.PerformLayout()
+ CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.TabPage1.ResumeLayout(False)
+ Me.GroupBox1.ResumeLayout(False)
+ Me.GroupBox1.PerformLayout()
+ Me.Panel2.ResumeLayout(False)
+ Me.Panel2.PerformLayout()
+ Me.TabPage2.ResumeLayout(False)
+ Me.GroupBox2.ResumeLayout(False)
+ Me.GroupBox2.PerformLayout()
+ Me.TabPage3.ResumeLayout(False)
+ Me.GroupBox10.ResumeLayout(False)
+ Me.GroupBox10.PerformLayout()
+ Me.GroupBox9.ResumeLayout(False)
+ Me.GroupBox9.PerformLayout()
+ Me.GroupBox5.ResumeLayout(False)
+ Me.GroupBox5.PerformLayout()
+ Me.GroupBox4.ResumeLayout(False)
+ Me.GroupBox4.PerformLayout()
+ Me.TabPage5.ResumeLayout(False)
+ Me.GroupBox3.ResumeLayout(False)
+ Me.GroupBox3.PerformLayout()
+ Me.GroupBox8.ResumeLayout(False)
+ Me.GroupBox8.PerformLayout()
+ Me.GroupBox7.ResumeLayout(False)
+ Me.TabControl1.ResumeLayout(False)
+ Me.Panel1.ResumeLayout(False)
+ Me.Panel1.PerformLayout()
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+
+#End Region
+
+#Const MULTI_THREADED = True
+
+ Private StopAttivo As Boolean
+ Private WaterSelectColor As Boolean = False
+
+ Private ContaFotoCuori As Integer
+ Private TaskCuori() As PicInfo
+
+ Private MyPool As XYThreadPool = New XYThreadPool
+ Private ContaImmaginiThread As Integer
+
+ Private Const maxThreads As Integer = 15
+
+ Private Sub setDefaults()
+ TextBox1.Text = ""
+ TextBox2.Text = ""
+ TextBox3.Text = ""
+ TextBox4.Text = ""
+ TextBox5.Text = ""
+ TextBox6.Text = ""
+ TextBox27.Text = ""
+ TextBox28.Text = ""
+ TextBox9.Text = ""
+ TextBox11.Text = ""
+ TextBox12.Text = ""
+ TextBox13.Text = ""
+ TextBox10.Text = ""
+ TextBox14.Text = ""
+ TextBox15.Text = ""
+ TextBox16.Text = ""
+ TextBox17.Text = ""
+ TextBox19.Text = ""
+ TextBox20.Text = ""
+ TextBox21.Text = ""
+ TextBox25.Text = ""
+ TextBox26.Text = ""
+
+ 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
+
+ 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
+ End Sub
+
+ Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+ Application.EnableVisualStyles()
+
+ setDefaults()
+
+ End Sub
+
+ Private Sub FixPaths()
+ If TextBox1.Text.EndsWith("\") = False Then
+ TextBox1.Text &= "\"
+ End If
+ If TextBox2.Text.EndsWith("\") = False Then
+ TextBox2.Text &= "\"
+ End If
+ End Sub
+
+ Private Sub lockUI()
+ TabControl1.Enabled = False
+ Button5.Enabled = False
+ Button6.Enabled = False
+ Button1.Enabled = False
+
+ End Sub
+
+ Private Sub unlockUI()
+ TabControl1.Enabled = True
+ Button5.Enabled = True
+ Button6.Enabled = True
+ Button1.Enabled = True
+ End Sub
+
+ Private Sub btnCreaCatalogo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
+ lockUI()
+ Dim timeStart As Date
+ Dim timeStop As Date
+
+ timeStart = TimeOfDay
+ FixPaths()
+
+ Label10.Text = ""
+ Label17.Text = "0"
+ Label18.Text = "0"
+ setPicSettings(TextBox1.Text, TextBox2.Text)
+#If MULTI_THREADED Then
+ ProgressBar1.Minimum = 0
+ ProgressBar1.Step = 1
+ ProgressBar1.Value = 0
+
+ Dim t1 As New Threading.Thread(AddressOf creaCatalogoThread)
+ t1.IsBackground = True
+ t1.Start()
+
+#Else
+ creaCatalogo(timeStart, timeStop)
+ unlockUI()
+#End If
+
+
+
+
+ End Sub
+
+ Private Sub creaCatalogoThread()
+ Dim timeStart As Date = TimeOfDay
+ MyPool.StopThreadPool()
+ MyPool.StartThreadPool(0, maxThreads)
+ ContaImmaginiThread = 0
+
+ creaImmaginiWithThreadMod(TextBox1.Text, TextBox2.Text)
+
+ Dim ThAttivo As ThreadPoolWorkItem = Nothing
+ Dim i As Integer = 0
+
+ Do Until i = ContaImmaginiThread
+ Thread.Sleep(100)
+ ThAttivo = MyPool.ExtractWorkItem()
+ If ThAttivo IsNot Nothing Then
+ i += 1
+ 'stepProgressBar()
+ setLabel10Text("File: " & ThAttivo.m_sName)
+
+ 'setLabel18Text(ContaImmaginiThread.ToString)
+ 'setLabel18Text(i.ToString)
+
+
+ 'Label10.Text = "File: " & ThAttivo.m_sName
+ 'Label18.Text = ContaImmaginiThread.ToString
+ End If
+ Loop
+ MyPool.StopThreadPool()
+ Dim timeStop As Date = TimeOfDay
+
+ setLabel10Text("Finito")
+ setLabel43Text(CalcTime(timeStart, timeStop))
+
+ End Sub
+
+ Private Sub creaCatalogo(timeStart As Date, timeStop As Date)
+ 'asdfg
+ MyPool.StopThreadPool()
+ MyPool.StartThreadPool(0, maxThreads)
+ ContaImmaginiThread = 0
+
+ creaImmaginiWithThreadMod(TextBox1.Text, TextBox2.Text)
+
+ Dim ThAttivo As ThreadPoolWorkItem = Nothing
+ Dim i As Integer = 0
+
+ Do Until i = ContaImmaginiThread
+ Thread.Sleep(100)
+ ThAttivo = MyPool.ExtractWorkItem()
+ If ThAttivo IsNot Nothing Then
+ i += 1
+ Label10.Text = "File: " & ThAttivo.m_sName
+ Label18.Text = ContaImmaginiThread.ToString
+
+ End If
+ Loop
+ MyPool.StopThreadPool()
+ timeStop = TimeOfDay
+
+ CalcTime(timeStart, timeStop)
+ Label10.Text = "Finito"
+ If CheckBox22.Checked = True Then
+ Shell("%windir%\System32\shutdown.exe")
+ End If
+ End Sub
+
+ Private Function CalcTime(ByVal timeStart As Date, ByVal timeStop As Date) As String
+ Dim timediffH, timediffS As Long
+ Dim timediffM As Long
+ 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
+ Dim s As String = "S:" + timediffS.ToString
+ 'Label43.Text = "H:" + timediffH.ToString + " M:" + timediffM.ToString + " S:" + timediffS.ToString
+ Return s
+ End Function
+ Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
+ Dim DirSearch As FolderBrowserDialog = New FolderBrowserDialog
+ DirSearch.SelectedPath = TextBox1.Text
+ If DialogResult.OK = DirSearch.ShowDialog() Then
+ Dim DirectoryScelta As String = DirSearch.SelectedPath
+ If DirectoryScelta.EndsWith("\") = False Then
+ DirectoryScelta &= "\"
+ End If
+
+ TextBox1.Text = DirectoryScelta
+ End If
+ End Sub
+
+ Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
+ Dim DirSearch As FolderBrowserDialog = New FolderBrowserDialog
+ DirSearch.SelectedPath = TextBox2.Text
+ If DialogResult.OK = DirSearch.ShowDialog() Then
+ Dim DirectoryScelta As String = DirSearch.SelectedPath
+ If DirectoryScelta.EndsWith("\") = False Then
+ DirectoryScelta &= "\"
+ End If
+
+ TextBox2.Text = DirectoryScelta
+ End If
+
+ '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
+ End Sub
+
+ Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
+ Dim SaveFileDlg As SaveFileDialog = New SaveFileDialog
+
+ 'SaveFileDlg.InitialDirectory = "c:\"
+ SaveFileDlg.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*"
+ SaveFileDlg.FilterIndex = 0
+ SaveFileDlg.RestoreDirectory = True
+
+ If DialogResult.OK = SaveFileDlg.ShowDialog Then
+ Dim IlNome As String = SaveFileDlg.FileName
+
+ SetupIni.NomeFileSetup = IlNome
+
+ SetupIni.AggiornaParametro("DirSorgente", TextBox1.Text)
+ SetupIni.AggiornaParametro("DirDestinazione", TextBox2.Text)
+ SetupIni.AggiornaParametro("DirSottoDirectory", CheckBox6.Checked)
+
+ SetupIni.AggiornaParametro("DirDividiDestinazione", CheckBox11.Checked)
+ SetupIni.AggiornaParametro("DirDividiNumFile", TextBox17.Text)
+ SetupIni.AggiornaParametro("DirDividiSuffisso", TextBox20.Text)
+ SetupIni.AggiornaParametro("DirDividiNumCifre", TextBox21.Text)
+ If RadioButton1.Checked = True Then
+ SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Progressiva")
+ Else
+ SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Files")
+ End If
+
+ SetupIni.AggiornaParametro("MiniatureCrea", CheckBox1.Checked)
+ SetupIni.AggiornaParametro("MiniatureSuffisso", TextBox3.Text)
+ SetupIni.AggiornaParametro("MiniatureAltezza", TextBox5.Text)
+ SetupIni.AggiornaParametro("MiniatureLarghezza", TextBox6.Text)
+ SetupIni.AggiornaParametro("MiniatureAddScritta", RadioButton3.Checked)
+ SetupIni.AggiornaParametro("MiniatureAddOrario", RadioButton4.Checked)
+
+ SetupIni.AggiornaParametro("FotoAltezza", TextBox27.Text)
+ SetupIni.AggiornaParametro("FotoLarghezza", TextBox28.Text)
+ SetupIni.AggiornaParametro("FotoCodice", TextBox13.Text)
+ SetupIni.AggiornaParametro("FotoDimOriginali", CheckBox2.Checked)
+
+ SetupIni.AggiornaParametro("FontDimensione", TextBox11.Text)
+ SetupIni.AggiornaParametro("FontDimensioneMiniatura", TextBox25.Text)
+ SetupIni.AggiornaParametro("FontBold", CheckBox3.Checked)
+ SetupIni.AggiornaParametro("FontNome", ComboBox3.Text)
+
+
+ SetupIni.AggiornaParametro("TestoTesto", TextBox4.Text)
+ SetupIni.AggiornaParametro("TestoTrasparente", TextBox9.Text)
+ SetupIni.AggiornaParametro("TestoMargine", TextBox12.Text)
+ SetupIni.AggiornaParametro("TestoPosizione", ComboBox1.Text)
+ SetupIni.AggiornaParametro("TestoAllineamento", ComboBox2.Text)
+
+ SetupIni.AggiornaParametro("MarchioFile", TextBox10.Text)
+ SetupIni.AggiornaParametro("MarchioAltezza", TextBox14.Text)
+ SetupIni.AggiornaParametro("MarchioLarghezza", TextBox15.Text)
+ SetupIni.AggiornaParametro("MarchioMargine", TextBox16.Text)
+ SetupIni.AggiornaParametro("MarchioAllOrizzontale", ComboBox4.Text)
+ SetupIni.AggiornaParametro("MarchioAllVerticale", ComboBox5.Text)
+ SetupIni.AggiornaParametro("MarchioTrasparenza", TextBox19.Text)
+ SetupIni.AggiornaParametro("MarchioAggiungi", CheckBox5.Checked)
+
+ SetupIni.AggiornaParametro("TempoGara", CheckBox7.Checked)
+ SetupIni.AggiornaParametro("Orario", CheckBox8.Checked)
+ SetupIni.AggiornaParametro("EtichettaOrario", TextBox18.Text)
+
+ SetupIni.AggiornaParametro("GeneraleForzaJpg", CheckBox9.Checked)
+ SetupIni.AggiornaParametro("GeneraleRotazioneAutomatica", CheckBox10.Checked)
+ SetupIni.AggiornaParametro("GrandezzaVerticale", TextBox30.Text)
+ SetupIni.AggiornaParametro("MargineVerticale", TextBox31.Text)
+ SetupIni.AggiornaParametro("DimensioniOriginali", CheckBox15.Checked)
+ SetupIni.AggiornaParametro("TestoVerticale", TextBox29.Text)
+ SetupIni.AggiornaParametro("NomeMiniatura", RadioButton6.Checked)
+ SetupIni.AggiornaParametro("DataFoto", CheckBox16.Checked)
+ SetupIni.AggiornaParametro("NumeroFoto", CheckBox17.Checked)
+
+ SetupIni.AggiornaParametro("ColoreTestoRGB", TextBox34.Text)
+
+ SetupIni.AggiornaParametro("TempoSmall", RadioButton5.Checked)
+ SetupIni.AggiornaParametro("NumTempoSmall", RadioButton7.Checked)
+
+ SetupIni.AggiornaParametro("CompressioneJpeg", TextBox32.Text)
+ SetupIni.AggiornaParametro("CompressioneJpegMiniatura", TextBox33.Text)
+ SetupIni.SalvaParametriSetup()
+ Me.Text = "Image Catalog - " & LeggiSoloNomeFile(IlNome)
+ End If
+ End Sub
+
+ Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
+ Dim openFileDialog As 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() Then
+ Dim IlNome As String = openFileDialog.FileName
+
+ SetupIni.NomeFileSetup = IlNome
+ SetupIni.CaricaParametriSetup()
+
+ TextBox1.Text = SetupIni.LeggiParametroString("DirSorgente")
+ TextBox2.Text = SetupIni.LeggiParametroString("DirDestinazione")
+ CheckBox6.Checked = SetupIni.LeggiParametroBoolean("DirSottoDirectory")
+
+ CheckBox11.Checked = SetupIni.LeggiParametroBoolean("DirDividiDestinazione")
+ TextBox17.Text = SetupIni.LeggiParametroString("DirDividiNumFile")
+ TextBox20.Text = SetupIni.LeggiParametroString("DirDividiSuffisso")
+ TextBox21.Text = SetupIni.LeggiParametroString("DirDividiNumCifre")
+
+ Dim TestoTemp As String = SetupIni.LeggiParametroString("DirDividiTipoNumerazione")
+ If TestoTemp.ToUpper = "PROGRESSIVA" Then
+ RadioButton1.Checked = True
+ Else
+ RadioButton2.Checked = True
+ End If
+
+ CheckBox1.Checked = SetupIni.LeggiParametroBoolean("MiniatureCrea")
+ TextBox3.Text = SetupIni.LeggiParametroString("MiniatureSuffisso")
+ TextBox5.Text = SetupIni.LeggiParametroString("MiniatureAltezza")
+ TextBox6.Text = SetupIni.LeggiParametroString("MiniatureLarghezza")
+ RadioButton3.Checked = SetupIni.LeggiParametroBoolean("MiniatureAddScritta")
+ RadioButton4.Checked = SetupIni.LeggiParametroBoolean("MiniatureAddOrario")
+
+ TextBox27.Text = SetupIni.LeggiParametroString("FotoAltezza")
+ TextBox28.Text = SetupIni.LeggiParametroString("FotoLarghezza")
+ TextBox13.Text = SetupIni.LeggiParametroString("FotoCodice")
+ CheckBox2.Checked = SetupIni.LeggiParametroBoolean("FotoDimOriginali")
+
+ TextBox11.Text = SetupIni.LeggiParametroString("FontDimensione")
+ TextBox25.Text = SetupIni.LeggiParametroString("FontDimensioneMiniatura")
+ CheckBox3.Checked = SetupIni.LeggiParametroBoolean("FontBold")
+ ComboBox3.Text = SetupIni.LeggiParametroString("FontNome")
+
+ If TextBox25.Text = "" Then
+ TextBox25.Text = "0"
+ End If
+
+ TextBox4.Text = SetupIni.LeggiParametroString("TestoTesto")
+ TextBox9.Text = SetupIni.LeggiParametroString("TestoTrasparente")
+ TextBox12.Text = SetupIni.LeggiParametroString("TestoMargine")
+ ComboBox1.Text = SetupIni.LeggiParametroString("TestoPosizione")
+ ComboBox2.Text = SetupIni.LeggiParametroString("TestoAllineamento")
+
+ TextBox10.Text = SetupIni.LeggiParametroString("MarchioFile")
+ TextBox14.Text = SetupIni.LeggiParametroString("MarchioAltezza")
+ TextBox15.Text = SetupIni.LeggiParametroString("MarchioLarghezza")
+ TextBox16.Text = SetupIni.LeggiParametroString("MarchioMargine")
+ ComboBox4.Text = SetupIni.LeggiParametroString("MarchioAllOrizzontale")
+ ComboBox5.Text = SetupIni.LeggiParametroString("MarchioAllVerticale")
+ TextBox19.Text = SetupIni.LeggiParametroString("MarchioTrasparenza")
+ CheckBox5.Checked = SetupIni.LeggiParametroBoolean("MarchioAggiungi")
+
+ CheckBox7.Checked = SetupIni.LeggiParametroBoolean("TempoGara")
+ CheckBox8.Checked = SetupIni.LeggiParametroBoolean("Orario")
+ TextBox18.Text = SetupIni.LeggiParametroString("EtichettaOrario")
+
+ CheckBox9.Checked = SetupIni.LeggiParametroBoolean("GeneraleForzaJpg")
+ CheckBox10.Checked = SetupIni.LeggiParametroBoolean("GeneraleRotazioneAutomatica")
+
+ TextBox30.Text = SetupIni.LeggiParametroString("GrandezzaVerticale")
+ TextBox31.Text = SetupIni.LeggiParametroString("MargineVerticale")
+ CheckBox15.Checked = SetupIni.LeggiParametroBoolean("DimensioniOriginali")
+ TextBox29.Text = SetupIni.LeggiParametroString("TestoVerticale")
+ RadioButton6.Checked = SetupIni.LeggiParametroBoolean("NomeMiniatura")
+ CheckBox16.Checked = SetupIni.LeggiParametroBoolean("DataFoto")
+ CheckBox17.Checked = SetupIni.LeggiParametroBoolean("NumeroFoto")
+
+
+ RadioButton5.Checked = SetupIni.LeggiParametroBoolean("TempoSmall")
+ RadioButton7.Checked = SetupIni.LeggiParametroBoolean("NumTempoSmall")
+
+ TextBox32.Text = SetupIni.LeggiParametroString("CompressioneJpeg")
+ TextBox33.Text = SetupIni.LeggiParametroString("CompressioneJpegMiniatura")
+
+ TextBox34.Text = SetupIni.LeggiParametroString("ColoreTestoRGB")
+ If File.Exists(TextBox10.Text) Then
+
+
+ PictureBox1.Image = Image.FromFile(TextBox10.Text)
+ If PictureBox1.Image.Height >= PictureBox1.Image.Width Then
+ PictureBox1.Height = 160
+ PictureBox1.Width = CType(160 * PictureBox1.Image.Width / PictureBox1.Image.Height, Integer)
+ Else
+ PictureBox1.Width = 224
+ PictureBox1.Height = CType(224 * PictureBox1.Image.Height / PictureBox1.Image.Width, Integer)
+ End If
+ End If
+ Me.Text = "Image Catalog - " & LeggiSoloNomeFile(IlNome)
+ End If
+ End Sub
+
+ Private Sub setPicSettings(ByVal SourcePath As String, ByVal DestPath As String)
+
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+
+
+
+ PicSettings.DirectorySorgente = TextBox1.Text
+ PicSettings.DirectoryDestinazione = TextBox2.Text
+
+ 'PicSettings.DestDir = DestDir
+ 'PicSettings.SourceDir = SourceDir
+ 'PicSettings.DestDirStart = DestDirStart
+
+ PicSettings.DimStandard = CType(TextBox11.Text, Integer)
+ PicSettings.DimStandardMiniatura = CType(TextBox25.Text, Integer)
+
+ PicSettings.UsaOrarioMiniatura = CheckBox12.Checked
+ PicSettings.UsaOrarioTestoApplicare = CheckBox8.Checked
+ PicSettings.UsaTempoGaraTestoApplicare = CheckBox7.Checked
+
+ PicSettings.UsaRotazioneAutomatica = CheckBox10.Checked
+ PicSettings.UsaForzaJpg = CheckBox9.Checked
+
+ If CheckBox17.Checked Then
+ PicSettings.TestoNome = True
+ Else
+ PicSettings.TestoNome = False
+
+ End If
+
+ If CheckBox16.Checked Then
+ PicSettings.NomeData = True
+ Else
+ PicSettings.NomeData = False
+ End If
+ PicSettings.TestoFirmaStart = TextBox4.Text
+ PicSettings.TestoFirmaStartV = TextBox29.Text
+
+ PicSettings.DataPartenza = DateTimePicker1.Value
+ PicSettings.TestoOrario = TextBox18.Text
+
+ PicSettings.AltezzaSmall = CType(TextBox5.Text, Integer)
+ PicSettings.LarghezzaSmall = CType(TextBox5.Text, Integer)
+
+ PicSettings.CreaMiniature = CheckBox1.Checked
+ PicSettings.AggiungiScritteMiniature = RadioButton3.Checked
+ PicSettings.AggTempoGaraMin = RadioButton5.Checked
+ PicSettings.AggNumTempMin = RadioButton7.Checked
+
+
+ PicSettings.DimVert = CType(TextBox30.Text, Integer)
+ PicSettings.MargVert = CType(TextBox31.Text, Integer)
+
+ 'PicSettings.NomeFileChild = childFile.Name
+ PicSettings.Suffisso = TextBox3.Text
+ PicSettings.Codice = TextBox13.Text
+
+ PicSettings.Trasparenza = CType(TextBox9.Text, Integer)
+ PicSettings.IlFont = ComboBox3.SelectedItem.ToString
+ PicSettings.Grassetto = CheckBox3.Checked
+
+ PicSettings.Posizione = ComboBox1.SelectedItem.ToString
+ PicSettings.Allineamento = ComboBox2.SelectedItem.ToString
+ PicSettings.Margine = CType(TextBox12.Text, Integer)
+
+ PicSettings.LogoAltezza = CType(TextBox14.Text, Integer)
+ PicSettings.LogoLarghezza = CType(TextBox15.Text, Integer)
+
+ 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 = CType(TextBox27.Text, Integer)
+ PicSettings.LarghezzaBig = CType(TextBox28.Text, Integer)
+ PicSettings.DimMin = CType(TextBox25.Text, Integer)
+
+ PicSettings.TestoMin = RadioButton6.Checked
+
+ PicSettings.jpegQuality = CLng(TextBox32.Text)
+ PicSettings.jpegQualityMin = CLng(TextBox33.Text)
+
+ 'PicSettings.mainForm = Me
+
+
+ End Sub
+
+ Private Function makeFilesList(ByVal SourcePath As String) As List(Of List(Of FileInfo))
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(TextBox17.Text, Integer)
+ Dim SuffixDir As String = TextBox20.Text
+ Dim NumCifreDir As Integer = CType(TextBox21.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+ Dim picList As New List(Of FileInfo)
+ Dim dirList As New List(Of List(Of FileInfo))
+
+
+ 'controlla directory principale
+ 'Dim childFile As FileInfo
+ 'For Each childFile In SourceDir.GetFiles("*.jpg")
+ ' picList.Add(childFile)
+ 'Next
+
+ picList = getFiles(SourceDir)
+
+ dirList.Add(picList)
+
+ 'controlla sottodirectory
+ If CheckBox6.Checked = True Then
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ Dim filesList As New List(Of FileInfo)
+ filesList = getFiles(subDir)
+ dirList.Add(filesList)
+ Next
+ End If
+
+ Return dirList
+ End Function
+
+ Private Function getFiles(sourceDir As DirectoryInfo) As List(Of FileInfo)
+ Dim picList As New List(Of FileInfo)
+ Dim childFile As FileInfo
+ For Each childFile In sourceDir.GetFiles("*.jpg")
+ picList.Add(childFile)
+ Next
+ Return picList
+ End Function
+
+ Private Function dividiLista(SourcePath As String, lista As List(Of List(Of FileInfo))) As List(Of List(Of FileInfo))
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+
+ Dim NumFileXDir As Integer = CType(TextBox17.Text, Integer)
+ Dim SuffixDir As String = TextBox20.Text
+ Dim NumCifreDir As Integer = CType(TextBox21.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+ If NumFileXDir > 0 And CheckBox11.Checked = True Then
+ If FileConta > NumFileXDir Then
+ DividiFile = True
+ Else
+
+ End If
+
+ End If
+
+ End Function
+
+ Private Sub setLabel17Text(ByVal text As String)
+ If Label17.InvokeRequired Then
+ Label17.Invoke(New Action(Of String)(AddressOf setLabel17Text), text)
+ Else
+ Label17.Text = text
+
+ End If
+ End Sub
+ Public Sub stepProgressBar()
+ If ProgressBar1.InvokeRequired Then
+ ProgressBar1.Invoke(New MethodInvoker(AddressOf ProgressBar1.PerformStep))
+ Else
+ ProgressBar1.PerformStep()
+ End If
+ setLabel18Text(ProgressBar1.Value.ToString)
+ End Sub
+ Private Sub setLabel10Text(ByVal text As String)
+ If Label10.InvokeRequired Then
+ Label10.Invoke(New Action(Of String)(AddressOf setLabel10Text), text)
+ Else
+ Label10.Text = text
+
+ End If
+ End Sub
+
+ Private Sub setProgressBarMaximum(ByVal value As Integer)
+ If ProgressBar1.InvokeRequired Then
+ ProgressBar1.Invoke(New Action(Of Integer)(AddressOf setProgressBarMaximum), value)
+ Else
+ ProgressBar1.Maximum = value
+
+ End If
+ End Sub
+
+ Private Sub setProgressBarValue(ByVal value As Integer)
+ If ProgressBar1.InvokeRequired Then
+ ProgressBar1.Invoke(New Action(Of Integer)(AddressOf setProgressBarValue), value)
+ Else
+ ProgressBar1.Value = value
+
+ End If
+ End Sub
+
+ Private Sub setLabel18Text(ByVal text As String)
+ If Label18.InvokeRequired Then
+ Label18.Invoke(New Action(Of String)(AddressOf setLabel18Text), text)
+ Else
+ Label18.Text = text
+
+ End If
+ End Sub
+
+ Private Sub setLabel43Text(ByVal text As String)
+ If Label43.InvokeRequired Then
+ Label43.Invoke(New Action(Of String)(AddressOf setLabel43Text), text)
+ Else
+ Label43.Text = text
+
+ End If
+ End Sub
+
+ Private Sub creaImmaginiWithThreadMod(ByVal SourcePath As String, ByVal DestPath As String)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(TextBox17.Text, Integer)
+ Dim SuffixDir As String = TextBox20.Text
+ Dim NumCifreDir As Integer = CType(TextBox21.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+
+
+ If SourceDir.Exists Then
+ FileConta = SourceDir.GetFiles("*.jpg").GetLength(0)
+ 'Label17.Text = (CType(Label17.Text, Integer) + FileConta).ToString
+ Dim a As String = (CType(Label17.Text, Integer) + FileConta).ToString
+ setLabel17Text(a)
+
+ setProgressBarMaximum(CInt(a))
+
+ If NumFileXDir > 0 And CheckBox11.Checked = True Then
+ If FileConta > NumFileXDir Then
+ DividiFile = True
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+
+ Dim childFile As FileInfo
+ For Each childFile In SourceDir.GetFiles("*.jpg")
+ If StopAttivo = True Then
+ Exit For
+ End If
+ setLabel10Text("File: " & childFile.Name)
+ Dim b As String = (CType(Label18.Text, Integer) + 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 Then
+ If ContaFileXDir = (ContaDirXDir * NumFileXDir) + 1 Then
+ ContaDirXDir += 1
+
+ If RadioButton1.Checked = True Then
+ TestoTemp = ContaDirXDir.ToString
+ Else
+ TestoTemp = (ContaDirXDir * NumFileXDir).ToString
+ End If
+ For ContaTemp = 1 To (NumCifreDir - TestoTemp.Length)
+ TestoTemp = "0" & TestoTemp
+ Next
+
+ If DestDirStart.FullName.EndsWith("\") Then
+ DestDir = New DirectoryInfo(DestDirStart.FullName & SuffixDir & TestoTemp)
+ Else
+ DestDir = New DirectoryInfo(DestDirStart.FullName & "\" & SuffixDir & TestoTemp)
+ End If
+
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ End If
+ End If
+
+ 'Application.DoEvents()
+
+
+
+ Dim ClsCreaImmagine As New ImageCreator
+ ClsCreaImmagine.NomeFileChild = childFile.Name
+ ClsCreaImmagine.DestDir = DestDir
+ ClsCreaImmagine.SourceDir = SourceDir
+ ClsCreaImmagine.DestDirStart = DestDirStart
+
+ ContaImmaginiThread += 1
+ MyPool.InsertWorkItem(childFile.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {childFile.Name}, True)
+ Next
+ ' copy all the sub-directories by recursively calling this same routine
+ If CheckBox6.Checked = True Then
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ creaImmaginiWithThreadMod(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name))
+ Next
+ End If
+ End If
+ End Sub
+
+ 'il posto giusto dove fare modifiche
+ Private Sub CreaImmaginiWithThread(ByVal SourcePath As String, ByVal DestPath As String)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(TextBox17.Text, Integer)
+ Dim SuffixDir As String = TextBox20.Text
+ Dim NumCifreDir As Integer = CType(TextBox21.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+
+
+ If SourceDir.Exists Then
+ FileConta = SourceDir.GetFiles("*.jpg").GetLength(0)
+ Label17.Text = (CType(Label17.Text, Integer) + FileConta).ToString
+
+ If NumFileXDir > 0 And CheckBox11.Checked = True Then
+ If FileConta > NumFileXDir Then
+ DividiFile = True
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+
+ Dim childFile As FileInfo
+ For Each childFile In SourceDir.GetFiles("*.jpg")
+ If StopAttivo = True Then
+ Exit For
+ End If
+ 'Label10.Text = "File: " & childFile.Name
+ 'Label18.Text = (CType(Label18.Text, Integer) + 1).ToString
+ 'Application.DoEvents()
+
+ ContaFileXDir += 1
+
+ If DividiFile = True Then
+ If ContaFileXDir = (ContaDirXDir * NumFileXDir) + 1 Then
+ ContaDirXDir += 1
+
+ If RadioButton1.Checked = True Then
+ TestoTemp = ContaDirXDir.ToString
+ Else
+ TestoTemp = (ContaDirXDir * NumFileXDir).ToString
+ End If
+ For ContaTemp = 1 To (NumCifreDir - TestoTemp.Length)
+ TestoTemp = "0" & TestoTemp
+ Next
+
+ If DestDirStart.FullName.EndsWith("\") Then
+ DestDir = New DirectoryInfo(DestDirStart.FullName & SuffixDir & TestoTemp)
+ Else
+ DestDir = New DirectoryInfo(DestDirStart.FullName & "\" & SuffixDir & TestoTemp)
+ End If
+
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ End If
+ End If
+
+ Application.DoEvents()
+ Dim ClsCreaImmagine As New CreaImmagineSeparateThread
+
+ ClsCreaImmagine.DirectorySorgente = TextBox1.Text
+ ClsCreaImmagine.DirectoryDestinazione = TextBox2.Text
+
+ ClsCreaImmagine.DestDir = DestDir
+ ClsCreaImmagine.SourceDir = SourceDir
+ ClsCreaImmagine.DestDirStart = DestDirStart
+
+ ClsCreaImmagine.DimStandard = CType(TextBox11.Text, Integer)
+ ClsCreaImmagine.DimStandardMiniatura = CType(TextBox25.Text, Integer)
+
+ ClsCreaImmagine.UsaOrarioMiniatura = CheckBox12.Checked
+ ClsCreaImmagine.UsaOrarioTestoApplicare = CheckBox8.Checked
+ ClsCreaImmagine.UsaTempoGaraTestoApplicare = CheckBox7.Checked
+
+ ClsCreaImmagine.UsaRotazioneAutomatica = CheckBox10.Checked
+ ClsCreaImmagine.UsaForzaJpg = CheckBox9.Checked
+
+ If CheckBox17.Checked Then
+ ClsCreaImmagine.TestoNome = True
+ Else
+ ClsCreaImmagine.TestoNome = False
+
+ End If
+
+ If CheckBox16.Checked Then
+ ClsCreaImmagine.NomeData = True
+ Else
+ ClsCreaImmagine.NomeData = False
+ End If
+ ClsCreaImmagine.TestoFirmaStart = TextBox4.Text
+ ClsCreaImmagine.TestoFirmaStartV = TextBox29.Text
+
+ ClsCreaImmagine.DataPartenza = DateTimePicker1.Value
+ ClsCreaImmagine.TestoOrario = TextBox18.Text
+
+ ClsCreaImmagine.AltezzaSmall = CType(TextBox5.Text, Integer)
+ ClsCreaImmagine.LarghezzaSmall = CType(TextBox5.Text, Integer)
+
+ ClsCreaImmagine.CreaMiniature = CheckBox1.Checked
+ ClsCreaImmagine.AggiungiScritteMiniature = RadioButton3.Checked
+ ClsCreaImmagine.AggTempoGaraMin = RadioButton5.Checked
+ ClsCreaImmagine.AggNumTempMin = RadioButton7.Checked
+
+
+ ClsCreaImmagine.DimVert = CType(TextBox30.Text, Integer)
+ ClsCreaImmagine.MargVert = CType(TextBox31.Text, Integer)
+
+ ClsCreaImmagine.NomeFileChild = childFile.Name
+ ClsCreaImmagine.Suffisso = TextBox3.Text
+ ClsCreaImmagine.Codice = TextBox13.Text
+
+ ClsCreaImmagine.Trasparenza = CType(TextBox9.Text, Integer)
+ ClsCreaImmagine.IlFont = ComboBox3.SelectedItem.ToString
+ ClsCreaImmagine.Grassetto = CheckBox3.Checked
+
+ ClsCreaImmagine.Posizione = ComboBox1.SelectedItem.ToString
+ ClsCreaImmagine.Allineamento = ComboBox2.SelectedItem.ToString
+ ClsCreaImmagine.Margine = CType(TextBox12.Text, Integer)
+
+ ClsCreaImmagine.LogoAltezza = CType(TextBox14.Text, Integer)
+ ClsCreaImmagine.LogoLarghezza = CType(TextBox15.Text, Integer)
+
+ '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 = CType(TextBox27.Text, Integer)
+ ClsCreaImmagine.LarghezzaBig = CType(TextBox28.Text, Integer)
+ ClsCreaImmagine.DimMin = CType(TextBox25.Text, Integer)
+
+ ClsCreaImmagine.TestoMin = RadioButton6.Checked
+
+ ClsCreaImmagine.jpegQuality = CLng(TextBox32.Text)
+ ClsCreaImmagine.jpegQuality = CLng(TextBox33.Text)
+
+ ContaImmaginiThread += 1
+ MyPool.InsertWorkItem(childFile.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {childFile.Name}, True)
+ Next
+ ' copy all the sub-directories by recursively calling this same routine
+ If CheckBox6.Checked = True Then
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ CreaImmaginiWithThread(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name))
+ Next
+ End If
+ End If
+ End Sub
+
+ Private Sub CopyDirectoryFile(ByVal SourcePath As String, ByVal DestPath As String, Optional ByVal OverWrite As Boolean = False)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDir As DirectoryInfo = New DirectoryInfo(DestPath)
+
+ If SourceDir.Exists Then
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ ' copy all the files of the current directory
+ Dim childFile As FileInfo
+ For Each childFile In SourceDir.GetFiles()
+ If OverWrite Then
+ childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), True)
+ Else
+ ' 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...
+ If Not File.Exists(Path.Combine(DestDir.FullName, childFile.Name)) Then
+ childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), False)
+ End If
+ End If
+ Next
+ ' copy all the sub-directories by recursively calling this same routine
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ CopyDirectoryFile(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name), OverWrite)
+ Next
+ End If
+ End Sub
+
+
+
+
+
+ Function NewthumbSize(ByVal currentwidth As Integer, ByVal currentheight As Integer, ByVal MaxPixel As Integer, ByVal TipoSize As String) As Size
+ ' Calculate the Size of the New image
+ '*** Larghezza, Altezza, Auto
+
+ Dim tempMultiplier As Double
+
+ If TipoSize.ToUpper = "Larghezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentwidth
+ ElseIf TipoSize.ToUpper = "Altezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ If currentheight > currentwidth Then ' portrait
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ tempMultiplier = MaxPixel / currentwidth
+ End If
+ End If
+
+ Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
+
+ Return NewSize
+ End Function
+
+
+
+ Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
+ StopAttivo = True
+
+ MyPool.StopThreadPool()
+ unlockUI()
+
+ End Sub
+
+ Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
+ Dim openFileDialog As 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 Then
+ openFileDialog.FileName = TextBox10.Text
+ End If
+ openFileDialog.FilterIndex = 0
+ openFileDialog.RestoreDirectory = True
+
+ If DialogResult.OK = openFileDialog.ShowDialog() Then
+ TextBox10.Text = openFileDialog.FileName
+ PictureBox1.Image = Image.FromFile(TextBox10.Text)
+ If PictureBox1.Image.Height >= PictureBox1.Image.Width Then
+ PictureBox1.Height = 160
+ PictureBox1.Width = CType(160 * PictureBox1.Image.Width / PictureBox1.Image.Height, Integer)
+ Else
+ PictureBox1.Width = 224
+ PictureBox1.Height = CType(224 * PictureBox1.Image.Height / PictureBox1.Image.Width, Integer)
+ End If
+ End If
+ End Sub
+
+ Private Function LeggiSoloNomeFile(ByVal FileName As String) As String
+ Dim Testo As String = FileName
+ Dim Risposta As String = ""
+
+ Dim Nomi() As String = Testo.Split(New Char() {"\"c})
+ If Nomi.Length > 1 Then
+ Risposta = Nomi(Nomi.Length - 1)
+ End If
+
+ Return Risposta
+ End Function
+
+
+ Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
+ 'GetColor()
+ 'GetPixelColor(PictureBox1.PointToScreen(e.Location)).ToArgb.ToString("X8")
+
+ End Sub
+
+ Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
+ If e.Button = MouseButtons.Left Then
+ WaterSelectColor = True
+ Else
+ WaterSelectColor = False
+ End If
+ End Sub
+
+
+ '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 Function GetPixelColor(ByVal screenLocation As Point) As Color()
+ '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 Nothing
+ End Function
+
+ Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
+ Dim MyDialog As 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() = Windows.Forms.DialogResult.OK) Then
+ '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
+
+ End If
+ End Sub
+
+
+
+
+
+
+
+ Private Sub TextBox27_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ End Sub
+
+
+
+
+ Private Sub CheckBox18_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox18.CheckedChanged
+ CheckBox4.Checked = False
+ CheckBox12.Checked = False
+
+ End Sub
+
+ Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
+ CheckBox18.Checked = False
+ End Sub
+
+ Private Sub CheckBox12_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox12.CheckedChanged
+ CheckBox18.Checked = False
+ End Sub
+
+
+End Class
+
+Public Class PicInfoold
+ Public DirSource, DirDest, DirDestStart As DirectoryInfo
+ Public NomeImmagine As String
+
+ Public Sub New(ByVal Dir_Source As DirectoryInfo, ByVal Dir_Dest As DirectoryInfo, ByVal Dir_DestStart As DirectoryInfo, ByVal Nome_Immagine As String)
+ DirSource = Dir_Source
+ DirDest = Dir_Dest
+ DirDestStart = Dir_DestStart
+ NomeImmagine = Nome_Immagine
+ End Sub
+End Class
\ No newline at end of file
diff --git a/imagecatalog/ImageCatalog 2.vbproj b/imagecatalog/ImageCatalog 2.vbproj
new file mode 100644
index 0000000..b0ec20d
--- /dev/null
+++ b/imagecatalog/ImageCatalog 2.vbproj
@@ -0,0 +1,297 @@
+
+
+
+ Local
+ 9.0.30729
+ 2.0
+ {8D3AA2B0-8F06-4A61-9CAD-B920EB1A8E9C}
+ Debug
+ AnyCPU
+
+
+
+
+ ImageCatalog
+
+
+ None
+ JScript
+ Grid
+ IE50
+ false
+ WinExe
+ Binary
+ On
+ On
+ ImageCatalog
+ ImageCatalog.My.MyApplication
+
+
+ WindowsForms
+ 3.5
+
+
+ v4.0
+ true
+ My Project\app.manifest
+ Client
+ http://localhost/ImageCatalog/
+ true
+ Web
+ true
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.8.0.%2a
+ false
+ true
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ bin\
+ ImageCatalog.xml
+ 285212672
+
+
+
+
+ true
+ true
+ true
+ false
+ false
+ false
+ false
+ 1
+ 42016,42017,42018,42019,42032,42353,42354,42355
+ full
+ AnyCPU
+ AllRules.ruleset
+
+
+ bin\
+ ImageCatalog.xml
+ 285212672
+
+
+
+
+ false
+ true
+ false
+ true
+ false
+ false
+ false
+ 1
+ 42016,42017,42018,42019,42032,42353,42354,42355
+ none
+ AnyCPU
+ AllRules.ruleset
+
+
+ true
+ true
+ true
+ bin\x64\Debug\
+ 285212672
+ ImageCatalog.xml
+ 1
+ 42016,42017,42018,42019,42032,42353,42354,42355
+ full
+ x64
+ AllRules.ruleset
+
+
+ true
+ bin\x64\Release\
+ 285212672
+ ImageCatalog.xml
+ true
+ 1
+ 42016,42017,42018,42019,42032,42353,42354,42355
+ x64
+ AllRules.ruleset
+
+
+ true
+ true
+ true
+ bin\x86\Debug\
+ 285212672
+ ImageCatalog.xml
+ 1
+ 42016,42017,42018,42019,42032,42353,42354,42355
+ full
+ x86
+ bin\ImageCatalog.exe.CodeAnalysisLog.xml
+ true
+ GlobalSuppressions.vb
+ AllRules.ruleset
+ ;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
+ true
+ ;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
+ true
+ false
+
+
+ true
+ bin\x86\Release\
+ 285212672
+ ImageCatalog.xml
+ true
+ 1
+ 42016,42017,42018,42019,42032,42353,42354,42355
+ x86
+ bin\ImageCatalog.exe.CodeAnalysisLog.xml
+ true
+ GlobalSuppressions.vb
+ AllRules.ruleset
+ ;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
+ true
+ ;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
+ true
+
+
+
+
+ System
+
+
+ 3.5
+ True
+
+
+ System.Data
+ True
+
+
+ System.Drawing
+ True
+
+
+ System.Windows.Forms
+
+
+ System.XML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+
+
+
+
+ Code
+
+
+ Form
+
+
+
+ MainForm.vb
+
+
+ Form
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Settings.settings
+
+
+
+
+ Code
+
+
+ Code
+
+
+ Form1.vb
+ Designer
+
+
+ MainForm.vb
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+
+
+
+ My
+ SettingsSingleFileGenerator
+ Settings.Designer.vb
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 2.0 %28x86%29
+ false
+
+
+ False
+ .NET Framework 3.0 %28x86%29
+ false
+
+
+ False
+ .NET Framework 3.5
+ true
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/imagecatalog/ImageCreator.vb b/imagecatalog/ImageCreator.vb
new file mode 100644
index 0000000..fa39d7f
--- /dev/null
+++ b/imagecatalog/ImageCreator.vb
@@ -0,0 +1,835 @@
+Imports System.IO
+Imports System.Drawing.Drawing2D
+Imports System.Drawing.Imaging
+'Imports System.Threading
+
+Public Class ImageCreator
+#Region "dichiarazioni"
+
+
+ Private FotoRuotaADestra As Boolean = False
+ Private FotoRuotaASinistra As Boolean = False
+
+ Private TempMinText As String = ""
+ 'Private crFont1 As Font
+ Private _NomeFileChild As String
+
+ Private _SourceDir As DirectoryInfo
+ Private _DestDirStart As DirectoryInfo
+ Private _DestDir As DirectoryInfo
+
+ Private _workFile As FileInfo
+
+ Private testoFirma As String
+ Private testoFirmaV As String
+ Private alphaScelta As Integer
+ Private DimensioneStandard As Integer
+ Private DimensioneStandardMiniatura As Integer
+ Private dataFoto As DateTime
+ Private dataPartenzaI As DateTime
+ Private testoOrario As String
+ Private testoFirmaPiccola As String
+ Private thumbSizeSmall As Size
+ Private thumbSizeBig As Size
+ Private nomeFileSmall As String
+ Private nomeFileBig As String
+ Private nomeFileBig2 As String
+
+ Private yPosFromBottom As Single
+ Private yPosFromBottom1 As Single
+ Private yPosFromBottom2 As Single
+ Private yPosFromBottom3 As Single
+ Private yPosFromBottom4 As Single
+#End Region
+
+ Public Sub New()
+
+ End Sub
+
+ Public Sub New(ByVal nomeFileChild As String, ByVal sourceDir As DirectoryInfo, ByVal destDir As DirectoryInfo, ByVal destDirStart As DirectoryInfo)
+ Me.NomeFileChild = nomeFileChild
+ Me.SourceDir = sourceDir
+ Me.DestDir = destDir
+ Me.DestDirStart = destDirStart
+ Me.WorkFile = New FileInfo(nomeFileChild)
+ End Sub
+
+ Public Sub New(ByVal nomeFileChild As String, ByVal sourceDir As DirectoryInfo, ByVal destDir As DirectoryInfo)
+ Me.NomeFileChild = nomeFileChild
+ Me.DestDir = destDir
+ End Sub
+
+ Public Sub New(ByVal file As FileInfo, ByVal destination As DirectoryInfo)
+ Me.WorkFile = file
+ me.DestDir = destination
+
+ End Sub
+
+ Public Sub CreaImmagineThread(ByVal Info As String)
+#If Not Debug Then
+ Try
+#End If
+ preparaVariabili()
+ 'Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(SourceDir.FullName, NomeFileChild))
+ Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(WorkFile.FullName)
+
+ ' Imposta testo extra
+ impostaTestoExtra(g)
+
+ ' Ruota l'immagine in base ai dati EXIF
+ Rotation(g)
+
+ ' Forza jpeg se è selezionata l'opzione
+ Dim thisFormat As System.Drawing.Imaging.ImageFormat = g.RawFormat
+ If PicSettings.UsaForzaJpg = True Then thisFormat = System.Drawing.Imaging.ImageFormat.Jpeg
+
+ prepareThumbnailSize(g)
+
+ Dim imgOutputBig As New Bitmap(g, thumbSizeBig.Width, thumbSizeBig.Height)
+ imgOutputBig.SetResolution(g.HorizontalResolution, g.VerticalResolution)
+
+ ' Crea le miniature
+ creaMiniature(g, imgOutputBig, thisFormat)
+
+ aggiungiTesto(g, imgOutputBig)
+
+ aggiungiLogo(imgOutputBig)
+
+ salvaFoto(imgOutputBig, thumbSizeBig, nomeFileBig, nomeFileSmall, thumbSizeSmall, thisFormat)
+
+ g.Dispose()
+
+ GC.Collect()
+
+ PicSettings.mainForm.stepProgressBar()
+#If Not Debug Then
+Catch ex As Exception
+
+
+ MessageBox.Show(ex.Message)
+
+
+ End Try
+#End If
+
+
+ End Sub
+
+ Private Sub Rotation(ByRef g As System.Drawing.Image)
+
+ FotoRuotaADestra = False
+ FotoRuotaASinistra = False
+
+ If PicSettings.UsaRotazioneAutomatica = True Then
+ If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+
+ Select Case DatiExif.Orientation
+ Case ExifReader.Orientations.BottomLeft
+
+ Case ExifReader.Orientations.BottomRight
+
+ Case ExifReader.Orientations.LeftTop
+
+ Case ExifReader.Orientations.LftBottom
+ FotoRuotaASinistra = True
+ Case ExifReader.Orientations.RightBottom
+
+ Case ExifReader.Orientations.RightTop
+
+ Case ExifReader.Orientations.TopLeft
+
+ Case ExifReader.Orientations.TopRight
+
+ End Select
+ End If
+ End If
+
+ If FotoRuotaASinistra = True Then
+ g.RotateFlip(RotateFlipType.Rotate270FlipNone)
+ End If
+ If FotoRuotaADestra = True Then
+ g.RotateFlip(RotateFlipType.Rotate90FlipNone)
+ End If
+
+
+
+ End Sub
+ '''
+ ''' Aggiunge Orario, tempo gara e altri
+ '''
+ ''' Image
+ '''
+ Private Sub impostaTestoExtra(g As Image)
+ If PicSettings.UsaOrarioTestoApplicare Or
+ PicSettings.UsaTempoGaraTestoApplicare Or
+ PicSettings.UsaOrarioMiniatura Or
+ PicSettings.TestoMin Or
+ PicSettings.AggTempoGaraMin Or
+ PicSettings.AggNumTempMin Then
+
+ If g.PropertyIdList.Length > 0 Then ' ci sono dati exif
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+ dataFoto = DatiExif.DateTimeOriginal
+ testoFirma = PicSettings.TestoFirmaStart
+ testoFirmaV = PicSettings.TestoFirmaStartV
+
+ If dataFoto.Year <> 1 Then
+ testoFirmaPiccola = dataFoto.ToShortTimeString
+ If PicSettings.UsaOrarioTestoApplicare = True Then
+ testoFirma &= " " & dataFoto.ToShortDateString & " " & dataFoto.ToLongTimeString
+ testoFirmaV &= " " & dataFoto.ToShortDateString & " " & dataFoto.ToLongTimeString
+ End If
+ If PicSettings.UsaTempoGaraTestoApplicare = True Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, dataPartenzaI, dataFoto) * 10000000)
+ testoFirma &= " " & testoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ testoFirmaV &= " " & testoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+ End If
+ End If
+
+ End If
+ Else
+ testoFirma = PicSettings.TestoFirmaStart
+ testoFirmaV = PicSettings.TestoFirmaStartV
+
+ End If
+ End Sub
+
+ '''
+ ''' Prepara diverse variabili azzerandole, elaborandole e prendendole dalle impostazioni
+ '''
+ '''
+ Private Sub preparaVariabili()
+ alphaScelta = CType((255 * (100 - PicSettings.Trasparenza) / 100), Integer)
+ testoFirma = ""
+ testoFirmaV = ""
+ dataPartenzaI = PicSettings.DataPartenza
+ testoOrario = PicSettings.TestoOrario
+ If testoOrario.Length > 0 Then testoOrario &= " "
+ testoFirmaPiccola = ""
+ thumbSizeSmall = New Size
+ thumbSizeBig = New Size
+ nomeFileSmall = ""
+ nomeFileBig2 = ""
+ nomeFileBig = ""
+ DimensioneStandard = PicSettings.DimStandard
+ DimensioneStandardMiniatura = PicSettings.DimStandardMiniatura
+ 'nomeFileSmall = Suffisso & NomeFileChild
+ 'nomeFileBig = NomeFileChild
+ nomeFileSmall = Suffisso & WorkFile.Name
+ nomeFileBig = WorkFile.Name
+ End Sub
+
+ Private Sub prepareThumbnailSize(g As Image)
+ If g.Width > g.Height Then
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, LarghezzaSmall, "Larghezza")
+ Dim SizeOrig As New Size(g.Width, g.Height)
+ thumbSizeBig = SizeOrig
+ Else
+ thumbSizeSmall = NewthumbSize(g.Width, g.Height, AltezzaSmall, "Altezza")
+ Dim SizeOrig As New Size(g.Width, g.Height)
+ thumbSizeBig = SizeOrig
+ End If
+ End Sub
+
+ Private Sub creaMiniature(g As Image, imgOutputBig As Bitmap, thisFormat As ImageFormat)
+ If PicSettings.TestoMin Then
+ testoFirmaPiccola = nomeFileBig
+ ElseIf PicSettings.AggNumTempMin Then
+ testoFirmaPiccola = nomeFileBig + " "
+ End If
+ 'Dim yPosFromBottom4 As Single
+
+ Dim crFont1 As Font = Nothing
+ Dim crFont2 As Font = Nothing
+ Dim crSize1 As SizeF = New SizeF
+ Dim crSize2 As SizeF = New SizeF
+
+ If PicSettings.CreaMiniature = True Then
+ If PicSettings.AggiungiScritteMiniature = False Then
+ If PicSettings.DirectorySorgente.ToUpper = PicSettings.DirectoryDestinazione.ToUpper Then
+ nomeFileSmall = nomeFileSmall.Substring(0, nomeFileSmall.Length - 4) & Codice & nomeFileSmall.Substring(nomeFileSmall.Length - 4)
+ End If
+ If PicSettings.UsaOrarioMiniatura Or
+ PicSettings.TestoMin Or
+ PicSettings.AggTempoGaraMin Or
+ PicSettings.AggNumTempMin Then
+
+ If testoFirmaPiccola.Length > 0 Then
+ Dim imgOutputSmall As Bitmap
+ imgOutputSmall = CType(imgOutputBig.Clone, Bitmap)
+
+ Dim grPhoto1 As Graphics
+ grPhoto1 = Graphics.FromImage(imgOutputSmall)
+ grPhoto1.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
+
+ Dim LarghezzaStandard1 As Integer
+ 'quick fix
+ DimensioneStandardMiniatura = 50
+ If PicSettings.Grassetto = True Then
+ crFont1 = New Font(PicSettings.IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
+ crFont2 = New Font(PicSettings.IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont1 = New Font(PicSettings.IlFont, DimensioneStandardMiniatura)
+ crFont2 = New Font(PicSettings.IlFont, DimensioneStandard)
+ End If
+
+ crSize1 = grPhoto1.MeasureString(testoFirmaPiccola, crFont1)
+ crSize2 = grPhoto1.MeasureString(testoFirma, crFont1)
+ LarghezzaStandard1 = CType(crSize1.Width, Integer)
+
+ If crSize1.Width > CType(g.Width, Single) Then
+ Dim Conta As Integer = DimensioneStandardMiniatura
+ Do
+ If Conta > 20 Then
+ Conta -= 5
+ Else
+ Conta -= 1
+ End If
+ If PicSettings.Grassetto = True Then
+ crFont1 = New Font(PicSettings.IlFont, Conta, FontStyle.Bold)
+ Else
+ crFont1 = New Font(PicSettings.IlFont, Conta)
+ End If
+ crSize1 = grPhoto1.MeasureString(testoFirmaPiccola, crFont1)
+ If crSize1.Width < CType(g.Width, Single) Then
+ LarghezzaStandard1 = CType(crSize1.Width, Integer)
+ Exit Do
+ End If
+ If Conta <= 5 Then Exit Do
+ Loop
+ DimensioneStandardMiniatura = Conta
+ End If
+
+ Select Case PicSettings.Posizione.ToUpper
+ Case "ALTO"
+ yPosFromBottom1 = (PicSettings.Margine)
+ yPosFromBottom4 = (PicSettings.MargVert)
+
+ Case "BASSO"
+ yPosFromBottom1 = CType((g.Height - crSize1.Height - (g.Height * PicSettings.Margine / 100)), Single)
+ yPosFromBottom4 = CType((g.Height - crSize1.Height - (g.Height * PicSettings.MargVert / 100)), Single)
+
+ End Select
+
+ Dim xCenterOfImg1 As Single
+
+ Dim StrFormat1 As StringFormat = New StringFormat
+ Select Case PicSettings.Allineamento.ToUpper
+ Case "SINISTRA"
+ xCenterOfImg1 = CType((PicSettings.Margine + (LarghezzaStandard1 / 2)), Single)
+
+ If (LarghezzaStandard1 / 2) > (g.Width / 2) - PicSettings.Margine Then
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+ End If
+
+
+ Case "CENTRO"
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+
+
+ Case "DESTRA"
+ xCenterOfImg1 = CType((g.Width - PicSettings.Margine - (LarghezzaStandard1 / 2)), Single)
+
+ If (LarghezzaStandard1 / 2) > (g.Width / 2) - PicSettings.Margine Then
+ xCenterOfImg1 = CType((g.Width / 2), Single)
+ End If
+
+
+ End Select
+ StrFormat1.Alignment = StringAlignment.Center
+
+ Dim semiTransBrush21 As SolidBrush = New SolidBrush(Color.FromArgb(alphaScelta, 0, 0, 0))
+ Dim semiTransBrush1 As SolidBrush = New SolidBrush(Color.FromArgb(alphaScelta, PicSettings.fontColoreRGB))
+
+ 'quick fix
+ DimensioneStandardMiniatura = PicSettings.DimMin
+
+ If PicSettings.Grassetto = True Then
+ crFont1 = New Font(PicSettings.IlFont, DimensioneStandardMiniatura, FontStyle.Bold)
+ Else
+ crFont1 = New Font(PicSettings.IlFont, DimensioneStandardMiniatura)
+ End If
+ 'asdgadfhdfhjgfsjgfjygfdhsdafa
+ If PicSettings.TestoMin Then
+ grPhoto1.DrawString(nomeFileBig, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(nomeFileBig, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+ ElseIf PicSettings.AggTempoGaraMin And PicSettings.UsaTempoGaraTestoApplicare Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, dataPartenzaI, dataFoto) * 10000000)
+ Dim tempstr As String = ""
+
+
+ tempstr &= ControlChars.CrLf & testoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+
+
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+
+ ElseIf PicSettings.AggNumTempMin Then
+ Dim Orario As TimeSpan = New TimeSpan(DateDiff(DateInterval.Second, dataPartenzaI, dataFoto) * 10000000)
+ Dim tempstr As String = ""
+ tempstr &= nomeFileBig
+
+ tempstr &= ControlChars.CrLf & testoOrario & Orario.Hours.ToString("00") & ":" & Orario.Minutes.ToString("00") & ":" & Orario.Seconds.ToString("00")
+
+
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(tempstr, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+
+
+ Else
+ grPhoto1.DrawString(testoFirmaPiccola, crFont1, semiTransBrush21, New PointF(xCenterOfImg1 + 1, yPosFromBottom1 + 1), StrFormat1)
+ grPhoto1.DrawString(testoFirmaPiccola, crFont1, semiTransBrush1, New PointF(xCenterOfImg1, yPosFromBottom1), StrFormat1)
+ End If
+
+ ' Salva la miniatura
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, "Temp_" & nomeFileSmall), thisFormat)
+ Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" & nomeFileSmall))
+ Dim imgOutputSmall2 As New Bitmap(g2, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall2.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat)
+
+ imgOutputSmall2.Dispose()
+ imgOutputSmall.Dispose()
+ g2.Dispose()
+ Kill(Path.Combine(DestDir.FullName, "Temp_" & nomeFileSmall))
+ Else
+ Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ End If
+ Else
+ Dim imgOutputSmall As New Bitmap(g, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ imgOutputSmall.Save(Path.Combine(DestDir.FullName, nomeFileSmall), thisFormat)
+ imgOutputSmall.Dispose()
+ End If
+ End If
+ End If
+ End Sub
+
+ Private Sub aggiungiTesto(g As Image, imgOutputBig As Bitmap)
+ Dim grPhoto As Graphics
+ grPhoto = Graphics.FromImage(imgOutputBig)
+ grPhoto.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
+
+ Dim crFont As Font = Nothing
+ Dim crSize As SizeF = New SizeF
+ Dim LarghezzaStandard As Integer
+
+ If PicSettings.Grassetto = True Then
+ crFont = New Font(PicSettings.IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont = New Font(PicSettings.IlFont, DimensioneStandard)
+ End If
+ crSize = grPhoto.MeasureString(testoFirma, crFont)
+ LarghezzaStandard = CType(crSize.Width, Integer)
+
+ If crSize.Width > CType(g.Width, Single) Then
+ Dim Conta As Integer = DimensioneStandard
+ Do
+ If Conta > 20 Then
+ Conta -= 5
+ Else
+ Conta -= 1
+ End If
+ If PicSettings.Grassetto = True Then
+ crFont = New Font(PicSettings.IlFont, Conta, FontStyle.Bold)
+ Else
+ crFont = New Font(PicSettings.IlFont, Conta)
+ End If
+ crSize = grPhoto.MeasureString(testoFirma, crFont)
+ If crSize.Width < CType(g.Width, Single) Then
+ LarghezzaStandard = CType(crSize.Width, Integer)
+ Exit Do
+ End If
+ If Conta <= 5 Then Exit Do
+ Loop
+ DimensioneStandard = Conta
+ End If
+
+
+ Select Case PicSettings.Posizione.ToUpper
+ Case "ALTO"
+ yPosFromBottom = (PicSettings.Margine)
+ yPosFromBottom3 = (PicSettings.MargVert)
+
+ Case "BASSO"
+ yPosFromBottom = CType((g.Height - crSize.Height - (g.Height * PicSettings.Margine / 100)), Single)
+ yPosFromBottom3 = CType((g.Height - crSize.Height - (g.Height * PicSettings.MargVert / 100)), Single)
+ End Select
+
+ Dim xCenterOfImg As Single
+ Dim xCenterOfImg3 As Single
+ Dim StrFormat As StringFormat = New StringFormat
+ Select Case PicSettings.Allineamento.ToUpper
+ Case "SINISTRA"
+ xCenterOfImg = CType((PicSettings.Margine + (LarghezzaStandard / 2)), Single)
+ xCenterOfImg3 = CType((PicSettings.MargVert + (LarghezzaStandard / 2)), Single)
+ If (LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.Margine Then
+ xCenterOfImg = CType((g.Width / 2), Single)
+ End If
+ If (LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.MargVert Then
+ xCenterOfImg3 = CType((g.Width / 2), Single)
+ End If
+
+ Case "CENTRO"
+ xCenterOfImg = CType((g.Width / 2), Single)
+
+ Case "DESTRA"
+ xCenterOfImg = CType((g.Width - PicSettings.Margine - (LarghezzaStandard / 2)), Single)
+ xCenterOfImg3 = CType((g.Width - PicSettings.MargVert - (LarghezzaStandard / 2)), Single)
+ If (LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.Margine Then
+ xCenterOfImg = CType((g.Width / 2), Single)
+ End If
+ If (LarghezzaStandard / 2) > (g.Width / 2) - PicSettings.MargVert Then
+ xCenterOfImg3 = CType((g.Width / 2), Single)
+ End If
+
+ End Select
+ StrFormat.Alignment = StringAlignment.Center
+
+ Dim semiTransBrush2 As SolidBrush = New SolidBrush(Color.FromArgb(alphaScelta, 0, 0, 0))
+ 'Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(AlphaScelta, _FontColoreR, _FontColoreG, _FontColoreB))
+ Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(alphaScelta, PicSettings.fontColoreRGB))
+
+ If FotoRuotaADestra Or FotoRuotaASinistra Then
+
+ If PicSettings.Grassetto = True Then
+ crFont = New Font(PicSettings.IlFont, DimVert, FontStyle.Bold)
+ Else
+ crFont = New Font(PicSettings.IlFont, DimVert)
+ End If
+
+ Else
+
+ If PicSettings.Grassetto = True Then
+ crFont = New Font(PicSettings.IlFont, DimensioneStandard, FontStyle.Bold)
+ Else
+ crFont = New Font(PicSettings.IlFont, DimensioneStandard)
+ End If
+ End If
+
+
+ 'qui scrive il testo (nomefilebig)
+ If PicSettings.TestoNome Then
+ If NomeData And g.PropertyIdList.Length > 0 Then
+ Dim DatiExif As New ExifReader(CType(g, Bitmap))
+ dataFoto = DatiExif.DateTimeOriginal
+
+ grPhoto.DrawString((nomeFileBig & " " & dataFoto.ToShortDateString), crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString((nomeFileBig & " " & dataFoto.ToShortDateString), crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+ Else
+ grPhoto.DrawString(nomeFileBig, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString(nomeFileBig, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+
+ End If
+ End If
+
+ If PicSettings.TestoNome = False Then
+ If FotoRuotaADestra Or FotoRuotaASinistra Then
+ If PicSettings.TestoMin = False Then
+
+
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom3 + 1), StrFormat)
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom3), StrFormat)
+ End If
+ If PicSettings.TestoMin = True Then
+
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom4 + 1), StrFormat)
+ grPhoto.DrawString(testoFirmaV, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom4), StrFormat)
+
+ End If
+ Else
+ grPhoto.DrawString(testoFirma, crFont, semiTransBrush2, New PointF(xCenterOfImg + 1, yPosFromBottom + 1), StrFormat)
+ grPhoto.DrawString(testoFirma, crFont, semiTransBrush, New PointF(xCenterOfImg, yPosFromBottom), StrFormat)
+
+
+ End If
+ End If
+
+ If PicSettings.DirectorySorgente.ToUpper = PicSettings.DirectoryDestinazione.ToUpper Then
+ nomeFileBig2 = nomeFileBig
+ nomeFileBig = nomeFileBig.Substring(0, nomeFileBig.Length - 4) & Codice & nomeFileBig.Substring(nomeFileBig.Length - 4)
+ End If
+ grPhoto.Dispose()
+ End Sub
+
+
+
+
+ Private Sub aggiungiLogo(imgOutputBig As Bitmap)
+ 'imgOutputBig
+ If PicSettings.LogoAggiungi = True And File.Exists(PicSettings.LogoNomeFile) Then
+
+ Dim ImmagineLogo As Image = Image.FromFile(PicSettings.LogoNomeFile)
+
+ Dim LogoColoreTrasparente As Color = Color.White
+ 'Dim bmWatermark As Bitmap
+
+ '* Create a Bitmap based on the previously modified photograph Bitmap
+ 'bmWatermark = New Bitmap(imgOutputBig)
+ 'bmWatermark.SetResolution(imgOutputBig.HorizontalResolution, imgOutputBig.VerticalResolution)
+
+ '* Load this Bitmap into a new Graphic Object
+ Dim grWatermark As Graphics = Graphics.FromImage(imgOutputBig)
+
+ '* To achieve a translucent watermark we will apply (2) color manipulations
+ Dim imageAttributes As Imaging.ImageAttributes = New Imaging.ImageAttributes
+
+ '* The first step replace the background color with one that is transparent (Alpha=0, R=0, G=0, B=0)
+ Dim colorMap As Imaging.ColorMap = New Imaging.ColorMap
+
+ '* background this will be the color we search for and replace with transparency
+ colorMap.OldColor = LogoColoreTrasparente
+ colorMap.NewColor = Color.FromArgb(0, 0, 0, 0)
+
+ Dim remapTable As Imaging.ColorMap() = {colorMap}
+ imageAttributes.SetRemapTable(remapTable, Imaging.ColorAdjustType.Bitmap)
+
+ '* The second color manipulation is used to change the opacity by setting the 3rd row and 3rd column to 0.3f
+ Dim colorMatrixElements As Single()() = {New Single() {1.0F, 0.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 1.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 1.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, CType(PicSettings.LogoTrasparenza, Single) / 100, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, 0.0F, 1.0F}}
+ Dim wmColorMatrix As Imaging.ColorMatrix = New Imaging.ColorMatrix(colorMatrixElements)
+ imageAttributes.SetColorMatrix(wmColorMatrix, Imaging.ColorMatrixFlag.Default, Imaging.ColorAdjustType.Bitmap)
+
+ Dim FotoLogoH As Integer = PicSettings.LogoAltezza
+ Dim FotoLogoW As Integer = PicSettings.LogoLarghezza
+ Dim FattoreAlt As Double = ImmagineLogo.Height / FotoLogoH
+ Dim FattoreLarg As Double = ImmagineLogo.Width / FotoLogoW
+ Dim NuovaSize As Size
+ If FattoreLarg > FattoreAlt Then
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoW, "Larghezza")
+ Else
+ NuovaSize = NewthumbSize(ImmagineLogo.Width, ImmagineLogo.Height, FotoLogoH, "Altezza")
+ End If
+
+ Dim MargineUsato As Integer
+ Dim MargineL As Integer
+ Dim InPercentualeL As Boolean
+ If PicSettings.LogoMargine.EndsWith("%") = True Then
+ InPercentualeL = True
+ Else
+ InPercentualeL = False
+ End If
+ MargineL = CType(Val(PicSettings.LogoMargine), Integer)
+ If InPercentualeL = True Then
+ MargineUsato = CType(imgOutputBig.Height * MargineL / 100, Integer)
+ Else
+ MargineUsato = MargineL
+ End If
+
+ Dim xPosOfWm As Integer
+ Dim yPosOfWm As Integer
+ Select Case PicSettings.LogoPosizioneH.ToUpper
+ Case "SINISTRA", "NESSUNA"
+ xPosOfWm = MargineUsato
+
+ Case "CENTRO"
+ xPosOfWm = CType((imgOutputBig.Width - NuovaSize.Width) / 2, Integer)
+
+ Case "DESTRA"
+ xPosOfWm = ((imgOutputBig.Width - NuovaSize.Width) - MargineUsato)
+ End Select
+ Select Case PicSettings.LogoPosizioneV.ToUpper
+ Case "ALTO", "NESSUNA"
+ yPosOfWm = MargineUsato
+
+ Case "CENTRO"
+ yPosOfWm = CType((imgOutputBig.Height - NuovaSize.Height) / 2, Integer)
+
+ Case "BASSO"
+ yPosOfWm = ((imgOutputBig.Height - NuovaSize.Height) - MargineUsato)
+ End Select
+
+ grWatermark.DrawImage(ImmagineLogo, New Rectangle(xPosOfWm, yPosOfWm, NuovaSize.Width, NuovaSize.Height), 0, 0, ImmagineLogo.Width, ImmagineLogo.Height, GraphicsUnit.Pixel, imageAttributes)
+ grWatermark.Dispose()
+ End If
+ End Sub
+
+
+ Private Sub salvaFoto(imgOutputBig As Bitmap, thumbSizeBig As Size, NomeFileBig As String, NomeFileSmall As String, thumbSizeSmall As Size, thisFormat As ImageFormat)
+
+ If PicSettings.FotoGrandeDimOrigina = False Then
+ 'attenzione non controlla se è png
+ 'imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), thisFormat)
+ If thisFormat.Equals(ImageFormat.Jpeg) Then
+ salvaImmagineCustomQuality(imgOutputBig, Path.Combine(DestDir.FullName, "Temp_" & NomeFileBig), jpegQuality)
+ Else
+ imgOutputBig.Save(Path.Combine(_DestDir.FullName, "Temp_" & NomeFileBig), thisFormat)
+ End If
+
+
+ Dim g2 As System.Drawing.Image = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" & NomeFileBig))
+ If g2.Width > g2.Height Then
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, PicSettings.LarghezzaBig, "Larghezza")
+ Else
+ thumbSizeBig = NewthumbSize(g2.Width, g2.Height, PicSettings.AltezzaBig, "Altezza")
+ End If
+ Dim imgOutputBig2 As New Bitmap(g2, thumbSizeBig.Width, thumbSizeBig.Height)
+ '
+ If thisFormat.Equals(ImageFormat.Jpeg) Then
+ salvaImmagineCustomQuality(imgOutputBig2, Path.Combine(DestDir.FullName, NomeFileBig), jpegQuality)
+ Else
+ imgOutputBig2.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
+ End If
+
+ imgOutputBig2.Dispose()
+ imgOutputBig.Dispose()
+ g2.Dispose()
+ Else
+ '
+ If thisFormat.Equals(ImageFormat.Jpeg) Then
+ salvaImmagineCustomQuality(imgOutputBig, Path.Combine(DestDir.FullName, NomeFileBig), jpegQuality)
+ Else
+ imgOutputBig.Save(Path.Combine(_DestDir.FullName, NomeFileBig), thisFormat)
+ End If
+
+ imgOutputBig.Dispose()
+ End If
+
+
+ If PicSettings.CreaMiniature Then
+ If PicSettings.AggiungiScritteMiniature = True Then
+ Dim g1 As System.Drawing.Image
+ If PicSettings.FotoGrandeDimOrigina = False Then
+ g1 = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, "Temp_" & NomeFileBig))
+ Else
+ g1 = System.Drawing.Image.FromFile(Path.Combine(DestDir.FullName, NomeFileBig))
+ End If
+ Dim imgOutputSmall As New Bitmap(g1, thumbSizeSmall.Width, thumbSizeSmall.Height)
+ If PicSettings.DirectorySorgente.ToUpper = PicSettings.DirectoryDestinazione.ToUpper Then
+ NomeFileSmall = NomeFileSmall.Substring(0, NomeFileSmall.Length - 4) & Codice & NomeFileSmall.Substring(NomeFileSmall.Length - 4)
+ End If
+ '
+ If thisFormat.Equals(ImageFormat.Jpeg) Then
+ salvaImmagineCustomQuality(imgOutputSmall, Path.Combine(DestDir.FullName, NomeFileSmall), jpegQualityMin)
+ Else
+ imgOutputSmall.Save(Path.Combine(_DestDir.FullName, NomeFileSmall), thisFormat)
+ End If
+
+ imgOutputSmall.Dispose()
+ g1.Dispose()
+ End If
+
+
+
+ End If
+
+ If File.Exists(Path.Combine(DestDir.FullName, "Temp_" & NomeFileBig)) = True Then
+ Kill(Path.Combine(DestDir.FullName, "Temp_" & NomeFileBig))
+ End If
+
+
+ End Sub
+
+ Private Sub salvaImmagineCustomQuality(imageToSave As Bitmap, nomeFileFinale As String, quality As Long)
+
+ Dim JgpEncoder As ImageCodecInfo = GetEncoder(ImageFormat.Jpeg)
+ Dim MyEncoder As Encoder = Encoder.Quality
+
+ Dim MyEncoderParameters As New EncoderParameters(1)
+
+ Dim MyEncoderParameter As New EncoderParameter(MyEncoder, jpegQuality)
+ MyEncoderParameters.Param(0) = MyEncoderParameter
+ imageToSave.Save(nomeFileFinale, JgpEncoder, MyEncoderParameters)
+ imageToSave.Dispose()
+ End Sub
+
+
+
+ Private Function GetEncoder(ByVal format As ImageFormat) As ImageCodecInfo
+
+ Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageDecoders()
+
+ Dim codec As ImageCodecInfo
+ For Each codec In codecs
+ If codec.FormatID = format.Guid Then
+ Return codec
+ End If
+ Next codec
+ Return Nothing
+
+ End Function
+
+
+
+
+
+
+ '''
+ ''' Calculate the Size of the New image
+ '''
+ ''' Larghezza
+ ''' Altezza
+ '''
+ '''
+ '''
+ '''
+ Private Function NewthumbSize(ByVal currentwidth As Integer, ByVal currentheight As Integer, ByVal MaxPixel As Integer, ByVal TipoSize As String) As Size
+ ' e
+ '*** Larghezza, Altezza, Auto
+
+ Dim tempMultiplier As Double
+
+ If TipoSize.ToUpper = "Larghezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentwidth
+ ElseIf TipoSize.ToUpper = "Altezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ If currentheight > currentwidth Then ' portrait
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ tempMultiplier = MaxPixel / currentwidth
+ End If
+ End If
+
+ Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
+
+ Return NewSize
+ End Function
+
+ Public Property WorkFile() As FileInfo
+ Get
+ Return _workFile
+ End Get
+ Set(value As FileInfo)
+ _workFile = value
+ End Set
+ End Property
+
+ Public Property DestDir() As DirectoryInfo
+ Get
+ Return _DestDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDir = value
+ End Set
+ End Property
+
+ Public Property SourceDir() As DirectoryInfo
+ Get
+ Return _SourceDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _SourceDir = value
+ End Set
+ End Property
+
+ Public Property DestDirStart() As DirectoryInfo
+ Get
+ Return _DestDirStart
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDirStart = value
+ End Set
+ End Property
+
+ Public Property NomeFileChild() As String
+ Get
+ Return _NomeFileChild
+ End Get
+ Set(ByVal value As String)
+ _NomeFileChild = value
+ End Set
+ End Property
+
+
+End Class
diff --git a/imagecatalog/LoadBuffer.vb b/imagecatalog/LoadBuffer.vb
new file mode 100644
index 0000000..b59cf11
--- /dev/null
+++ b/imagecatalog/LoadBuffer.vb
@@ -0,0 +1,9 @@
+Imports System.Collections.Generic
+Imports System.IO
+
+Public Class LoadBuffer
+ Public imageList As New List(Of System.Drawing.Image)
+ Public picSourceList As New List(Of FileInfo)
+ Public dirSourceList As New List(Of List(Of FileInfo))
+
+End Class
diff --git a/imagecatalog/MainForm.Designer.vb b/imagecatalog/MainForm.Designer.vb
new file mode 100644
index 0000000..268e131
--- /dev/null
+++ b/imagecatalog/MainForm.Designer.vb
@@ -0,0 +1,1786 @@
+ _
+Partial Class MainForm
+ Inherits System.Windows.Forms.Form
+
+ 'Form overrides dispose to clean up the component list.
+ _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+ _
+ Private Sub InitializeComponent()
+ Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
+ Me.CheckBox22 = New System.Windows.Forms.CheckBox()
+ Me.Label43 = New System.Windows.Forms.Label()
+ Me.TabControl1 = New System.Windows.Forms.TabControl()
+ Me.TabPage5 = New System.Windows.Forms.TabPage()
+ Me.GroupBox11 = New System.Windows.Forms.GroupBox()
+ Me.Panel3 = New System.Windows.Forms.Panel()
+ Me.rdbNuovoMetodo = New System.Windows.Forms.RadioButton()
+ Me.rdbVecchioMetodo = New System.Windows.Forms.RadioButton()
+ Me.Label8 = New System.Windows.Forms.Label()
+ Me.TextBox8 = New System.Windows.Forms.TextBox()
+ Me.Label7 = New System.Windows.Forms.Label()
+ Me.TextBox7 = New System.Windows.Forms.TextBox()
+ Me.GroupBox3 = New System.Windows.Forms.GroupBox()
+ Me.chkAggiornaSottodirectory = New System.Windows.Forms.CheckBox()
+ Me.Button3 = New System.Windows.Forms.Button()
+ Me.Button2 = New System.Windows.Forms.Button()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.Label2 = New System.Windows.Forms.Label()
+ Me.txtSorgente = New System.Windows.Forms.TextBox()
+ Me.txtDestinazione = New System.Windows.Forms.TextBox()
+ Me.GroupBox8 = New System.Windows.Forms.GroupBox()
+ Me.rdbNumFiles = New System.Windows.Forms.RadioButton()
+ Me.rdbNumProgressiva = New System.Windows.Forms.RadioButton()
+ Me.txtCifreContatore = New System.Windows.Forms.TextBox()
+ Me.Label34 = New System.Windows.Forms.Label()
+ Me.txtSuffissoCartelle = New System.Windows.Forms.TextBox()
+ Me.Label33 = New System.Windows.Forms.Label()
+ Me.Label31 = New System.Windows.Forms.Label()
+ Me.chkCreaSottocartelle = New System.Windows.Forms.CheckBox()
+ Me.txtFilePerCartella = New System.Windows.Forms.TextBox()
+ Me.Label32 = New System.Windows.Forms.Label()
+ Me.GroupBox7 = New System.Windows.Forms.GroupBox()
+ Me.chkSovrascriviFile = New System.Windows.Forms.CheckBox()
+ Me.chkRotazioneAutomatica = New System.Windows.Forms.CheckBox()
+ Me.chkForzaJpg = New System.Windows.Forms.CheckBox()
+ Me.TabPage3 = New System.Windows.Forms.TabPage()
+ Me.CheckBox2 = New System.Windows.Forms.CheckBox()
+ Me.GroupBox10 = New System.Windows.Forms.GroupBox()
+ Me.Label42 = New System.Windows.Forms.Label()
+ Me.Label41 = New System.Windows.Forms.Label()
+ Me.TextBox31 = New System.Windows.Forms.TextBox()
+ Me.TextBox30 = New System.Windows.Forms.TextBox()
+ Me.GroupBox9 = New System.Windows.Forms.GroupBox()
+ Me.CheckBox17 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox16 = New System.Windows.Forms.CheckBox()
+ Me.GroupBox5 = New System.Windows.Forms.GroupBox()
+ Me.TextBox34 = New System.Windows.Forms.TextBox()
+ Me.Button8 = New System.Windows.Forms.Button()
+ Me.Label36 = New System.Windows.Forms.Label()
+ Me.TextBox25 = New System.Windows.Forms.TextBox()
+ Me.Label35 = New System.Windows.Forms.Label()
+ Me.ComboBox3 = New System.Windows.Forms.ComboBox()
+ Me.TextBox11 = New System.Windows.Forms.TextBox()
+ Me.Label12 = New System.Windows.Forms.Label()
+ Me.Label11 = New System.Windows.Forms.Label()
+ Me.CheckBox3 = New System.Windows.Forms.CheckBox()
+ Me.GroupBox4 = New System.Windows.Forms.GroupBox()
+ Me.Label40 = New System.Windows.Forms.Label()
+ Me.TextBox29 = New System.Windows.Forms.TextBox()
+ Me.TextBox18 = New System.Windows.Forms.TextBox()
+ Me.Label26 = New System.Windows.Forms.Label()
+ Me.DateTimePicker1 = New System.Windows.Forms.DateTimePicker()
+ Me.CheckBox8 = New System.Windows.Forms.CheckBox()
+ Me.TextBox9 = New System.Windows.Forms.TextBox()
+ Me.CheckBox7 = New System.Windows.Forms.CheckBox()
+ Me.Label4 = New System.Windows.Forms.Label()
+ Me.TextBox4 = New System.Windows.Forms.TextBox()
+ Me.Label9 = New System.Windows.Forms.Label()
+ Me.Label13 = New System.Windows.Forms.Label()
+ Me.ComboBox1 = New System.Windows.Forms.ComboBox()
+ Me.ComboBox2 = New System.Windows.Forms.ComboBox()
+ Me.Label14 = New System.Windows.Forms.Label()
+ Me.TextBox12 = New System.Windows.Forms.TextBox()
+ Me.Label15 = New System.Windows.Forms.Label()
+ Me.TabPage2 = New System.Windows.Forms.TabPage()
+ Me.GroupBox2 = New System.Windows.Forms.GroupBox()
+ Me.Label45 = New System.Windows.Forms.Label()
+ Me.TextBox32 = New System.Windows.Forms.TextBox()
+ Me.TextBox26 = New System.Windows.Forms.TextBox()
+ Me.Label37 = New System.Windows.Forms.Label()
+ Me.Label38 = New System.Windows.Forms.Label()
+ Me.TextBox27 = New System.Windows.Forms.TextBox()
+ Me.Label39 = New System.Windows.Forms.Label()
+ Me.TextBox28 = New System.Windows.Forms.TextBox()
+ Me.CheckBox15 = New System.Windows.Forms.CheckBox()
+ Me.TabPage1 = New System.Windows.Forms.TabPage()
+ Me.Panel1 = New System.Windows.Forms.Panel()
+ Me.CheckBox18 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox4 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox12 = New System.Windows.Forms.CheckBox()
+ Me.GroupBox1 = New System.Windows.Forms.GroupBox()
+ Me.Label46 = New System.Windows.Forms.Label()
+ Me.TextBox33 = New System.Windows.Forms.TextBox()
+ Me.Panel2 = New System.Windows.Forms.Panel()
+ Me.RadioButton3 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton7 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton4 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton6 = New System.Windows.Forms.RadioButton()
+ Me.RadioButton5 = New System.Windows.Forms.RadioButton()
+ Me.Label5 = New System.Windows.Forms.Label()
+ Me.TextBox5 = New System.Windows.Forms.TextBox()
+ Me.Label6 = New System.Windows.Forms.Label()
+ Me.TextBox6 = New System.Windows.Forms.TextBox()
+ Me.Label3 = New System.Windows.Forms.Label()
+ Me.TextBox3 = New System.Windows.Forms.TextBox()
+ Me.CheckBox1 = New System.Windows.Forms.CheckBox()
+ Me.TabPage4 = New System.Windows.Forms.TabPage()
+ Me.GroupBox6 = New System.Windows.Forms.GroupBox()
+ Me.PictureBox2 = New System.Windows.Forms.PictureBox()
+ Me.PictureBox1 = New System.Windows.Forms.PictureBox()
+ Me.ComboBox5 = New System.Windows.Forms.ComboBox()
+ Me.ComboBox4 = New System.Windows.Forms.ComboBox()
+ Me.TextBox19 = New System.Windows.Forms.TextBox()
+ Me.Label28 = New System.Windows.Forms.Label()
+ Me.CheckBox5 = New System.Windows.Forms.CheckBox()
+ Me.TextBox15 = New System.Windows.Forms.TextBox()
+ Me.TextBox14 = New System.Windows.Forms.TextBox()
+ Me.Label25 = New System.Windows.Forms.Label()
+ Me.TextBox16 = New System.Windows.Forms.TextBox()
+ Me.Label24 = New System.Windows.Forms.Label()
+ Me.Label22 = New System.Windows.Forms.Label()
+ Me.Label23 = New System.Windows.Forms.Label()
+ Me.Button4 = New System.Windows.Forms.Button()
+ Me.TextBox10 = New System.Windows.Forms.TextBox()
+ Me.Label29 = New System.Windows.Forms.Label()
+ Me.Label30 = New System.Windows.Forms.Label()
+ Me.PictureBox3 = New System.Windows.Forms.PictureBox()
+ Me.Label27 = New System.Windows.Forms.Label()
+ Me.Button7 = New System.Windows.Forms.Button()
+ Me.Button5 = New System.Windows.Forms.Button()
+ Me.Label20 = New System.Windows.Forms.Label()
+ Me.Label19 = New System.Windows.Forms.Label()
+ Me.Label18 = New System.Windows.Forms.Label()
+ Me.lblFotoTotaliNum = New System.Windows.Forms.Label()
+ Me.Label10 = New System.Windows.Forms.Label()
+ Me.btnCreaCatalogo = New System.Windows.Forms.Button()
+ Me.Button6 = New System.Windows.Forms.Button()
+ Me.TabControl1.SuspendLayout()
+ Me.TabPage5.SuspendLayout()
+ Me.GroupBox11.SuspendLayout()
+ Me.Panel3.SuspendLayout()
+ Me.GroupBox3.SuspendLayout()
+ Me.GroupBox8.SuspendLayout()
+ Me.GroupBox7.SuspendLayout()
+ Me.TabPage3.SuspendLayout()
+ Me.GroupBox10.SuspendLayout()
+ Me.GroupBox9.SuspendLayout()
+ Me.GroupBox5.SuspendLayout()
+ Me.GroupBox4.SuspendLayout()
+ Me.TabPage2.SuspendLayout()
+ Me.GroupBox2.SuspendLayout()
+ Me.TabPage1.SuspendLayout()
+ Me.Panel1.SuspendLayout()
+ Me.GroupBox1.SuspendLayout()
+ Me.Panel2.SuspendLayout()
+ Me.TabPage4.SuspendLayout()
+ Me.GroupBox6.SuspendLayout()
+ CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'ProgressBar1
+ '
+ Me.ProgressBar1.Location = New System.Drawing.Point(539, 243)
+ Me.ProgressBar1.Name = "ProgressBar1"
+ Me.ProgressBar1.Size = New System.Drawing.Size(192, 23)
+ Me.ProgressBar1.TabIndex = 67
+ '
+ 'CheckBox22
+ '
+ Me.CheckBox22.AutoSize = True
+ Me.CheckBox22.Location = New System.Drawing.Point(539, 358)
+ Me.CheckBox22.Name = "CheckBox22"
+ Me.CheckBox22.Size = New System.Drawing.Size(104, 17)
+ Me.CheckBox22.TabIndex = 65
+ Me.CheckBox22.Text = "Arresta il sistema"
+ Me.CheckBox22.UseVisualStyleBackColor = True
+ '
+ 'Label43
+ '
+ Me.Label43.AutoSize = True
+ Me.Label43.Location = New System.Drawing.Point(536, 342)
+ Me.Label43.Name = "Label43"
+ Me.Label43.Size = New System.Drawing.Size(25, 13)
+ Me.Label43.TabIndex = 64
+ Me.Label43.Text = "000"
+ Me.Label43.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'TabControl1
+ '
+ Me.TabControl1.Controls.Add(Me.TabPage5)
+ Me.TabControl1.Controls.Add(Me.TabPage3)
+ Me.TabControl1.Controls.Add(Me.TabPage2)
+ Me.TabControl1.Controls.Add(Me.TabPage1)
+ Me.TabControl1.Controls.Add(Me.TabPage4)
+ Me.TabControl1.Location = New System.Drawing.Point(12, 12)
+ Me.TabControl1.Name = "TabControl1"
+ Me.TabControl1.SelectedIndex = 0
+ Me.TabControl1.Size = New System.Drawing.Size(521, 377)
+ Me.TabControl1.TabIndex = 63
+ '
+ 'TabPage5
+ '
+ Me.TabPage5.Controls.Add(Me.GroupBox11)
+ Me.TabPage5.Controls.Add(Me.GroupBox3)
+ Me.TabPage5.Controls.Add(Me.GroupBox8)
+ Me.TabPage5.Controls.Add(Me.GroupBox7)
+ Me.TabPage5.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage5.Name = "TabPage5"
+ Me.TabPage5.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage5.Size = New System.Drawing.Size(513, 351)
+ Me.TabPage5.TabIndex = 4
+ Me.TabPage5.Text = "Generale"
+ Me.TabPage5.UseVisualStyleBackColor = True
+ '
+ 'GroupBox11
+ '
+ Me.GroupBox11.Controls.Add(Me.Panel3)
+ Me.GroupBox11.Controls.Add(Me.Label8)
+ Me.GroupBox11.Controls.Add(Me.TextBox8)
+ Me.GroupBox11.Controls.Add(Me.Label7)
+ Me.GroupBox11.Controls.Add(Me.TextBox7)
+ Me.GroupBox11.Location = New System.Drawing.Point(7, 209)
+ Me.GroupBox11.Name = "GroupBox11"
+ Me.GroupBox11.Size = New System.Drawing.Size(191, 132)
+ Me.GroupBox11.TabIndex = 48
+ Me.GroupBox11.TabStop = False
+ Me.GroupBox11.Text = "Avanzate (ATTENZIONE)"
+ '
+ 'Panel3
+ '
+ Me.Panel3.Controls.Add(Me.rdbNuovoMetodo)
+ Me.Panel3.Controls.Add(Me.rdbVecchioMetodo)
+ Me.Panel3.Location = New System.Drawing.Point(7, 73)
+ Me.Panel3.Name = "Panel3"
+ Me.Panel3.Size = New System.Drawing.Size(178, 53)
+ Me.Panel3.TabIndex = 4
+ '
+ 'rdbNuovoMetodo
+ '
+ Me.rdbNuovoMetodo.AutoSize = True
+ Me.rdbNuovoMetodo.Checked = True
+ Me.rdbNuovoMetodo.Location = New System.Drawing.Point(8, 28)
+ Me.rdbNuovoMetodo.Name = "rdbNuovoMetodo"
+ Me.rdbNuovoMetodo.Size = New System.Drawing.Size(95, 17)
+ Me.rdbNuovoMetodo.TabIndex = 1
+ Me.rdbNuovoMetodo.TabStop = True
+ Me.rdbNuovoMetodo.Text = "Nuovo metodo"
+ Me.rdbNuovoMetodo.UseVisualStyleBackColor = True
+ '
+ 'rdbVecchioMetodo
+ '
+ Me.rdbVecchioMetodo.AutoSize = True
+ Me.rdbVecchioMetodo.Location = New System.Drawing.Point(8, 4)
+ Me.rdbVecchioMetodo.Name = "rdbVecchioMetodo"
+ Me.rdbVecchioMetodo.Size = New System.Drawing.Size(102, 17)
+ Me.rdbVecchioMetodo.TabIndex = 0
+ Me.rdbVecchioMetodo.Text = "Vecchio metodo"
+ Me.rdbVecchioMetodo.UseVisualStyleBackColor = True
+ '
+ 'Label8
+ '
+ Me.Label8.AutoSize = True
+ Me.Label8.Location = New System.Drawing.Point(64, 26)
+ Me.Label8.Name = "Label8"
+ Me.Label8.Size = New System.Drawing.Size(61, 13)
+ Me.Label8.TabIndex = 3
+ Me.Label8.Text = "Min Thread"
+ '
+ 'TextBox8
+ '
+ Me.TextBox8.Location = New System.Drawing.Point(7, 20)
+ Me.TextBox8.Name = "TextBox8"
+ Me.TextBox8.Size = New System.Drawing.Size(47, 20)
+ Me.TextBox8.TabIndex = 2
+ Me.TextBox8.Text = "5"
+ '
+ 'Label7
+ '
+ Me.Label7.AutoSize = True
+ Me.Label7.Location = New System.Drawing.Point(61, 48)
+ Me.Label7.Name = "Label7"
+ Me.Label7.Size = New System.Drawing.Size(64, 13)
+ Me.Label7.TabIndex = 1
+ Me.Label7.Text = "Max Thread"
+ '
+ 'TextBox7
+ '
+ Me.TextBox7.Location = New System.Drawing.Point(7, 46)
+ Me.TextBox7.Name = "TextBox7"
+ Me.TextBox7.Size = New System.Drawing.Size(47, 20)
+ Me.TextBox7.TabIndex = 0
+ Me.TextBox7.Text = "15"
+ '
+ 'GroupBox3
+ '
+ Me.GroupBox3.Controls.Add(Me.chkAggiornaSottodirectory)
+ Me.GroupBox3.Controls.Add(Me.Button3)
+ Me.GroupBox3.Controls.Add(Me.Button2)
+ Me.GroupBox3.Controls.Add(Me.Label1)
+ Me.GroupBox3.Controls.Add(Me.Label2)
+ Me.GroupBox3.Controls.Add(Me.txtSorgente)
+ Me.GroupBox3.Controls.Add(Me.txtDestinazione)
+ Me.GroupBox3.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox3.Location = New System.Drawing.Point(6, 6)
+ Me.GroupBox3.Name = "GroupBox3"
+ Me.GroupBox3.Size = New System.Drawing.Size(496, 101)
+ Me.GroupBox3.TabIndex = 35
+ Me.GroupBox3.TabStop = False
+ Me.GroupBox3.Text = "Directory"
+ '
+ 'chkAggiornaSottodirectory
+ '
+ Me.chkAggiornaSottodirectory.ForeColor = System.Drawing.Color.Black
+ Me.chkAggiornaSottodirectory.Location = New System.Drawing.Point(80, 64)
+ Me.chkAggiornaSottodirectory.Name = "chkAggiornaSottodirectory"
+ Me.chkAggiornaSottodirectory.Size = New System.Drawing.Size(152, 24)
+ Me.chkAggiornaSottodirectory.TabIndex = 25
+ Me.chkAggiornaSottodirectory.Text = "aggiorna le sottodirectory"
+ '
+ 'Button3
+ '
+ Me.Button3.Location = New System.Drawing.Point(462, 40)
+ Me.Button3.Name = "Button3"
+ Me.Button3.Size = New System.Drawing.Size(24, 20)
+ Me.Button3.TabIndex = 6
+ Me.Button3.Text = "..."
+ '
+ 'Button2
+ '
+ Me.Button2.Location = New System.Drawing.Point(462, 16)
+ Me.Button2.Name = "Button2"
+ Me.Button2.Size = New System.Drawing.Size(24, 20)
+ Me.Button2.TabIndex = 5
+ Me.Button2.Text = "..."
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.ForeColor = System.Drawing.Color.Black
+ Me.Label1.Location = New System.Drawing.Point(6, 19)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(50, 13)
+ Me.Label1.TabIndex = 3
+ Me.Label1.Text = "Sorgente"
+ '
+ 'Label2
+ '
+ Me.Label2.AutoSize = True
+ Me.Label2.ForeColor = System.Drawing.Color.Black
+ Me.Label2.Location = New System.Drawing.Point(6, 43)
+ Me.Label2.Name = "Label2"
+ Me.Label2.Size = New System.Drawing.Size(68, 13)
+ Me.Label2.TabIndex = 4
+ Me.Label2.Text = "Destinazione"
+ '
+ 'txtSorgente
+ '
+ Me.txtSorgente.Location = New System.Drawing.Point(80, 16)
+ Me.txtSorgente.Name = "txtSorgente"
+ Me.txtSorgente.Size = New System.Drawing.Size(376, 20)
+ Me.txtSorgente.TabIndex = 0
+ Me.txtSorgente.Text = "TextBox1"
+ '
+ 'txtDestinazione
+ '
+ Me.txtDestinazione.Location = New System.Drawing.Point(80, 40)
+ Me.txtDestinazione.Name = "txtDestinazione"
+ Me.txtDestinazione.Size = New System.Drawing.Size(376, 20)
+ Me.txtDestinazione.TabIndex = 1
+ Me.txtDestinazione.Text = "TextBox2"
+ '
+ 'GroupBox8
+ '
+ Me.GroupBox8.Controls.Add(Me.rdbNumFiles)
+ Me.GroupBox8.Controls.Add(Me.rdbNumProgressiva)
+ Me.GroupBox8.Controls.Add(Me.txtCifreContatore)
+ Me.GroupBox8.Controls.Add(Me.Label34)
+ Me.GroupBox8.Controls.Add(Me.txtSuffissoCartelle)
+ Me.GroupBox8.Controls.Add(Me.Label33)
+ Me.GroupBox8.Controls.Add(Me.Label31)
+ Me.GroupBox8.Controls.Add(Me.chkCreaSottocartelle)
+ Me.GroupBox8.Controls.Add(Me.txtFilePerCartella)
+ Me.GroupBox8.Controls.Add(Me.Label32)
+ Me.GroupBox8.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox8.Location = New System.Drawing.Point(204, 113)
+ Me.GroupBox8.Name = "GroupBox8"
+ Me.GroupBox8.Size = New System.Drawing.Size(192, 152)
+ Me.GroupBox8.TabIndex = 47
+ Me.GroupBox8.TabStop = False
+ Me.GroupBox8.Text = "Sottocartelle"
+ '
+ 'rdbNumFiles
+ '
+ Me.rdbNumFiles.ForeColor = System.Drawing.Color.Black
+ Me.rdbNumFiles.Location = New System.Drawing.Point(32, 128)
+ Me.rdbNumFiles.Name = "rdbNumFiles"
+ Me.rdbNumFiles.Size = New System.Drawing.Size(136, 16)
+ Me.rdbNumFiles.TabIndex = 38
+ Me.rdbNumFiles.Text = "Numerazione files"
+ '
+ 'rdbNumProgressiva
+ '
+ Me.rdbNumProgressiva.Checked = True
+ Me.rdbNumProgressiva.ForeColor = System.Drawing.Color.Black
+ Me.rdbNumProgressiva.Location = New System.Drawing.Point(32, 112)
+ Me.rdbNumProgressiva.Name = "rdbNumProgressiva"
+ Me.rdbNumProgressiva.Size = New System.Drawing.Size(152, 16)
+ Me.rdbNumProgressiva.TabIndex = 37
+ Me.rdbNumProgressiva.TabStop = True
+ Me.rdbNumProgressiva.Text = "Numerazione progressiva"
+ '
+ 'txtCifreContatore
+ '
+ Me.txtCifreContatore.Location = New System.Drawing.Point(128, 88)
+ Me.txtCifreContatore.Name = "txtCifreContatore"
+ Me.txtCifreContatore.Size = New System.Drawing.Size(56, 20)
+ Me.txtCifreContatore.TabIndex = 34
+ Me.txtCifreContatore.Text = "4"
+ '
+ 'Label34
+ '
+ Me.Label34.ForeColor = System.Drawing.Color.Black
+ Me.Label34.Location = New System.Drawing.Point(8, 88)
+ Me.Label34.Name = "Label34"
+ Me.Label34.Size = New System.Drawing.Size(112, 16)
+ Me.Label34.TabIndex = 33
+ Me.Label34.Text = "Num. cifre contatore"
+ Me.Label34.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'txtSuffissoCartelle
+ '
+ Me.txtSuffissoCartelle.Location = New System.Drawing.Point(56, 64)
+ Me.txtSuffissoCartelle.Name = "txtSuffissoCartelle"
+ Me.txtSuffissoCartelle.Size = New System.Drawing.Size(128, 20)
+ Me.txtSuffissoCartelle.TabIndex = 32
+ Me.txtSuffissoCartelle.Text = "TextBox20"
+ '
+ 'Label33
+ '
+ Me.Label33.ForeColor = System.Drawing.Color.Black
+ Me.Label33.Location = New System.Drawing.Point(6, 67)
+ Me.Label33.Name = "Label33"
+ Me.Label33.Size = New System.Drawing.Size(48, 16)
+ Me.Label33.TabIndex = 31
+ Me.Label33.Text = "Suffisso"
+ '
+ 'Label31
+ '
+ Me.Label31.ForeColor = System.Drawing.Color.Black
+ Me.Label31.Location = New System.Drawing.Point(24, 40)
+ Me.Label31.Name = "Label31"
+ Me.Label31.Size = New System.Drawing.Size(32, 16)
+ Me.Label31.TabIndex = 30
+ Me.Label31.Text = "ogni"
+ '
+ 'chkCreaSottocartelle
+ '
+ Me.chkCreaSottocartelle.ForeColor = System.Drawing.Color.Black
+ Me.chkCreaSottocartelle.Location = New System.Drawing.Point(56, 16)
+ Me.chkCreaSottocartelle.Name = "chkCreaSottocartelle"
+ Me.chkCreaSottocartelle.Size = New System.Drawing.Size(112, 16)
+ Me.chkCreaSottocartelle.TabIndex = 29
+ Me.chkCreaSottocartelle.Text = "crea sottocartelle"
+ '
+ 'txtFilePerCartella
+ '
+ Me.txtFilePerCartella.Location = New System.Drawing.Point(56, 40)
+ Me.txtFilePerCartella.Name = "txtFilePerCartella"
+ Me.txtFilePerCartella.Size = New System.Drawing.Size(64, 20)
+ Me.txtFilePerCartella.TabIndex = 27
+ Me.txtFilePerCartella.Text = "99"
+ '
+ 'Label32
+ '
+ Me.Label32.ForeColor = System.Drawing.Color.Black
+ Me.Label32.Location = New System.Drawing.Point(128, 40)
+ Me.Label32.Name = "Label32"
+ Me.Label32.Size = New System.Drawing.Size(24, 16)
+ Me.Label32.TabIndex = 28
+ Me.Label32.Text = "file"
+ '
+ 'GroupBox7
+ '
+ Me.GroupBox7.Controls.Add(Me.chkSovrascriviFile)
+ Me.GroupBox7.Controls.Add(Me.chkRotazioneAutomatica)
+ Me.GroupBox7.Controls.Add(Me.chkForzaJpg)
+ Me.GroupBox7.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox7.Location = New System.Drawing.Point(6, 113)
+ Me.GroupBox7.Name = "GroupBox7"
+ Me.GroupBox7.Size = New System.Drawing.Size(192, 88)
+ Me.GroupBox7.TabIndex = 45
+ Me.GroupBox7.TabStop = False
+ Me.GroupBox7.Text = "Generale"
+ '
+ 'chkSovrascriviFile
+ '
+ Me.chkSovrascriviFile.AutoSize = True
+ Me.chkSovrascriviFile.Location = New System.Drawing.Point(16, 61)
+ Me.chkSovrascriviFile.Name = "chkSovrascriviFile"
+ Me.chkSovrascriviFile.Size = New System.Drawing.Size(94, 17)
+ Me.chkSovrascriviFile.TabIndex = 2
+ Me.chkSovrascriviFile.Text = "Sovrascrivi file"
+ Me.chkSovrascriviFile.UseVisualStyleBackColor = True
+ '
+ 'chkRotazioneAutomatica
+ '
+ Me.chkRotazioneAutomatica.ForeColor = System.Drawing.Color.Black
+ Me.chkRotazioneAutomatica.Location = New System.Drawing.Point(16, 39)
+ Me.chkRotazioneAutomatica.Name = "chkRotazioneAutomatica"
+ Me.chkRotazioneAutomatica.Size = New System.Drawing.Size(136, 16)
+ Me.chkRotazioneAutomatica.TabIndex = 1
+ Me.chkRotazioneAutomatica.Text = "Rotazione automatica"
+ '
+ 'chkForzaJpg
+ '
+ Me.chkForzaJpg.Checked = True
+ Me.chkForzaJpg.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.chkForzaJpg.ForeColor = System.Drawing.Color.Black
+ Me.chkForzaJpg.Location = New System.Drawing.Point(16, 18)
+ Me.chkForzaJpg.Name = "chkForzaJpg"
+ Me.chkForzaJpg.Size = New System.Drawing.Size(80, 16)
+ Me.chkForzaJpg.TabIndex = 0
+ Me.chkForzaJpg.Text = "Forza Jpg"
+ '
+ 'TabPage3
+ '
+ Me.TabPage3.Controls.Add(Me.CheckBox2)
+ Me.TabPage3.Controls.Add(Me.GroupBox10)
+ Me.TabPage3.Controls.Add(Me.GroupBox9)
+ Me.TabPage3.Controls.Add(Me.GroupBox5)
+ Me.TabPage3.Controls.Add(Me.GroupBox4)
+ Me.TabPage3.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage3.Name = "TabPage3"
+ Me.TabPage3.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage3.Size = New System.Drawing.Size(513, 351)
+ Me.TabPage3.TabIndex = 2
+ Me.TabPage3.Text = "Testo"
+ Me.TabPage3.UseVisualStyleBackColor = True
+ '
+ 'CheckBox2
+ '
+ Me.CheckBox2.AutoSize = True
+ Me.CheckBox2.Location = New System.Drawing.Point(7, 8)
+ Me.CheckBox2.Name = "CheckBox2"
+ Me.CheckBox2.Size = New System.Drawing.Size(93, 17)
+ Me.CheckBox2.TabIndex = 40
+ Me.CheckBox2.Text = "Aggiungi testo"
+ Me.CheckBox2.UseVisualStyleBackColor = True
+ '
+ 'GroupBox10
+ '
+ Me.GroupBox10.Controls.Add(Me.Label42)
+ Me.GroupBox10.Controls.Add(Me.Label41)
+ Me.GroupBox10.Controls.Add(Me.TextBox31)
+ Me.GroupBox10.Controls.Add(Me.TextBox30)
+ Me.GroupBox10.Location = New System.Drawing.Point(316, 78)
+ Me.GroupBox10.Name = "GroupBox10"
+ Me.GroupBox10.Size = New System.Drawing.Size(186, 73)
+ Me.GroupBox10.TabIndex = 39
+ Me.GroupBox10.TabStop = False
+ Me.GroupBox10.Text = "Testo foto verticali"
+ '
+ 'Label42
+ '
+ Me.Label42.AutoSize = True
+ Me.Label42.Location = New System.Drawing.Point(7, 46)
+ Me.Label42.Name = "Label42"
+ Me.Label42.Size = New System.Drawing.Size(45, 13)
+ Me.Label42.TabIndex = 3
+ Me.Label42.Text = "Margine"
+ '
+ 'Label41
+ '
+ Me.Label41.AutoSize = True
+ Me.Label41.Location = New System.Drawing.Point(7, 25)
+ Me.Label41.Name = "Label41"
+ Me.Label41.Size = New System.Drawing.Size(108, 13)
+ Me.Label41.TabIndex = 2
+ Me.Label41.Text = "Dimensione Carattere"
+ '
+ 'TextBox31
+ '
+ Me.TextBox31.Location = New System.Drawing.Point(131, 46)
+ Me.TextBox31.Name = "TextBox31"
+ Me.TextBox31.Size = New System.Drawing.Size(39, 20)
+ Me.TextBox31.TabIndex = 1
+ '
+ 'TextBox30
+ '
+ Me.TextBox30.Location = New System.Drawing.Point(131, 22)
+ Me.TextBox30.Name = "TextBox30"
+ Me.TextBox30.Size = New System.Drawing.Size(39, 20)
+ Me.TextBox30.TabIndex = 0
+ '
+ 'GroupBox9
+ '
+ Me.GroupBox9.Controls.Add(Me.CheckBox17)
+ Me.GroupBox9.Controls.Add(Me.CheckBox16)
+ Me.GroupBox9.Location = New System.Drawing.Point(316, 31)
+ Me.GroupBox9.Name = "GroupBox9"
+ Me.GroupBox9.Size = New System.Drawing.Size(186, 45)
+ Me.GroupBox9.TabIndex = 38
+ Me.GroupBox9.TabStop = False
+ Me.GroupBox9.Text = "Slide show"
+ '
+ 'CheckBox17
+ '
+ Me.CheckBox17.AutoSize = True
+ Me.CheckBox17.Location = New System.Drawing.Point(96, 18)
+ Me.CheckBox17.Name = "CheckBox17"
+ Me.CheckBox17.Size = New System.Drawing.Size(84, 17)
+ Me.CheckBox17.TabIndex = 1
+ Me.CheckBox17.Text = "Numero foto"
+ Me.CheckBox17.UseVisualStyleBackColor = True
+ '
+ 'CheckBox16
+ '
+ Me.CheckBox16.AutoSize = True
+ Me.CheckBox16.Location = New System.Drawing.Point(6, 19)
+ Me.CheckBox16.Name = "CheckBox16"
+ Me.CheckBox16.Size = New System.Drawing.Size(49, 17)
+ Me.CheckBox16.TabIndex = 0
+ Me.CheckBox16.Text = "Data"
+ Me.CheckBox16.UseVisualStyleBackColor = True
+ '
+ 'GroupBox5
+ '
+ Me.GroupBox5.Controls.Add(Me.TextBox34)
+ Me.GroupBox5.Controls.Add(Me.Button8)
+ Me.GroupBox5.Controls.Add(Me.Label36)
+ Me.GroupBox5.Controls.Add(Me.TextBox25)
+ Me.GroupBox5.Controls.Add(Me.Label35)
+ Me.GroupBox5.Controls.Add(Me.ComboBox3)
+ Me.GroupBox5.Controls.Add(Me.TextBox11)
+ Me.GroupBox5.Controls.Add(Me.Label12)
+ Me.GroupBox5.Controls.Add(Me.Label11)
+ Me.GroupBox5.Controls.Add(Me.CheckBox3)
+ Me.GroupBox5.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox5.Location = New System.Drawing.Point(6, 31)
+ Me.GroupBox5.Name = "GroupBox5"
+ Me.GroupBox5.Size = New System.Drawing.Size(304, 120)
+ Me.GroupBox5.TabIndex = 37
+ Me.GroupBox5.TabStop = False
+ Me.GroupBox5.Text = "Carattere"
+ '
+ 'TextBox34
+ '
+ Me.TextBox34.Location = New System.Drawing.Point(160, 91)
+ Me.TextBox34.Name = "TextBox34"
+ Me.TextBox34.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox34.TabIndex = 36
+ Me.TextBox34.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
+ '
+ 'Button8
+ '
+ Me.Button8.ForeColor = System.Drawing.Color.Black
+ Me.Button8.Location = New System.Drawing.Point(222, 89)
+ Me.Button8.Name = "Button8"
+ Me.Button8.Size = New System.Drawing.Size(74, 24)
+ Me.Button8.TabIndex = 35
+ Me.Button8.Text = "Scegli..."
+ '
+ 'Label36
+ '
+ Me.Label36.ForeColor = System.Drawing.Color.Black
+ Me.Label36.Location = New System.Drawing.Point(8, 60)
+ Me.Label36.Name = "Label36"
+ Me.Label36.Size = New System.Drawing.Size(120, 19)
+ Me.Label36.TabIndex = 34
+ Me.Label36.Text = "Dimensione miniatura"
+ Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'TextBox25
+ '
+ Me.TextBox25.Location = New System.Drawing.Point(160, 59)
+ Me.TextBox25.Name = "TextBox25"
+ Me.TextBox25.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox25.TabIndex = 33
+ Me.TextBox25.Text = "TextBox25"
+ '
+ 'Label35
+ '
+ Me.Label35.ForeColor = System.Drawing.Color.Black
+ Me.Label35.Location = New System.Drawing.Point(8, 93)
+ Me.Label35.Name = "Label35"
+ Me.Label35.Size = New System.Drawing.Size(72, 16)
+ Me.Label35.TabIndex = 32
+ Me.Label35.Text = "Colore RGB"
+ Me.Label35.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'ComboBox3
+ '
+ Me.ComboBox3.Location = New System.Drawing.Point(96, 8)
+ Me.ComboBox3.Name = "ComboBox3"
+ Me.ComboBox3.Size = New System.Drawing.Size(120, 21)
+ Me.ComboBox3.TabIndex = 28
+ Me.ComboBox3.Text = "ComboBox3"
+ '
+ 'TextBox11
+ '
+ Me.TextBox11.Location = New System.Drawing.Point(160, 35)
+ Me.TextBox11.Name = "TextBox11"
+ Me.TextBox11.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox11.TabIndex = 27
+ Me.TextBox11.Text = "TextBox11"
+ '
+ 'Label12
+ '
+ Me.Label12.AutoSize = True
+ Me.Label12.ForeColor = System.Drawing.Color.Black
+ Me.Label12.Location = New System.Drawing.Point(8, 38)
+ Me.Label12.Name = "Label12"
+ Me.Label12.Size = New System.Drawing.Size(62, 13)
+ Me.Label12.TabIndex = 26
+ Me.Label12.Text = "Dimensione"
+ Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label11
+ '
+ Me.Label11.AutoSize = True
+ Me.Label11.ForeColor = System.Drawing.Color.Black
+ Me.Label11.Location = New System.Drawing.Point(56, 8)
+ Me.Label11.Name = "Label11"
+ Me.Label11.Size = New System.Drawing.Size(28, 13)
+ Me.Label11.TabIndex = 22
+ Me.Label11.Text = "Font"
+ '
+ 'CheckBox3
+ '
+ Me.CheckBox3.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox3.Location = New System.Drawing.Point(224, 8)
+ Me.CheckBox3.Name = "CheckBox3"
+ Me.CheckBox3.Size = New System.Drawing.Size(72, 24)
+ Me.CheckBox3.TabIndex = 24
+ Me.CheckBox3.Text = "Grassetto"
+ '
+ 'GroupBox4
+ '
+ Me.GroupBox4.Controls.Add(Me.Label40)
+ Me.GroupBox4.Controls.Add(Me.TextBox29)
+ Me.GroupBox4.Controls.Add(Me.TextBox18)
+ Me.GroupBox4.Controls.Add(Me.Label26)
+ Me.GroupBox4.Controls.Add(Me.DateTimePicker1)
+ Me.GroupBox4.Controls.Add(Me.CheckBox8)
+ Me.GroupBox4.Controls.Add(Me.TextBox9)
+ Me.GroupBox4.Controls.Add(Me.CheckBox7)
+ Me.GroupBox4.Controls.Add(Me.Label4)
+ Me.GroupBox4.Controls.Add(Me.TextBox4)
+ Me.GroupBox4.Controls.Add(Me.Label9)
+ Me.GroupBox4.Controls.Add(Me.Label13)
+ Me.GroupBox4.Controls.Add(Me.ComboBox1)
+ Me.GroupBox4.Controls.Add(Me.ComboBox2)
+ Me.GroupBox4.Controls.Add(Me.Label14)
+ Me.GroupBox4.Controls.Add(Me.TextBox12)
+ Me.GroupBox4.Controls.Add(Me.Label15)
+ Me.GroupBox4.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox4.Location = New System.Drawing.Point(6, 157)
+ Me.GroupBox4.Name = "GroupBox4"
+ Me.GroupBox4.Size = New System.Drawing.Size(496, 186)
+ Me.GroupBox4.TabIndex = 36
+ Me.GroupBox4.TabStop = False
+ Me.GroupBox4.Text = "Testo da applicare"
+ '
+ 'Label40
+ '
+ Me.Label40.AutoSize = True
+ Me.Label40.Location = New System.Drawing.Point(8, 52)
+ Me.Label40.Name = "Label40"
+ Me.Label40.Size = New System.Drawing.Size(48, 13)
+ Me.Label40.TabIndex = 40
+ Me.Label40.Text = "Verticale"
+ '
+ 'TextBox29
+ '
+ Me.TextBox29.Location = New System.Drawing.Point(72, 49)
+ Me.TextBox29.Multiline = True
+ Me.TextBox29.Name = "TextBox29"
+ Me.TextBox29.Size = New System.Drawing.Size(408, 44)
+ Me.TextBox29.TabIndex = 39
+ '
+ 'TextBox18
+ '
+ Me.TextBox18.Location = New System.Drawing.Point(232, 156)
+ Me.TextBox18.Name = "TextBox18"
+ Me.TextBox18.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox18.TabIndex = 38
+ '
+ 'Label26
+ '
+ Me.Label26.AutoSize = True
+ Me.Label26.ForeColor = System.Drawing.Color.Black
+ Me.Label26.Location = New System.Drawing.Point(344, 156)
+ Me.Label26.Name = "Label26"
+ Me.Label26.Size = New System.Drawing.Size(48, 13)
+ Me.Label26.TabIndex = 37
+ Me.Label26.Text = "partenza"
+ '
+ 'DateTimePicker1
+ '
+ Me.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Time
+ Me.DateTimePicker1.Location = New System.Drawing.Point(392, 156)
+ Me.DateTimePicker1.Name = "DateTimePicker1"
+ Me.DateTimePicker1.Size = New System.Drawing.Size(88, 20)
+ Me.DateTimePicker1.TabIndex = 36
+ '
+ 'CheckBox8
+ '
+ Me.CheckBox8.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox8.Location = New System.Drawing.Point(72, 156)
+ Me.CheckBox8.Name = "CheckBox8"
+ Me.CheckBox8.Size = New System.Drawing.Size(56, 16)
+ Me.CheckBox8.TabIndex = 35
+ Me.CheckBox8.Text = "Orario"
+ '
+ 'TextBox9
+ '
+ Me.TextBox9.Location = New System.Drawing.Point(120, 108)
+ Me.TextBox9.Name = "TextBox9"
+ Me.TextBox9.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox9.TabIndex = 20
+ Me.TextBox9.Text = "TextBox9"
+ '
+ 'CheckBox7
+ '
+ Me.CheckBox7.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox7.Location = New System.Drawing.Point(136, 156)
+ Me.CheckBox7.Name = "CheckBox7"
+ Me.CheckBox7.Size = New System.Drawing.Size(88, 16)
+ Me.CheckBox7.TabIndex = 34
+ Me.CheckBox7.Text = "Tempo gara"
+ '
+ 'Label4
+ '
+ Me.Label4.AutoSize = True
+ Me.Label4.ForeColor = System.Drawing.Color.Black
+ Me.Label4.Location = New System.Drawing.Point(8, 24)
+ Me.Label4.Name = "Label4"
+ Me.Label4.Size = New System.Drawing.Size(59, 13)
+ Me.Label4.TabIndex = 9
+ Me.Label4.Text = "Orizzontale"
+ '
+ 'TextBox4
+ '
+ Me.TextBox4.Location = New System.Drawing.Point(72, 24)
+ Me.TextBox4.Name = "TextBox4"
+ Me.TextBox4.Size = New System.Drawing.Size(408, 20)
+ Me.TextBox4.TabIndex = 8
+ Me.TextBox4.Text = "TextBox4"
+ '
+ 'Label9
+ '
+ Me.Label9.AutoSize = True
+ Me.Label9.ForeColor = System.Drawing.Color.Black
+ Me.Label9.Location = New System.Drawing.Point(8, 108)
+ Me.Label9.Name = "Label9"
+ Me.Label9.Size = New System.Drawing.Size(110, 13)
+ Me.Label9.TabIndex = 19
+ Me.Label9.Text = "Trasparenza (0-100%)"
+ '
+ 'Label13
+ '
+ Me.Label13.AutoSize = True
+ Me.Label13.ForeColor = System.Drawing.Color.Black
+ Me.Label13.Location = New System.Drawing.Point(16, 132)
+ Me.Label13.Name = "Label13"
+ Me.Label13.Size = New System.Drawing.Size(52, 13)
+ Me.Label13.TabIndex = 29
+ Me.Label13.Text = "Posizione"
+ '
+ 'ComboBox1
+ '
+ Me.ComboBox1.Location = New System.Drawing.Point(72, 132)
+ Me.ComboBox1.Name = "ComboBox1"
+ Me.ComboBox1.Size = New System.Drawing.Size(104, 21)
+ Me.ComboBox1.TabIndex = 28
+ Me.ComboBox1.Text = "ComboBox1"
+ '
+ 'ComboBox2
+ '
+ Me.ComboBox2.Location = New System.Drawing.Point(376, 132)
+ Me.ComboBox2.Name = "ComboBox2"
+ Me.ComboBox2.Size = New System.Drawing.Size(104, 21)
+ Me.ComboBox2.TabIndex = 31
+ Me.ComboBox2.Text = "ComboBox2"
+ '
+ 'Label14
+ '
+ Me.Label14.AutoSize = True
+ Me.Label14.ForeColor = System.Drawing.Color.Black
+ Me.Label14.Location = New System.Drawing.Point(304, 132)
+ Me.Label14.Name = "Label14"
+ Me.Label14.Size = New System.Drawing.Size(67, 13)
+ Me.Label14.TabIndex = 30
+ Me.Label14.Text = "Allineamento"
+ '
+ 'TextBox12
+ '
+ Me.TextBox12.Location = New System.Drawing.Point(376, 108)
+ Me.TextBox12.Name = "TextBox12"
+ Me.TextBox12.Size = New System.Drawing.Size(104, 20)
+ Me.TextBox12.TabIndex = 33
+ Me.TextBox12.Text = "TextBox12"
+ '
+ 'Label15
+ '
+ Me.Label15.AutoSize = True
+ Me.Label15.ForeColor = System.Drawing.Color.Black
+ Me.Label15.Location = New System.Drawing.Point(296, 108)
+ Me.Label15.Name = "Label15"
+ Me.Label15.Size = New System.Drawing.Size(75, 13)
+ Me.Label15.TabIndex = 32
+ Me.Label15.Text = "Margine (pixel)"
+ '
+ 'TabPage2
+ '
+ Me.TabPage2.Controls.Add(Me.GroupBox2)
+ Me.TabPage2.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage2.Name = "TabPage2"
+ Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage2.Size = New System.Drawing.Size(513, 351)
+ Me.TabPage2.TabIndex = 5
+ Me.TabPage2.Text = "Foto"
+ Me.TabPage2.UseVisualStyleBackColor = True
+ '
+ 'GroupBox2
+ '
+ Me.GroupBox2.Controls.Add(Me.Label45)
+ Me.GroupBox2.Controls.Add(Me.TextBox32)
+ Me.GroupBox2.Controls.Add(Me.TextBox26)
+ Me.GroupBox2.Controls.Add(Me.Label37)
+ Me.GroupBox2.Controls.Add(Me.Label38)
+ Me.GroupBox2.Controls.Add(Me.TextBox27)
+ Me.GroupBox2.Controls.Add(Me.Label39)
+ Me.GroupBox2.Controls.Add(Me.TextBox28)
+ Me.GroupBox2.Controls.Add(Me.CheckBox15)
+ Me.GroupBox2.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox2.Location = New System.Drawing.Point(3, 6)
+ Me.GroupBox2.Name = "GroupBox2"
+ Me.GroupBox2.Size = New System.Drawing.Size(304, 156)
+ Me.GroupBox2.TabIndex = 36
+ Me.GroupBox2.TabStop = False
+ Me.GroupBox2.Text = "Foto grande"
+ '
+ 'Label45
+ '
+ Me.Label45.AutoSize = True
+ Me.Label45.Location = New System.Drawing.Point(11, 86)
+ Me.Label45.Name = "Label45"
+ Me.Label45.Size = New System.Drawing.Size(40, 13)
+ Me.Label45.TabIndex = 22
+ Me.Label45.Text = "Qualità "
+ '
+ 'TextBox32
+ '
+ Me.TextBox32.Location = New System.Drawing.Point(72, 80)
+ Me.TextBox32.Name = "TextBox32"
+ Me.TextBox32.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox32.TabIndex = 21
+ Me.TextBox32.Text = "100"
+ '
+ 'TextBox26
+ '
+ Me.TextBox26.Location = New System.Drawing.Point(224, 48)
+ Me.TextBox26.Name = "TextBox26"
+ Me.TextBox26.Size = New System.Drawing.Size(56, 20)
+ Me.TextBox26.TabIndex = 20
+ Me.TextBox26.Text = "TextBox26"
+ '
+ 'Label37
+ '
+ Me.Label37.ForeColor = System.Drawing.Color.Black
+ Me.Label37.Location = New System.Drawing.Point(168, 48)
+ Me.Label37.Name = "Label37"
+ Me.Label37.Size = New System.Drawing.Size(48, 16)
+ Me.Label37.TabIndex = 19
+ Me.Label37.Text = "Suffisso"
+ Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'Label38
+ '
+ Me.Label38.AutoSize = True
+ Me.Label38.ForeColor = System.Drawing.Color.Black
+ Me.Label38.Location = New System.Drawing.Point(24, 24)
+ Me.Label38.Name = "Label38"
+ Me.Label38.Size = New System.Drawing.Size(41, 13)
+ Me.Label38.TabIndex = 16
+ Me.Label38.Text = "Altezza"
+ '
+ 'TextBox27
+ '
+ Me.TextBox27.Location = New System.Drawing.Point(72, 24)
+ Me.TextBox27.Name = "TextBox27"
+ Me.TextBox27.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox27.TabIndex = 14
+ Me.TextBox27.Text = "TextBox27"
+ '
+ 'Label39
+ '
+ Me.Label39.AutoSize = True
+ Me.Label39.ForeColor = System.Drawing.Color.Black
+ Me.Label39.Location = New System.Drawing.Point(8, 48)
+ Me.Label39.Name = "Label39"
+ Me.Label39.Size = New System.Drawing.Size(56, 13)
+ Me.Label39.TabIndex = 17
+ Me.Label39.Text = "Larghezza"
+ '
+ 'TextBox28
+ '
+ Me.TextBox28.Location = New System.Drawing.Point(72, 48)
+ Me.TextBox28.Name = "TextBox28"
+ Me.TextBox28.Size = New System.Drawing.Size(72, 20)
+ Me.TextBox28.TabIndex = 15
+ Me.TextBox28.Text = "TextBox28"
+ '
+ 'CheckBox15
+ '
+ Me.CheckBox15.Checked = True
+ Me.CheckBox15.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.CheckBox15.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox15.Location = New System.Drawing.Point(168, 16)
+ Me.CheckBox15.Name = "CheckBox15"
+ Me.CheckBox15.Size = New System.Drawing.Size(120, 32)
+ Me.CheckBox15.TabIndex = 18
+ Me.CheckBox15.Text = "Mantieni dimensioni originali"
+ '
+ 'TabPage1
+ '
+ Me.TabPage1.Controls.Add(Me.Panel1)
+ Me.TabPage1.Controls.Add(Me.GroupBox1)
+ Me.TabPage1.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage1.Name = "TabPage1"
+ Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage1.Size = New System.Drawing.Size(513, 351)
+ Me.TabPage1.TabIndex = 0
+ Me.TabPage1.Text = "Miniature"
+ Me.TabPage1.UseVisualStyleBackColor = True
+ '
+ 'Panel1
+ '
+ Me.Panel1.Controls.Add(Me.CheckBox18)
+ Me.Panel1.Controls.Add(Me.CheckBox4)
+ Me.Panel1.Controls.Add(Me.CheckBox12)
+ Me.Panel1.Location = New System.Drawing.Point(52, 236)
+ Me.Panel1.Name = "Panel1"
+ Me.Panel1.Size = New System.Drawing.Size(304, 73)
+ Me.Panel1.TabIndex = 26
+ Me.Panel1.Visible = False
+ '
+ 'CheckBox18
+ '
+ Me.CheckBox18.AutoSize = True
+ Me.CheckBox18.Location = New System.Drawing.Point(140, 3)
+ Me.CheckBox18.Name = "CheckBox18"
+ Me.CheckBox18.Size = New System.Drawing.Size(84, 17)
+ Me.CheckBox18.TabIndex = 36
+ Me.CheckBox18.Text = "Numero foto"
+ Me.CheckBox18.UseVisualStyleBackColor = True
+ '
+ 'CheckBox4
+ '
+ Me.CheckBox4.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox4.Location = New System.Drawing.Point(10, 3)
+ Me.CheckBox4.Name = "CheckBox4"
+ Me.CheckBox4.Size = New System.Drawing.Size(104, 17)
+ Me.CheckBox4.TabIndex = 34
+ Me.CheckBox4.Text = "Aggiungi scritta"
+ '
+ 'CheckBox12
+ '
+ Me.CheckBox12.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox12.Location = New System.Drawing.Point(10, 19)
+ Me.CheckBox12.Name = "CheckBox12"
+ Me.CheckBox12.Size = New System.Drawing.Size(104, 21)
+ Me.CheckBox12.TabIndex = 35
+ Me.CheckBox12.Text = "Aggiungi orario"
+ '
+ 'GroupBox1
+ '
+ Me.GroupBox1.Controls.Add(Me.Label46)
+ Me.GroupBox1.Controls.Add(Me.TextBox33)
+ Me.GroupBox1.Controls.Add(Me.Panel2)
+ Me.GroupBox1.Controls.Add(Me.Label5)
+ Me.GroupBox1.Controls.Add(Me.TextBox5)
+ Me.GroupBox1.Controls.Add(Me.Label6)
+ Me.GroupBox1.Controls.Add(Me.TextBox6)
+ Me.GroupBox1.Controls.Add(Me.Label3)
+ Me.GroupBox1.Controls.Add(Me.TextBox3)
+ Me.GroupBox1.Controls.Add(Me.CheckBox1)
+ Me.GroupBox1.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox1.Location = New System.Drawing.Point(6, 5)
+ Me.GroupBox1.Name = "GroupBox1"
+ Me.GroupBox1.Size = New System.Drawing.Size(350, 210)
+ Me.GroupBox1.TabIndex = 25
+ Me.GroupBox1.TabStop = False
+ Me.GroupBox1.Text = "Miniature"
+ '
+ 'Label46
+ '
+ Me.Label46.AutoSize = True
+ Me.Label46.Location = New System.Drawing.Point(198, 43)
+ Me.Label46.Name = "Label46"
+ Me.Label46.Size = New System.Drawing.Size(40, 13)
+ Me.Label46.TabIndex = 21
+ Me.Label46.Text = "Qualità "
+ '
+ 'TextBox33
+ '
+ Me.TextBox33.Location = New System.Drawing.Point(244, 40)
+ Me.TextBox33.Name = "TextBox33"
+ Me.TextBox33.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox33.TabIndex = 20
+ '
+ 'Panel2
+ '
+ Me.Panel2.Controls.Add(Me.RadioButton3)
+ Me.Panel2.Controls.Add(Me.RadioButton7)
+ Me.Panel2.Controls.Add(Me.RadioButton4)
+ Me.Panel2.Controls.Add(Me.RadioButton6)
+ Me.Panel2.Controls.Add(Me.RadioButton5)
+ Me.Panel2.Location = New System.Drawing.Point(56, 114)
+ Me.Panel2.Name = "Panel2"
+ Me.Panel2.Size = New System.Drawing.Size(235, 90)
+ Me.Panel2.TabIndex = 19
+ '
+ 'RadioButton3
+ '
+ Me.RadioButton3.AutoSize = True
+ Me.RadioButton3.Location = New System.Drawing.Point(15, 16)
+ Me.RadioButton3.Name = "RadioButton3"
+ Me.RadioButton3.Size = New System.Drawing.Size(99, 17)
+ Me.RadioButton3.TabIndex = 14
+ Me.RadioButton3.TabStop = True
+ Me.RadioButton3.Text = "Aggiungi Scritta"
+ Me.RadioButton3.UseVisualStyleBackColor = True
+ '
+ 'RadioButton7
+ '
+ Me.RadioButton7.AutoSize = True
+ Me.RadioButton7.Location = New System.Drawing.Point(129, 40)
+ Me.RadioButton7.Name = "RadioButton7"
+ Me.RadioButton7.Size = New System.Drawing.Size(95, 17)
+ Me.RadioButton7.TabIndex = 18
+ Me.RadioButton7.TabStop = True
+ Me.RadioButton7.Text = "numero+tempo"
+ Me.RadioButton7.UseVisualStyleBackColor = True
+ '
+ 'RadioButton4
+ '
+ Me.RadioButton4.AutoSize = True
+ Me.RadioButton4.Location = New System.Drawing.Point(15, 40)
+ Me.RadioButton4.Name = "RadioButton4"
+ Me.RadioButton4.Size = New System.Drawing.Size(95, 17)
+ Me.RadioButton4.TabIndex = 15
+ Me.RadioButton4.TabStop = True
+ Me.RadioButton4.Text = "Aggiungi orario"
+ Me.RadioButton4.UseVisualStyleBackColor = True
+ '
+ 'RadioButton6
+ '
+ Me.RadioButton6.AutoSize = True
+ Me.RadioButton6.Location = New System.Drawing.Point(129, 16)
+ Me.RadioButton6.Name = "RadioButton6"
+ Me.RadioButton6.Size = New System.Drawing.Size(83, 17)
+ Me.RadioButton6.TabIndex = 17
+ Me.RadioButton6.TabStop = True
+ Me.RadioButton6.Text = "Numero foto"
+ Me.RadioButton6.UseVisualStyleBackColor = True
+ '
+ 'RadioButton5
+ '
+ Me.RadioButton5.AutoSize = True
+ Me.RadioButton5.Location = New System.Drawing.Point(15, 65)
+ Me.RadioButton5.Name = "RadioButton5"
+ Me.RadioButton5.Size = New System.Drawing.Size(84, 17)
+ Me.RadioButton5.TabIndex = 16
+ Me.RadioButton5.TabStop = True
+ Me.RadioButton5.Text = "Tempo Gara"
+ Me.RadioButton5.UseVisualStyleBackColor = True
+ '
+ 'Label5
+ '
+ Me.Label5.AutoSize = True
+ Me.Label5.ForeColor = System.Drawing.Color.Black
+ Me.Label5.Location = New System.Drawing.Point(24, 88)
+ Me.Label5.Name = "Label5"
+ Me.Label5.Size = New System.Drawing.Size(41, 13)
+ Me.Label5.TabIndex = 12
+ Me.Label5.Text = "Altezza"
+ '
+ 'TextBox5
+ '
+ Me.TextBox5.Location = New System.Drawing.Point(72, 64)
+ Me.TextBox5.Name = "TextBox5"
+ Me.TextBox5.Size = New System.Drawing.Size(88, 20)
+ Me.TextBox5.TabIndex = 10
+ Me.TextBox5.Text = "TextBox5"
+ '
+ 'Label6
+ '
+ Me.Label6.AutoSize = True
+ Me.Label6.ForeColor = System.Drawing.Color.Black
+ Me.Label6.Location = New System.Drawing.Point(8, 64)
+ Me.Label6.Name = "Label6"
+ Me.Label6.Size = New System.Drawing.Size(56, 13)
+ Me.Label6.TabIndex = 13
+ Me.Label6.Text = "Larghezza"
+ '
+ 'TextBox6
+ '
+ Me.TextBox6.Location = New System.Drawing.Point(72, 88)
+ Me.TextBox6.Name = "TextBox6"
+ Me.TextBox6.Size = New System.Drawing.Size(88, 20)
+ Me.TextBox6.TabIndex = 11
+ Me.TextBox6.Text = "TextBox6"
+ '
+ 'Label3
+ '
+ Me.Label3.AutoSize = True
+ Me.Label3.ForeColor = System.Drawing.Color.Black
+ Me.Label3.Location = New System.Drawing.Point(24, 40)
+ Me.Label3.Name = "Label3"
+ Me.Label3.Size = New System.Drawing.Size(44, 13)
+ Me.Label3.TabIndex = 7
+ Me.Label3.Text = "Suffisso"
+ '
+ 'TextBox3
+ '
+ Me.TextBox3.Location = New System.Drawing.Point(72, 40)
+ Me.TextBox3.Name = "TextBox3"
+ Me.TextBox3.Size = New System.Drawing.Size(88, 20)
+ Me.TextBox3.TabIndex = 6
+ Me.TextBox3.Text = "TextBox3"
+ '
+ 'CheckBox1
+ '
+ Me.CheckBox1.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox1.Location = New System.Drawing.Point(72, 16)
+ Me.CheckBox1.Name = "CheckBox1"
+ Me.CheckBox1.Size = New System.Drawing.Size(104, 24)
+ Me.CheckBox1.TabIndex = 5
+ Me.CheckBox1.Text = "Crea miniature"
+ '
+ 'TabPage4
+ '
+ Me.TabPage4.Controls.Add(Me.GroupBox6)
+ Me.TabPage4.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage4.Name = "TabPage4"
+ Me.TabPage4.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage4.Size = New System.Drawing.Size(513, 351)
+ Me.TabPage4.TabIndex = 3
+ Me.TabPage4.Text = "Logo"
+ Me.TabPage4.UseVisualStyleBackColor = True
+ '
+ 'GroupBox6
+ '
+ Me.GroupBox6.Controls.Add(Me.PictureBox2)
+ Me.GroupBox6.Controls.Add(Me.PictureBox1)
+ Me.GroupBox6.Controls.Add(Me.ComboBox5)
+ Me.GroupBox6.Controls.Add(Me.ComboBox4)
+ Me.GroupBox6.Controls.Add(Me.TextBox19)
+ Me.GroupBox6.Controls.Add(Me.Label28)
+ Me.GroupBox6.Controls.Add(Me.CheckBox5)
+ Me.GroupBox6.Controls.Add(Me.TextBox15)
+ Me.GroupBox6.Controls.Add(Me.TextBox14)
+ Me.GroupBox6.Controls.Add(Me.Label25)
+ Me.GroupBox6.Controls.Add(Me.TextBox16)
+ Me.GroupBox6.Controls.Add(Me.Label24)
+ Me.GroupBox6.Controls.Add(Me.Label22)
+ Me.GroupBox6.Controls.Add(Me.Label23)
+ Me.GroupBox6.Controls.Add(Me.Button4)
+ Me.GroupBox6.Controls.Add(Me.TextBox10)
+ Me.GroupBox6.Controls.Add(Me.Label29)
+ Me.GroupBox6.Controls.Add(Me.Label30)
+ Me.GroupBox6.Controls.Add(Me.PictureBox3)
+ Me.GroupBox6.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.GroupBox6.Location = New System.Drawing.Point(6, 6)
+ Me.GroupBox6.Name = "GroupBox6"
+ Me.GroupBox6.Size = New System.Drawing.Size(496, 224)
+ Me.GroupBox6.TabIndex = 42
+ Me.GroupBox6.TabStop = False
+ Me.GroupBox6.Text = "Logo"
+ '
+ 'PictureBox2
+ '
+ Me.PictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+ Me.PictureBox2.Location = New System.Drawing.Point(144, 192)
+ Me.PictureBox2.Name = "PictureBox2"
+ Me.PictureBox2.Size = New System.Drawing.Size(24, 24)
+ Me.PictureBox2.TabIndex = 44
+ Me.PictureBox2.TabStop = False
+ Me.PictureBox2.Visible = False
+ '
+ 'PictureBox1
+ '
+ Me.PictureBox1.Cursor = System.Windows.Forms.Cursors.Cross
+ Me.PictureBox1.Location = New System.Drawing.Point(256, 56)
+ Me.PictureBox1.Name = "PictureBox1"
+ Me.PictureBox1.Size = New System.Drawing.Size(224, 160)
+ Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
+ Me.PictureBox1.TabIndex = 43
+ Me.PictureBox1.TabStop = False
+ '
+ 'ComboBox5
+ '
+ Me.ComboBox5.Location = New System.Drawing.Point(144, 168)
+ Me.ComboBox5.Name = "ComboBox5"
+ Me.ComboBox5.Size = New System.Drawing.Size(96, 21)
+ Me.ComboBox5.TabIndex = 42
+ Me.ComboBox5.Text = "ComboBox5"
+ '
+ 'ComboBox4
+ '
+ Me.ComboBox4.Location = New System.Drawing.Point(144, 144)
+ Me.ComboBox4.Name = "ComboBox4"
+ Me.ComboBox4.Size = New System.Drawing.Size(96, 21)
+ Me.ComboBox4.TabIndex = 41
+ Me.ComboBox4.Text = "ComboBox4"
+ '
+ 'TextBox19
+ '
+ Me.TextBox19.Location = New System.Drawing.Point(144, 96)
+ Me.TextBox19.Name = "TextBox19"
+ Me.TextBox19.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox19.TabIndex = 40
+ Me.TextBox19.Text = "TextBox19"
+ '
+ 'Label28
+ '
+ Me.Label28.ForeColor = System.Drawing.Color.Black
+ Me.Label28.Location = New System.Drawing.Point(17, 97)
+ Me.Label28.Name = "Label28"
+ Me.Label28.Size = New System.Drawing.Size(120, 16)
+ Me.Label28.TabIndex = 39
+ Me.Label28.Text = "Trasparenza (0-100%)"
+ Me.Label28.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'CheckBox5
+ '
+ Me.CheckBox5.ForeColor = System.Drawing.Color.Black
+ Me.CheckBox5.Location = New System.Drawing.Point(0, 26)
+ Me.CheckBox5.Name = "CheckBox5"
+ Me.CheckBox5.Size = New System.Drawing.Size(72, 20)
+ Me.CheckBox5.TabIndex = 38
+ Me.CheckBox5.Text = "Aggiungi"
+ '
+ 'TextBox15
+ '
+ Me.TextBox15.Location = New System.Drawing.Point(144, 72)
+ Me.TextBox15.Name = "TextBox15"
+ Me.TextBox15.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox15.TabIndex = 19
+ Me.TextBox15.Text = "TextBox15"
+ '
+ 'TextBox14
+ '
+ Me.TextBox14.Location = New System.Drawing.Point(144, 48)
+ Me.TextBox14.Name = "TextBox14"
+ Me.TextBox14.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox14.TabIndex = 18
+ Me.TextBox14.Text = "TextBox14"
+ '
+ 'Label25
+ '
+ Me.Label25.AutoSize = True
+ Me.Label25.ForeColor = System.Drawing.Color.Black
+ Me.Label25.Location = New System.Drawing.Point(17, 168)
+ Me.Label25.Name = "Label25"
+ Me.Label25.Size = New System.Drawing.Size(95, 13)
+ Me.Label25.TabIndex = 36
+ Me.Label25.Text = "Posizione verticale"
+ Me.Label25.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'TextBox16
+ '
+ Me.TextBox16.Location = New System.Drawing.Point(144, 120)
+ Me.TextBox16.Name = "TextBox16"
+ Me.TextBox16.Size = New System.Drawing.Size(96, 20)
+ Me.TextBox16.TabIndex = 35
+ Me.TextBox16.Text = "TextBox16"
+ '
+ 'Label24
+ '
+ Me.Label24.AutoSize = True
+ Me.Label24.ForeColor = System.Drawing.Color.Black
+ Me.Label24.Location = New System.Drawing.Point(19, 123)
+ Me.Label24.Name = "Label24"
+ Me.Label24.Size = New System.Drawing.Size(88, 13)
+ Me.Label24.TabIndex = 34
+ Me.Label24.Text = "Margine (pixel/%)"
+ Me.Label24.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label22
+ '
+ Me.Label22.AutoSize = True
+ Me.Label22.ForeColor = System.Drawing.Color.Black
+ Me.Label22.Location = New System.Drawing.Point(19, 51)
+ Me.Label22.Name = "Label22"
+ Me.Label22.Size = New System.Drawing.Size(41, 13)
+ Me.Label22.TabIndex = 20
+ Me.Label22.Text = "Altezza"
+ Me.Label22.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label23
+ '
+ Me.Label23.AutoSize = True
+ Me.Label23.ForeColor = System.Drawing.Color.Black
+ Me.Label23.Location = New System.Drawing.Point(19, 75)
+ Me.Label23.Name = "Label23"
+ Me.Label23.Size = New System.Drawing.Size(56, 13)
+ Me.Label23.TabIndex = 21
+ Me.Label23.Text = "Larghezza"
+ Me.Label23.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Button4
+ '
+ Me.Button4.Location = New System.Drawing.Point(464, 24)
+ Me.Button4.Name = "Button4"
+ Me.Button4.Size = New System.Drawing.Size(24, 20)
+ Me.Button4.TabIndex = 8
+ Me.Button4.Text = "..."
+ '
+ 'TextBox10
+ '
+ Me.TextBox10.Location = New System.Drawing.Point(144, 24)
+ Me.TextBox10.Name = "TextBox10"
+ Me.TextBox10.Size = New System.Drawing.Size(312, 20)
+ Me.TextBox10.TabIndex = 6
+ Me.TextBox10.Text = "TextBox10"
+ '
+ 'Label29
+ '
+ Me.Label29.AutoSize = True
+ Me.Label29.ForeColor = System.Drawing.Color.Black
+ Me.Label29.Location = New System.Drawing.Point(17, 147)
+ Me.Label29.Name = "Label29"
+ Me.Label29.Size = New System.Drawing.Size(105, 13)
+ Me.Label29.TabIndex = 36
+ Me.Label29.Text = "Posizione orizzontale"
+ Me.Label29.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ '
+ 'Label30
+ '
+ Me.Label30.AutoSize = True
+ Me.Label30.ForeColor = System.Drawing.Color.Black
+ Me.Label30.Location = New System.Drawing.Point(19, 203)
+ Me.Label30.Name = "Label30"
+ Me.Label30.Size = New System.Drawing.Size(93, 13)
+ Me.Label30.TabIndex = 36
+ Me.Label30.Text = "Colore trasparente"
+ Me.Label30.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+ Me.Label30.Visible = False
+ '
+ 'PictureBox3
+ '
+ Me.PictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+ Me.PictureBox3.Location = New System.Drawing.Point(216, 192)
+ Me.PictureBox3.Name = "PictureBox3"
+ Me.PictureBox3.Size = New System.Drawing.Size(24, 24)
+ Me.PictureBox3.TabIndex = 44
+ Me.PictureBox3.TabStop = False
+ Me.PictureBox3.Visible = False
+ '
+ 'Label27
+ '
+ Me.Label27.Location = New System.Drawing.Point(591, 378)
+ Me.Label27.Name = "Label27"
+ Me.Label27.Size = New System.Drawing.Size(140, 20)
+ Me.Label27.TabIndex = 62
+ Me.Label27.Text = "Versione 2.0 BETA 5"
+ Me.Label27.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ '
+ 'Button7
+ '
+ Me.Button7.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button7.Location = New System.Drawing.Point(539, 120)
+ Me.Button7.Name = "Button7"
+ Me.Button7.Size = New System.Drawing.Size(192, 40)
+ Me.Button7.TabIndex = 61
+ Me.Button7.Text = "stop creazione"
+ '
+ 'Button5
+ '
+ Me.Button5.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button5.Location = New System.Drawing.Point(539, 43)
+ Me.Button5.Name = "Button5"
+ Me.Button5.Size = New System.Drawing.Size(192, 32)
+ Me.Button5.TabIndex = 60
+ Me.Button5.Text = "Salva impostazioni"
+ '
+ 'Label20
+ '
+ Me.Label20.AutoSize = True
+ Me.Label20.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label20.Location = New System.Drawing.Point(539, 294)
+ Me.Label20.Name = "Label20"
+ Me.Label20.Size = New System.Drawing.Size(104, 16)
+ Me.Label20.TabIndex = 59
+ Me.Label20.Text = "foto generate:"
+ '
+ 'Label19
+ '
+ Me.Label19.AutoSize = True
+ Me.Label19.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label19.Location = New System.Drawing.Point(539, 275)
+ Me.Label19.Name = "Label19"
+ Me.Label19.Size = New System.Drawing.Size(80, 16)
+ Me.Label19.TabIndex = 58
+ Me.Label19.Text = "foto totali: "
+ '
+ 'Label18
+ '
+ Me.Label18.AutoSize = True
+ Me.Label18.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label18.Location = New System.Drawing.Point(643, 294)
+ Me.Label18.Name = "Label18"
+ Me.Label18.Size = New System.Drawing.Size(19, 20)
+ Me.Label18.TabIndex = 57
+ Me.Label18.Text = "0"
+ '
+ 'lblFotoTotaliNum
+ '
+ Me.lblFotoTotaliNum.AutoSize = True
+ Me.lblFotoTotaliNum.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.lblFotoTotaliNum.Location = New System.Drawing.Point(643, 275)
+ Me.lblFotoTotaliNum.Name = "lblFotoTotaliNum"
+ Me.lblFotoTotaliNum.Size = New System.Drawing.Size(19, 20)
+ Me.lblFotoTotaliNum.TabIndex = 56
+ Me.lblFotoTotaliNum.Text = "0"
+ '
+ 'Label10
+ '
+ Me.Label10.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Label10.Location = New System.Drawing.Point(539, 163)
+ Me.Label10.Name = "Label10"
+ Me.Label10.Size = New System.Drawing.Size(192, 72)
+ Me.Label10.TabIndex = 55
+ Me.Label10.Text = "file"
+ '
+ 'btnCreaCatalogo
+ '
+ Me.btnCreaCatalogo.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.btnCreaCatalogo.Location = New System.Drawing.Point(539, 77)
+ Me.btnCreaCatalogo.Name = "btnCreaCatalogo"
+ Me.btnCreaCatalogo.Size = New System.Drawing.Size(192, 39)
+ Me.btnCreaCatalogo.TabIndex = 53
+ Me.btnCreaCatalogo.Text = "crea catalogo"
+ '
+ 'Button6
+ '
+ Me.Button6.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Button6.Location = New System.Drawing.Point(539, 12)
+ Me.Button6.Name = "Button6"
+ Me.Button6.Size = New System.Drawing.Size(192, 32)
+ Me.Button6.TabIndex = 54
+ Me.Button6.Text = "Carica impostazioni"
+ '
+ 'MainForm
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(739, 401)
+ Me.Controls.Add(Me.ProgressBar1)
+ Me.Controls.Add(Me.CheckBox22)
+ Me.Controls.Add(Me.Label43)
+ Me.Controls.Add(Me.TabControl1)
+ Me.Controls.Add(Me.Label27)
+ Me.Controls.Add(Me.Button7)
+ Me.Controls.Add(Me.Button5)
+ Me.Controls.Add(Me.Label20)
+ Me.Controls.Add(Me.Label19)
+ Me.Controls.Add(Me.Label18)
+ Me.Controls.Add(Me.lblFotoTotaliNum)
+ Me.Controls.Add(Me.Label10)
+ Me.Controls.Add(Me.btnCreaCatalogo)
+ Me.Controls.Add(Me.Button6)
+ Me.MaximizeBox = False
+ Me.Name = "MainForm"
+ Me.Text = "Image Catalog"
+ Me.TabControl1.ResumeLayout(False)
+ Me.TabPage5.ResumeLayout(False)
+ Me.GroupBox11.ResumeLayout(False)
+ Me.GroupBox11.PerformLayout()
+ Me.Panel3.ResumeLayout(False)
+ Me.Panel3.PerformLayout()
+ Me.GroupBox3.ResumeLayout(False)
+ Me.GroupBox3.PerformLayout()
+ Me.GroupBox8.ResumeLayout(False)
+ Me.GroupBox8.PerformLayout()
+ Me.GroupBox7.ResumeLayout(False)
+ Me.GroupBox7.PerformLayout()
+ Me.TabPage3.ResumeLayout(False)
+ Me.TabPage3.PerformLayout()
+ Me.GroupBox10.ResumeLayout(False)
+ Me.GroupBox10.PerformLayout()
+ Me.GroupBox9.ResumeLayout(False)
+ Me.GroupBox9.PerformLayout()
+ Me.GroupBox5.ResumeLayout(False)
+ Me.GroupBox5.PerformLayout()
+ Me.GroupBox4.ResumeLayout(False)
+ Me.GroupBox4.PerformLayout()
+ Me.TabPage2.ResumeLayout(False)
+ Me.GroupBox2.ResumeLayout(False)
+ Me.GroupBox2.PerformLayout()
+ Me.TabPage1.ResumeLayout(False)
+ Me.Panel1.ResumeLayout(False)
+ Me.Panel1.PerformLayout()
+ Me.GroupBox1.ResumeLayout(False)
+ Me.GroupBox1.PerformLayout()
+ Me.Panel2.ResumeLayout(False)
+ Me.Panel2.PerformLayout()
+ Me.TabPage4.ResumeLayout(False)
+ Me.GroupBox6.ResumeLayout(False)
+ Me.GroupBox6.PerformLayout()
+ CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+ Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
+ Friend WithEvents CheckBox22 As System.Windows.Forms.CheckBox
+ Friend WithEvents Label43 As System.Windows.Forms.Label
+ Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
+ Friend WithEvents TabPage5 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox
+ Friend WithEvents chkAggiornaSottodirectory As System.Windows.Forms.CheckBox
+ Friend WithEvents Button3 As System.Windows.Forms.Button
+ Friend WithEvents Button2 As System.Windows.Forms.Button
+ Friend WithEvents Label1 As System.Windows.Forms.Label
+ Friend WithEvents Label2 As System.Windows.Forms.Label
+ Friend WithEvents txtSorgente As System.Windows.Forms.TextBox
+ Friend WithEvents txtDestinazione As System.Windows.Forms.TextBox
+ Friend WithEvents GroupBox8 As System.Windows.Forms.GroupBox
+ Friend WithEvents rdbNumFiles As System.Windows.Forms.RadioButton
+ Friend WithEvents rdbNumProgressiva As System.Windows.Forms.RadioButton
+ Friend WithEvents txtCifreContatore As System.Windows.Forms.TextBox
+ Friend WithEvents Label34 As System.Windows.Forms.Label
+ Friend WithEvents txtSuffissoCartelle As System.Windows.Forms.TextBox
+ Friend WithEvents Label33 As System.Windows.Forms.Label
+ Friend WithEvents Label31 As System.Windows.Forms.Label
+ Friend WithEvents chkCreaSottocartelle As System.Windows.Forms.CheckBox
+ Friend WithEvents txtFilePerCartella As System.Windows.Forms.TextBox
+ Friend WithEvents Label32 As System.Windows.Forms.Label
+ Friend WithEvents GroupBox7 As System.Windows.Forms.GroupBox
+ Friend WithEvents chkRotazioneAutomatica As System.Windows.Forms.CheckBox
+ Friend WithEvents chkForzaJpg As System.Windows.Forms.CheckBox
+ Friend WithEvents TabPage3 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox10 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label42 As System.Windows.Forms.Label
+ Friend WithEvents Label41 As System.Windows.Forms.Label
+ Friend WithEvents TextBox31 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox30 As System.Windows.Forms.TextBox
+ Friend WithEvents GroupBox9 As System.Windows.Forms.GroupBox
+ Friend WithEvents CheckBox17 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox16 As System.Windows.Forms.CheckBox
+ Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox
+ Friend WithEvents TextBox34 As System.Windows.Forms.TextBox
+ Friend WithEvents Button8 As System.Windows.Forms.Button
+ Friend WithEvents Label36 As System.Windows.Forms.Label
+ Friend WithEvents TextBox25 As System.Windows.Forms.TextBox
+ Friend WithEvents Label35 As System.Windows.Forms.Label
+ Friend WithEvents ComboBox3 As System.Windows.Forms.ComboBox
+ Friend WithEvents TextBox11 As System.Windows.Forms.TextBox
+ Friend WithEvents Label12 As System.Windows.Forms.Label
+ Friend WithEvents Label11 As System.Windows.Forms.Label
+ Friend WithEvents CheckBox3 As System.Windows.Forms.CheckBox
+ Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label40 As System.Windows.Forms.Label
+ Friend WithEvents TextBox29 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox18 As System.Windows.Forms.TextBox
+ Friend WithEvents Label26 As System.Windows.Forms.Label
+ Friend WithEvents DateTimePicker1 As System.Windows.Forms.DateTimePicker
+ Friend WithEvents CheckBox8 As System.Windows.Forms.CheckBox
+ Friend WithEvents TextBox9 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox7 As System.Windows.Forms.CheckBox
+ Friend WithEvents Label4 As System.Windows.Forms.Label
+ Friend WithEvents TextBox4 As System.Windows.Forms.TextBox
+ Friend WithEvents Label9 As System.Windows.Forms.Label
+ Friend WithEvents Label13 As System.Windows.Forms.Label
+ Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
+ Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox
+ Friend WithEvents Label14 As System.Windows.Forms.Label
+ Friend WithEvents TextBox12 As System.Windows.Forms.TextBox
+ Friend WithEvents Label15 As System.Windows.Forms.Label
+ Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label45 As System.Windows.Forms.Label
+ Friend WithEvents TextBox32 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox26 As System.Windows.Forms.TextBox
+ Friend WithEvents Label37 As System.Windows.Forms.Label
+ Friend WithEvents Label38 As System.Windows.Forms.Label
+ Friend WithEvents TextBox27 As System.Windows.Forms.TextBox
+ Friend WithEvents Label39 As System.Windows.Forms.Label
+ Friend WithEvents TextBox28 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox15 As System.Windows.Forms.CheckBox
+ Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
+ Friend WithEvents Panel1 As System.Windows.Forms.Panel
+ Friend WithEvents CheckBox18 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox4 As System.Windows.Forms.CheckBox
+ Friend WithEvents CheckBox12 As System.Windows.Forms.CheckBox
+ Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label46 As System.Windows.Forms.Label
+ Friend WithEvents TextBox33 As System.Windows.Forms.TextBox
+ Friend WithEvents Panel2 As System.Windows.Forms.Panel
+ Friend WithEvents RadioButton3 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton7 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton4 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton6 As System.Windows.Forms.RadioButton
+ Friend WithEvents RadioButton5 As System.Windows.Forms.RadioButton
+ Friend WithEvents Label5 As System.Windows.Forms.Label
+ Friend WithEvents TextBox5 As System.Windows.Forms.TextBox
+ Friend WithEvents Label6 As System.Windows.Forms.Label
+ Friend WithEvents TextBox6 As System.Windows.Forms.TextBox
+ Friend WithEvents Label3 As System.Windows.Forms.Label
+ Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
+ Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox
+ Friend WithEvents TabPage4 As System.Windows.Forms.TabPage
+ Friend WithEvents GroupBox6 As System.Windows.Forms.GroupBox
+ Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
+ Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
+ Friend WithEvents ComboBox5 As System.Windows.Forms.ComboBox
+ Friend WithEvents ComboBox4 As System.Windows.Forms.ComboBox
+ Friend WithEvents TextBox19 As System.Windows.Forms.TextBox
+ Friend WithEvents Label28 As System.Windows.Forms.Label
+ Friend WithEvents CheckBox5 As System.Windows.Forms.CheckBox
+ Friend WithEvents TextBox15 As System.Windows.Forms.TextBox
+ Friend WithEvents TextBox14 As System.Windows.Forms.TextBox
+ Friend WithEvents Label25 As System.Windows.Forms.Label
+ Friend WithEvents TextBox16 As System.Windows.Forms.TextBox
+ Friend WithEvents Label24 As System.Windows.Forms.Label
+ Friend WithEvents Label22 As System.Windows.Forms.Label
+ Friend WithEvents Label23 As System.Windows.Forms.Label
+ Friend WithEvents Button4 As System.Windows.Forms.Button
+ Friend WithEvents TextBox10 As System.Windows.Forms.TextBox
+ Friend WithEvents Label29 As System.Windows.Forms.Label
+ Friend WithEvents Label30 As System.Windows.Forms.Label
+ Friend WithEvents PictureBox3 As System.Windows.Forms.PictureBox
+ Friend WithEvents Label27 As System.Windows.Forms.Label
+ Friend WithEvents Button7 As System.Windows.Forms.Button
+ Friend WithEvents Button5 As System.Windows.Forms.Button
+ Friend WithEvents Label20 As System.Windows.Forms.Label
+ Friend WithEvents Label19 As System.Windows.Forms.Label
+ Friend WithEvents Label18 As System.Windows.Forms.Label
+ Friend WithEvents lblFotoTotaliNum As System.Windows.Forms.Label
+ Friend WithEvents Label10 As System.Windows.Forms.Label
+ Friend WithEvents btnCreaCatalogo As System.Windows.Forms.Button
+ Friend WithEvents Button6 As System.Windows.Forms.Button
+ Friend WithEvents GroupBox11 As System.Windows.Forms.GroupBox
+ Friend WithEvents Label7 As System.Windows.Forms.Label
+ Friend WithEvents TextBox7 As System.Windows.Forms.TextBox
+ Friend WithEvents Label8 As System.Windows.Forms.Label
+ Friend WithEvents TextBox8 As System.Windows.Forms.TextBox
+ Friend WithEvents Panel3 As System.Windows.Forms.Panel
+ Friend WithEvents rdbNuovoMetodo As System.Windows.Forms.RadioButton
+ Friend WithEvents rdbVecchioMetodo As System.Windows.Forms.RadioButton
+ Friend WithEvents CheckBox2 As System.Windows.Forms.CheckBox
+ Friend WithEvents chkSovrascriviFile As System.Windows.Forms.CheckBox
+End Class
diff --git a/imagecatalog/MainForm.resx b/imagecatalog/MainForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/imagecatalog/MainForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/imagecatalog/MainForm.vb b/imagecatalog/MainForm.vb
new file mode 100644
index 0000000..fa5406d
--- /dev/null
+++ b/imagecatalog/MainForm.vb
@@ -0,0 +1,1328 @@
+Imports System.IO
+Imports System.Drawing.Drawing2D
+Imports System.Drawing.Imaging
+Imports System.Threading
+Imports System.Collections.Generic
+Imports System.Drawing.Text
+
+Public Delegate Sub XyThreadAdd(ByVal Info As String)
+
+Public Class MainForm
+#Const MULTI_THREADED_UI = True
+
+ Private StopAttivo As Boolean
+ Private WaterSelectColor As Boolean = False
+
+ 'Private ContaFotoCuori As Integer
+ 'Private TaskCuori() As PicInfo
+
+ Private MyPool As XYThreadPool = New XYThreadPool
+ Private ContaImmaginiThread As Integer
+
+ Private maxThreads As Integer = 15
+ Private minThreads As Integer = 5
+
+ Private Sub setDefaults()
+ txtSorgente.Text = ""
+ txtDestinazione.Text = ""
+ 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 = CStr(15)
+ TextBox8.Text = CStr(5)
+ 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
+ Dim InstalledFonts As New InstalledFontCollection
+ ' Gets the array of FontFamily objects associated with this FontCollection.
+ Dim fontfamilies() As FontFamily = InstalledFonts.Families()
+
+ ' Populates font combobox with the font name
+
+ For Each fontFamily As FontFamily In fontfamilies
+ ComboBox3.Items.Add(fontFamily.Name)
+ Next
+
+ 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
+ End Sub
+
+ Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+ Application.EnableVisualStyles()
+
+ setDefaults()
+
+ End Sub
+
+ Private Sub FixPaths()
+ If txtSorgente.Text.EndsWith("\") = False Then
+ txtSorgente.Text &= "\"
+ End If
+ If txtDestinazione.Text.EndsWith("\") = False Then
+ txtDestinazione.Text &= "\"
+ End If
+ End Sub
+
+ Private Sub lockUI()
+ TabControl1.Enabled = False
+ Button5.Enabled = False
+ Button6.Enabled = False
+ btnCreaCatalogo.Enabled = False
+
+ End Sub
+
+ Private Sub unlockUI()
+ TabControl1.Enabled = True
+ Button5.Enabled = True
+ Button6.Enabled = True
+ btnCreaCatalogo.Enabled = True
+ End Sub
+
+ Private Sub btnCreaCatalogo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreaCatalogo.Click
+ lockUI()
+ Dim timeStart As Date
+ Dim timeStop As Date
+
+ timeStart = TimeOfDay
+ FixPaths()
+
+ Label10.Text = ""
+ lblFotoTotaliNum.Text = "0"
+ Label18.Text = "0"
+ Label43.Text = "-s"
+
+ maxThreads = CInt(TextBox7.Text)
+ minThreads = CInt(TextBox8.Text)
+
+ If rdbNuovoMetodo.Checked Then
+ setPicSettings(txtSorgente.Text, txtDestinazione.Text)
+ ProgressBar1.Minimum = 0
+ ProgressBar1.Step = 1
+ ProgressBar1.Value = 0
+
+ Dim t1 As New Threading.Thread(AddressOf creaCatalogoThread)
+ t1.IsBackground = False
+ t1.Start()
+ ElseIf rdbVecchioMetodo.Checked Then
+ creaCatalogo(timeStart, timeStop)
+ unlockUI()
+ End If
+ End Sub
+
+ Private Sub creaCatalogoThread()
+ Dim timeStart As Date = TimeOfDay
+ MyPool.StopThreadPool()
+ MyPool.StartThreadPool(minThreads, maxThreads)
+ ContaImmaginiThread = 0
+
+ 'creaImmaginiWithThreadMod(txtSorgente.Text, txtDestinazione.Text)
+ creaimmaginiWithThreadDict(txtSorgente.Text, txtDestinazione.Text)
+ Dim ThAttivo As ThreadPoolWorkItem = Nothing
+ Dim i As Integer = 0
+#Const asfd = 1
+
+#If asfd = 1 Then
+
+
+ Do Until i = ContaImmaginiThread
+ Thread.Sleep(100)
+ ThAttivo = MyPool.ExtractWorkItem()
+ If ThAttivo IsNot Nothing Then
+ i += 1
+ 'stepProgressBar()
+ Dim threads As Integer = MyPool.GetThreadCount()
+ setLabel10Text("File: " & ThAttivo.m_sName & " Threads: " & CStr(threads))
+
+ 'setLabel18Text(ContaImmaginiThread.ToString)
+ 'setLabel18Text(i.ToString)
+
+
+ 'Label10.Text = "File: " & ThAttivo.m_sName
+ 'Label18.Text = ContaImmaginiThread.ToString
+ End If
+ Loop
+ MyPool.StopThreadPool()
+ Dim timeStop As Date = TimeOfDay
+
+ setLabel10Text("Finito")
+ setLabel43Text(CalcTime(timeStart, timeStop, ContaImmaginiThread))
+#End If
+ End Sub
+
+ Private Sub creaCatalogo(timeStart As Date, timeStop As Date)
+ 'asdfg
+ MyPool.StopThreadPool()
+ MyPool.StartThreadPool(minThreads, maxThreads)
+ ContaImmaginiThread = 0
+
+ CreaImmaginiWithThread(txtSorgente.Text, txtDestinazione.Text)
+
+ Dim ThAttivo As ThreadPoolWorkItem = Nothing
+ Dim i As Integer = 0
+
+ Do Until i = ContaImmaginiThread
+ Thread.Sleep(100)
+ ThAttivo = MyPool.ExtractWorkItem()
+ If ThAttivo IsNot Nothing Then
+ i += 1
+ Label10.Text = "File: " & ThAttivo.m_sName
+ Label18.Text = ContaImmaginiThread.ToString
+
+ End If
+ Loop
+ MyPool.StopThreadPool()
+ timeStop = TimeOfDay
+
+ CalcTime(timeStart, timeStop, ContaImmaginiThread)
+ Label10.Text = "Finito"
+ If CheckBox22.Checked = True Then
+ Shell("%windir%\System32\shutdown.exe")
+ End If
+ End Sub
+
+ Private Function CalcTime(ByVal timeStart As Date, ByVal timeStop As Date, ByVal numFoto As Integer) As String
+ Dim timediffH, timediffS As Long
+ Dim timediffM As Long
+ 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
+ Dim fotoSec As Double = numFoto / CDbl(timediffS)
+ Dim fotoMin As Double = numFoto / CDbl(timediffM)
+ Dim fotoOra As Double = numFoto / CDbl(timediffH)
+ Dim s As String = "S: " + timediffS.ToString + "; F/s: " + fotoSec.ToString("0.000") '+ " F/m: " + fotoMin.ToString("0.00") + " F/h: " + fotoOra.ToString("0.00")
+ Return s
+ End Function
+ Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
+ Dim DirSearch As FolderBrowserDialog = New FolderBrowserDialog
+ DirSearch.SelectedPath = txtSorgente.Text
+ If DialogResult.OK = DirSearch.ShowDialog() Then
+ Dim DirectoryScelta As String = DirSearch.SelectedPath
+ If DirectoryScelta.EndsWith("\") = False Then
+ DirectoryScelta &= "\"
+ End If
+
+ txtSorgente.Text = DirectoryScelta
+ End If
+ End Sub
+
+ Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
+ Dim DirSearch As FolderBrowserDialog = New FolderBrowserDialog
+ DirSearch.SelectedPath = txtDestinazione.Text
+ If DialogResult.OK = DirSearch.ShowDialog() Then
+ Dim DirectoryScelta As String = DirSearch.SelectedPath
+ If DirectoryScelta.EndsWith("\") = False Then
+ DirectoryScelta &= "\"
+ End If
+
+ txtDestinazione.Text = DirectoryScelta
+ End If
+
+ '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
+ End Sub
+
+ Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
+ Dim SaveFileDlg As SaveFileDialog = New SaveFileDialog
+
+ 'SaveFileDlg.InitialDirectory = "c:\"
+ SaveFileDlg.Filter = "Setup (*.xml)|*.xml|All valid files (*.*)|*.*"
+ SaveFileDlg.FilterIndex = 0
+ SaveFileDlg.RestoreDirectory = True
+
+ If DialogResult.OK = SaveFileDlg.ShowDialog Then
+ Dim IlNome As String = SaveFileDlg.FileName
+
+ SetupIni.NomeFileSetup = IlNome
+
+ SetupIni.AggiornaParametro("DirSorgente", txtSorgente.Text)
+ SetupIni.AggiornaParametro("DirDestinazione", txtDestinazione.Text)
+ SetupIni.AggiornaParametro("DirSottoDirectory", chkAggiornaSottodirectory.Checked)
+
+ SetupIni.AggiornaParametro("DirDividiDestinazione", chkCreaSottocartelle.Checked)
+ SetupIni.AggiornaParametro("DirDividiNumFile", txtFilePerCartella.Text)
+ SetupIni.AggiornaParametro("DirDividiSuffisso", txtSuffissoCartelle.Text)
+ SetupIni.AggiornaParametro("DirDividiNumCifre", txtCifreContatore.Text)
+ If rdbNumProgressiva.Checked = True Then
+ SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Progressiva")
+ Else
+ SetupIni.AggiornaParametro("DirDividiTipoNumerazione", "Files")
+ End If
+
+ SetupIni.AggiornaParametro("MiniatureCrea", CheckBox1.Checked)
+ SetupIni.AggiornaParametro("MiniatureSuffisso", TextBox3.Text)
+ SetupIni.AggiornaParametro("MiniatureAltezza", TextBox5.Text)
+ SetupIni.AggiornaParametro("MiniatureLarghezza", TextBox6.Text)
+ SetupIni.AggiornaParametro("MiniatureAddScritta", RadioButton3.Checked)
+ SetupIni.AggiornaParametro("MiniatureAddOrario", RadioButton4.Checked)
+
+ SetupIni.AggiornaParametro("FotoAltezza", TextBox27.Text)
+ SetupIni.AggiornaParametro("FotoLarghezza", TextBox28.Text)
+ 'SetupIni.AggiornaParametro("FotoCodice", TextBox13.Text)
+ 'SetupIni.AggiornaParametro("FotoDimOriginali", CheckBox2.Checked)
+
+ SetupIni.AggiornaParametro("FontDimensione", TextBox11.Text)
+ SetupIni.AggiornaParametro("FontDimensioneMiniatura", TextBox25.Text)
+ SetupIni.AggiornaParametro("FontBold", CheckBox3.Checked)
+ SetupIni.AggiornaParametro("FontNome", ComboBox3.Text)
+
+
+ SetupIni.AggiornaParametro("TestoTesto", TextBox4.Text)
+ SetupIni.AggiornaParametro("TestoTrasparente", TextBox9.Text)
+ SetupIni.AggiornaParametro("TestoMargine", TextBox12.Text)
+ SetupIni.AggiornaParametro("TestoPosizione", ComboBox1.Text)
+ SetupIni.AggiornaParametro("TestoAllineamento", ComboBox2.Text)
+
+ SetupIni.AggiornaParametro("MarchioFile", TextBox10.Text)
+ SetupIni.AggiornaParametro("MarchioAltezza", TextBox14.Text)
+ SetupIni.AggiornaParametro("MarchioLarghezza", TextBox15.Text)
+ SetupIni.AggiornaParametro("MarchioMargine", TextBox16.Text)
+ SetupIni.AggiornaParametro("MarchioAllOrizzontale", ComboBox4.Text)
+ SetupIni.AggiornaParametro("MarchioAllVerticale", ComboBox5.Text)
+ SetupIni.AggiornaParametro("MarchioTrasparenza", TextBox19.Text)
+ SetupIni.AggiornaParametro("MarchioAggiungi", CheckBox5.Checked)
+
+ SetupIni.AggiornaParametro("TempoGara", CheckBox7.Checked)
+ SetupIni.AggiornaParametro("Orario", CheckBox8.Checked)
+ SetupIni.AggiornaParametro("EtichettaOrario", TextBox18.Text)
+
+ SetupIni.AggiornaParametro("GeneraleForzaJpg", chkForzaJpg.Checked)
+ SetupIni.AggiornaParametro("GeneraleRotazioneAutomatica", chkRotazioneAutomatica.Checked)
+ SetupIni.AggiornaParametro("GrandezzaVerticale", TextBox30.Text)
+ SetupIni.AggiornaParametro("MargineVerticale", TextBox31.Text)
+ SetupIni.AggiornaParametro("DimensioniOriginali", CheckBox15.Checked)
+ SetupIni.AggiornaParametro("TestoVerticale", TextBox29.Text)
+ SetupIni.AggiornaParametro("NomeMiniatura", RadioButton6.Checked)
+ SetupIni.AggiornaParametro("DataFoto", CheckBox16.Checked)
+ SetupIni.AggiornaParametro("NumeroFoto", CheckBox17.Checked)
+
+ SetupIni.AggiornaParametro("ColoreTestoRGB", TextBox34.Text)
+
+ SetupIni.AggiornaParametro("TempoSmall", RadioButton5.Checked)
+ SetupIni.AggiornaParametro("NumTempoSmall", RadioButton7.Checked)
+
+ SetupIni.AggiornaParametro("CompressioneJpeg", TextBox32.Text)
+ SetupIni.AggiornaParametro("CompressioneJpegMiniatura", TextBox33.Text)
+ SetupIni.SalvaParametriSetup()
+ Me.Text = "Image Catalog - " & LeggiSoloNomeFile(IlNome)
+ End If
+ End Sub
+
+ Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
+ Dim openFileDialog As 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() Then
+ Dim IlNome As String = openFileDialog.FileName
+
+ SetupIni.NomeFileSetup = IlNome
+ SetupIni.CaricaParametriSetup()
+
+ txtSorgente.Text = SetupIni.LeggiParametroString("DirSorgente")
+ txtDestinazione.Text = SetupIni.LeggiParametroString("DirDestinazione")
+ chkAggiornaSottodirectory.Checked = SetupIni.LeggiParametroBoolean("DirSottoDirectory")
+
+ chkCreaSottocartelle.Checked = SetupIni.LeggiParametroBoolean("DirDividiDestinazione")
+ txtFilePerCartella.Text = SetupIni.LeggiParametroString("DirDividiNumFile")
+ txtSuffissoCartelle.Text = SetupIni.LeggiParametroString("DirDividiSuffisso")
+ txtCifreContatore.Text = SetupIni.LeggiParametroString("DirDividiNumCifre")
+
+ Dim TestoTemp As String = SetupIni.LeggiParametroString("DirDividiTipoNumerazione")
+ If TestoTemp.ToUpper = "PROGRESSIVA" Then
+ rdbNumProgressiva.Checked = True
+ Else
+ rdbNumFiles.Checked = True
+ End If
+
+ CheckBox1.Checked = SetupIni.LeggiParametroBoolean("MiniatureCrea")
+ TextBox3.Text = SetupIni.LeggiParametroString("MiniatureSuffisso")
+ TextBox5.Text = SetupIni.LeggiParametroString("MiniatureAltezza")
+ TextBox6.Text = SetupIni.LeggiParametroString("MiniatureLarghezza")
+ RadioButton3.Checked = SetupIni.LeggiParametroBoolean("MiniatureAddScritta")
+ RadioButton4.Checked = SetupIni.LeggiParametroBoolean("MiniatureAddOrario")
+
+ TextBox27.Text = SetupIni.LeggiParametroString("FotoAltezza")
+ TextBox28.Text = SetupIni.LeggiParametroString("FotoLarghezza")
+ 'TextBox13.Text = SetupIni.LeggiParametroString("FotoCodice")
+ 'CheckBox2.Checked = SetupIni.LeggiParametroBoolean("FotoDimOriginali")
+
+ TextBox11.Text = SetupIni.LeggiParametroString("FontDimensione")
+ TextBox25.Text = SetupIni.LeggiParametroString("FontDimensioneMiniatura")
+ CheckBox3.Checked = SetupIni.LeggiParametroBoolean("FontBold")
+ ComboBox3.Text = SetupIni.LeggiParametroString("FontNome")
+
+ If TextBox25.Text = "" Then
+ TextBox25.Text = "0"
+ End If
+
+ TextBox4.Text = SetupIni.LeggiParametroString("TestoTesto")
+ TextBox9.Text = SetupIni.LeggiParametroString("TestoTrasparente")
+ TextBox12.Text = SetupIni.LeggiParametroString("TestoMargine")
+ ComboBox1.Text = SetupIni.LeggiParametroString("TestoPosizione")
+ ComboBox2.Text = SetupIni.LeggiParametroString("TestoAllineamento")
+
+ TextBox10.Text = SetupIni.LeggiParametroString("MarchioFile")
+ TextBox14.Text = SetupIni.LeggiParametroString("MarchioAltezza")
+ TextBox15.Text = SetupIni.LeggiParametroString("MarchioLarghezza")
+ TextBox16.Text = SetupIni.LeggiParametroString("MarchioMargine")
+ ComboBox4.Text = SetupIni.LeggiParametroString("MarchioAllOrizzontale")
+ ComboBox5.Text = SetupIni.LeggiParametroString("MarchioAllVerticale")
+ TextBox19.Text = SetupIni.LeggiParametroString("MarchioTrasparenza")
+ CheckBox5.Checked = SetupIni.LeggiParametroBoolean("MarchioAggiungi")
+
+ CheckBox7.Checked = SetupIni.LeggiParametroBoolean("TempoGara")
+ CheckBox8.Checked = SetupIni.LeggiParametroBoolean("Orario")
+ TextBox18.Text = SetupIni.LeggiParametroString("EtichettaOrario")
+
+ chkForzaJpg.Checked = SetupIni.LeggiParametroBoolean("GeneraleForzaJpg")
+ chkRotazioneAutomatica.Checked = SetupIni.LeggiParametroBoolean("GeneraleRotazioneAutomatica")
+
+ TextBox30.Text = SetupIni.LeggiParametroString("GrandezzaVerticale")
+ TextBox31.Text = SetupIni.LeggiParametroString("MargineVerticale")
+ CheckBox15.Checked = SetupIni.LeggiParametroBoolean("DimensioniOriginali")
+ TextBox29.Text = SetupIni.LeggiParametroString("TestoVerticale")
+ RadioButton6.Checked = SetupIni.LeggiParametroBoolean("NomeMiniatura")
+ CheckBox16.Checked = SetupIni.LeggiParametroBoolean("DataFoto")
+ CheckBox17.Checked = SetupIni.LeggiParametroBoolean("NumeroFoto")
+
+
+ RadioButton5.Checked = SetupIni.LeggiParametroBoolean("TempoSmall")
+ RadioButton7.Checked = SetupIni.LeggiParametroBoolean("NumTempoSmall")
+
+ TextBox32.Text = SetupIni.LeggiParametroString("CompressioneJpeg")
+ TextBox33.Text = SetupIni.LeggiParametroString("CompressioneJpegMiniatura")
+
+ TextBox34.Text = SetupIni.LeggiParametroString("ColoreTestoRGB")
+ If File.Exists(TextBox10.Text) Then
+
+
+ PictureBox1.Image = Image.FromFile(TextBox10.Text)
+ If PictureBox1.Image.Height >= PictureBox1.Image.Width Then
+ PictureBox1.Height = 160
+ PictureBox1.Width = CType(160 * PictureBox1.Image.Width / PictureBox1.Image.Height, Integer)
+ Else
+ PictureBox1.Width = 224
+ PictureBox1.Height = CType(224 * PictureBox1.Image.Height / PictureBox1.Image.Width, Integer)
+ End If
+ End If
+ Me.Text = "Image Catalog - " & LeggiSoloNomeFile(IlNome)
+ End If
+ End Sub
+
+ Private Sub setPicSettings(ByVal SourcePath As String, ByVal DestPath As String)
+
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+
+
+
+ PicSettings.DirectorySorgente = txtSorgente.Text
+ PicSettings.DirectoryDestinazione = txtDestinazione.Text
+
+ 'PicSettings.DestDir = DestDir
+ 'PicSettings.SourceDir = SourceDir
+ 'PicSettings.DestDirStart = DestDirStart
+
+ PicSettings.DimStandard = CType(TextBox11.Text, Integer)
+ PicSettings.DimStandardMiniatura = CType(TextBox25.Text, Integer)
+
+ PicSettings.UsaOrarioMiniatura = CheckBox12.Checked
+ PicSettings.UsaOrarioTestoApplicare = CheckBox8.Checked
+ PicSettings.UsaTempoGaraTestoApplicare = CheckBox7.Checked
+
+ PicSettings.UsaRotazioneAutomatica = chkRotazioneAutomatica.Checked
+ PicSettings.UsaForzaJpg = chkForzaJpg.Checked
+
+ If CheckBox17.Checked Then
+ PicSettings.TestoNome = True
+ Else
+ PicSettings.TestoNome = False
+
+ End If
+
+ If CheckBox16.Checked Then
+ PicSettings.NomeData = True
+ Else
+ PicSettings.NomeData = False
+ End If
+ PicSettings.TestoFirmaStart = TextBox4.Text
+ PicSettings.TestoFirmaStartV = TextBox29.Text
+
+ PicSettings.DataPartenza = DateTimePicker1.Value
+ PicSettings.TestoOrario = TextBox18.Text
+
+ PicSettings.AltezzaSmall = CType(TextBox6.Text, Integer)
+ PicSettings.LarghezzaSmall = CType(TextBox5.Text, Integer)
+
+ PicSettings.CreaMiniature = CheckBox1.Checked
+ PicSettings.AggiungiScritteMiniature = RadioButton3.Checked
+ PicSettings.AggTempoGaraMin = RadioButton5.Checked
+ PicSettings.AggNumTempMin = RadioButton7.Checked
+
+
+ PicSettings.DimVert = CType(TextBox30.Text, Integer)
+ PicSettings.MargVert = CType(TextBox31.Text, Integer)
+
+ 'PicSettings.NomeFileChild = childFile.Name
+ PicSettings.Suffisso = TextBox3.Text
+ 'PicSettings.Codice = TextBox13.Text
+
+ PicSettings.Trasparenza = CType(TextBox9.Text, Integer)
+ PicSettings.IlFont = ComboBox3.SelectedItem.ToString
+ PicSettings.Grassetto = CheckBox3.Checked
+
+ PicSettings.Posizione = ComboBox1.SelectedItem.ToString
+ PicSettings.Allineamento = ComboBox2.SelectedItem.ToString
+ PicSettings.Margine = CType(TextBox12.Text, Integer)
+
+ PicSettings.LogoAltezza = CType(TextBox14.Text, Integer)
+ PicSettings.LogoLarghezza = CType(TextBox15.Text, Integer)
+
+ 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 = CType(TextBox27.Text, Integer)
+ PicSettings.LarghezzaBig = CType(TextBox28.Text, Integer)
+ PicSettings.DimMin = CType(TextBox25.Text, Integer)
+
+ PicSettings.TestoMin = RadioButton6.Checked
+
+ PicSettings.jpegQuality = CLng(TextBox32.Text)
+ PicSettings.jpegQualityMin = CLng(TextBox33.Text)
+
+ PicSettings.mainForm = Me
+
+
+ End Sub
+
+ Private Function makeFilesList(ByVal SourcePath As String) As List(Of List(Of FileInfo))
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(txtFilePerCartella.Text, Integer)
+ Dim SuffixDir As String = txtSuffissoCartelle.Text
+ Dim NumCifreDir As Integer = CType(txtCifreContatore.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+ Dim picList As New List(Of FileInfo)
+ Dim dirList As New List(Of List(Of FileInfo))
+
+
+ '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 Then
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ Dim filesList As New List(Of FileInfo)
+ filesList = getFiles(subDir)
+ dirList.Add(filesList)
+ Next
+ End If
+
+ Return dirList
+ End Function
+
+ Private Function getFiles(sourceDir As DirectoryInfo) As List(Of FileInfo)
+ Dim picList As New List(Of FileInfo)
+ Dim childFile As FileInfo
+ For Each childFile In sourceDir.GetFiles("*.jpg")
+ picList.Add(childFile)
+ Next
+ Return picList
+ End Function
+
+ Private Function getDirsDict(SourcePath As String, DestPath As String) As Dictionary(Of FileInfo, DirectoryInfo)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(txtFilePerCartella.Text, Integer)
+ Dim SuffixDir As String = txtSuffissoCartelle.Text
+ Dim NumCifreDir As Integer = CType(txtCifreContatore.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ 'Dim TestoTemp As String = ""
+ 'Dim ContaTemp As Integer = 0
+ Dim dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo) = New Dictionary(Of FileInfo, DirectoryInfo)
+
+ If SourceDir.Exists Then
+
+ If chkAggiornaSottodirectory.Checked Then
+ FileConta = SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories).GetLength(0)
+ Else
+ FileConta = SourceDir.GetFiles("*.jpg", SearchOption.TopDirectoryOnly).GetLength(0)
+ End If
+
+ Dim a As String = (CType(lblFotoTotaliNum.Text, Integer) + FileConta).ToString
+ setLabel17Text(a)
+ setProgressBarMaximum(CInt(a))
+
+ If chkAggiornaSottodirectory.Checked Then
+
+ For Each directory As DirectoryInfo In SourceDir.GetDirectories
+ For Each file As FileInfo In directory.GetFiles(".jpg")
+
+ Next
+ Next
+
+ End If
+
+ For Each file As FileInfo In SourceDir.GetFiles("*.jpg", SearchOption.AllDirectories)
+
+ Next
+
+
+ If NumFileXDir > 0 And chkCreaSottocartelle.Checked = True And FileConta > NumFileXDir Then
+ DividiFile = True
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+
+ Dim filesList As New List(Of FileInfo)
+ If chkAggiornaSottodirectory.Checked Then
+ 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))
+ End If
+
+ For Each file As FileInfo In filesList
+
+
+
+ ContaFileXDir += 1
+ If DividiFile = True Then
+ If ContaFileXDir = (ContaDirXDir * NumFileXDir) + 1 Then
+ ContaDirXDir += 1
+ Dim TestoTemp As String
+ If rdbNumProgressiva.Checked = True Then
+ TestoTemp = ContaDirXDir.ToString
+ Else
+ TestoTemp = (ContaDirXDir * NumFileXDir).ToString
+ End If
+ For ContaTemp As Integer = 1 To (NumCifreDir - TestoTemp.Length)
+ TestoTemp = "0" & TestoTemp
+ Next
+ 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 Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ End If
+ End If
+
+ Next
+
+
+ End If
+ Return dirSourceDest
+ End Function
+
+ Private Sub setLabel17Text(ByVal text As String)
+ If lblFotoTotaliNum.InvokeRequired Then
+ lblFotoTotaliNum.Invoke(New Action(Of String)(AddressOf setLabel17Text), text)
+ Else
+ lblFotoTotaliNum.Text = text
+
+ End If
+ End Sub
+
+ Private Sub setLabel10Text(ByVal text As String)
+ If Label10.InvokeRequired Then
+ Label10.Invoke(New Action(Of String)(AddressOf setLabel10Text), text)
+ Else
+ Label10.Text = text
+
+ End If
+ End Sub
+ Public Sub stepProgressBar()
+ If ProgressBar1.InvokeRequired Then
+ ProgressBar1.Invoke(New MethodInvoker(AddressOf ProgressBar1.PerformStep))
+ Else
+ ProgressBar1.PerformStep()
+ End If
+ setLabel18Text(ProgressBar1.Value.ToString)
+ End Sub
+ Private Sub setProgressBarMaximum(ByVal value As Integer)
+ If ProgressBar1.InvokeRequired Then
+ ProgressBar1.Invoke(New Action(Of Integer)(AddressOf setProgressBarMaximum), value)
+ Else
+ ProgressBar1.Maximum = value
+
+ End If
+ End Sub
+
+ Private Sub setProgressBarValue(ByVal value As Integer)
+ If ProgressBar1.InvokeRequired Then
+ ProgressBar1.Invoke(New Action(Of Integer)(AddressOf setProgressBarValue), value)
+ Else
+ ProgressBar1.Value = value
+
+ End If
+ End Sub
+
+ Private Sub setLabel18Text(ByVal text As String)
+ If Label18.InvokeRequired Then
+ Label18.Invoke(New Action(Of String)(AddressOf setLabel18Text), text)
+ Else
+ Label18.Text = text
+
+ End If
+ End Sub
+
+ Private Sub setLabel43Text(ByVal text As String)
+ If Label43.InvokeRequired Then
+ Label43.Invoke(New Action(Of String)(AddressOf setLabel43Text), text)
+ Else
+ Label43.Text = text
+
+ End If
+ End Sub
+
+ Private Sub creaImmaginiWithThreadMod(ByVal SourcePath As String, ByVal DestPath As String)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(txtFilePerCartella.Text, Integer)
+ Dim SuffixDir As String = txtSuffissoCartelle.Text
+ Dim NumCifreDir As Integer = CType(txtCifreContatore.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+ If SourceDir.Exists Then
+ FileConta = SourceDir.GetFiles("*.jpg").GetLength(0)
+ 'Label17.Text = (CType(Label17.Text, Integer) + FileConta).ToString
+ Dim a As String = (CType(lblFotoTotaliNum.Text, Integer) + FileConta).ToString
+ setLabel17Text(a)
+ setProgressBarMaximum(CInt(a))
+
+ If NumFileXDir > 0 And chkCreaSottocartelle.Checked = True Then
+ If FileConta > NumFileXDir Then
+ DividiFile = True
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+
+ Dim childFile As FileInfo
+ For Each childFile In SourceDir.GetFiles("*.jpg")
+ If StopAttivo = True Then
+ Exit For
+ End If
+ setLabel10Text("File: " & childFile.Name)
+ Dim b As String = (CType(Label18.Text, Integer) + 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 Then
+ If ContaFileXDir = (ContaDirXDir * NumFileXDir) + 1 Then
+ ContaDirXDir += 1
+
+ If rdbNumProgressiva.Checked = True Then
+ TestoTemp = ContaDirXDir.ToString
+ Else
+ TestoTemp = (ContaDirXDir * NumFileXDir).ToString
+ End If
+ For ContaTemp = 1 To (NumCifreDir - TestoTemp.Length)
+ TestoTemp = "0" & TestoTemp
+ Next
+
+ If DestDirStart.FullName.EndsWith("\") Then
+ DestDir = New DirectoryInfo(DestDirStart.FullName & SuffixDir & TestoTemp)
+ Else
+ DestDir = New DirectoryInfo(DestDirStart.FullName & "\" & SuffixDir & TestoTemp)
+ End If
+
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ End If
+ End If
+
+ 'Application.DoEvents()
+
+
+
+ Dim ClsCreaImmagine As New ImageCreator(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(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {childFile.Name}, True)
+ Next
+ ' copy all the sub-directories by recursively calling this same routine
+ If chkAggiornaSottodirectory.Checked = True Then
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ creaImmaginiWithThreadMod(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name))
+ Next
+ End If
+ End If
+ End Sub
+
+ Private Function getNumerazione() As Integer
+ dim numerazione As Integer
+ If rdbNumProgressiva.Checked Then
+ numerazione = FileHelper.numerazione.Progressiva
+ Else
+ numerazione = FileHelper.numerazione.Files
+ End If
+ Return numerazione
+ End Function
+
+ Private Sub creaimmaginiWithThreadDict(ByVal SourcePath As String, ByVal DestPath As String)
+ Dim dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo) = New Dictionary(Of FileInfo, DirectoryInfo)
+ If chkAggiornaSottodirectory.Checked And chkCreaSottocartelle.Checked Then
+
+ Dim helper As New FileHelper(CInt(txtFilePerCartella.Text), txtSuffissoCartelle.Text, CInt(txtCifreContatore.Text), getNumerazione())
+ 'getfilesrecursive
+ dirSourceDest = helper.GetFilesRecursive(New DirectoryInfo(SourcePath), New DirectoryInfo(DestPath), "*.jpg")
+ ElseIf chkAggiornaSottodirectory.Checked And Not chkCreaSottocartelle.Checked Then
+
+ End If
+
+ '= getDirsDict(SourcePath, DestPath)
+
+ 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 Sub
+
+ 'il posto giusto dove fare modifiche
+ Private Sub CreaImmaginiWithThread(ByVal SourcePath As String, ByVal DestPath As String)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDirStart As DirectoryInfo = New DirectoryInfo(DestPath)
+ Dim DestDir As DirectoryInfo = Nothing
+ Dim NumFileXDir As Integer = CType(txtFilePerCartella.Text, Integer)
+ Dim SuffixDir As String = txtSuffissoCartelle.Text
+ Dim NumCifreDir As Integer = CType(txtCifreContatore.Text, Integer)
+ Dim DividiFile As Boolean = False
+
+ StopAttivo = False
+
+ Dim FileConta As Integer = 0
+ Dim ContaFileXDir As Integer = 0
+ Dim ContaDirXDir As Integer = 0
+ Dim TestoTemp As String = ""
+ Dim ContaTemp As Integer = 0
+
+
+
+ If SourceDir.Exists Then
+ FileConta = SourceDir.GetFiles("*.jpg").GetLength(0)
+ lblFotoTotaliNum.Text = (CType(lblFotoTotaliNum.Text, Integer) + FileConta).ToString
+
+ If NumFileXDir > 0 And chkCreaSottocartelle.Checked = True Then
+ If FileConta > NumFileXDir Then
+ DividiFile = True
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+ Else
+ DestDir = DestDirStart
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ DividiFile = False
+ End If
+
+ Dim childFile As FileInfo
+ For Each childFile In SourceDir.GetFiles("*.jpg")
+ If StopAttivo = True Then
+ Exit For
+ End If
+ 'Label10.Text = "File: " & childFile.Name
+ 'Label18.Text = (CType(Label18.Text, Integer) + 1).ToString
+ 'Application.DoEvents()
+
+ ContaFileXDir += 1
+
+ If DividiFile = True Then
+ If ContaFileXDir = (ContaDirXDir * NumFileXDir) + 1 Then
+ ContaDirXDir += 1
+
+ If rdbNumProgressiva.Checked = True Then
+ TestoTemp = ContaDirXDir.ToString
+ Else
+ TestoTemp = (ContaDirXDir * NumFileXDir).ToString
+ End If
+ For ContaTemp = 1 To (NumCifreDir - TestoTemp.Length)
+ TestoTemp = "0" & TestoTemp
+ Next
+
+ If DestDirStart.FullName.EndsWith("\") Then
+ DestDir = New DirectoryInfo(DestDirStart.FullName & SuffixDir & TestoTemp)
+ Else
+ DestDir = New DirectoryInfo(DestDirStart.FullName & "\" & SuffixDir & TestoTemp)
+ End If
+
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ End If
+ End If
+
+ Application.DoEvents()
+ Dim ClsCreaImmagine As New CreaImmagineSeparateThread
+
+ ClsCreaImmagine.DirectorySorgente = txtSorgente.Text
+ ClsCreaImmagine.DirectoryDestinazione = txtDestinazione.Text
+
+ ClsCreaImmagine.DestDir = DestDir
+ ClsCreaImmagine.SourceDir = SourceDir
+ ClsCreaImmagine.DestDirStart = DestDirStart
+
+ ClsCreaImmagine.DimStandard = CType(TextBox11.Text, Integer)
+ ClsCreaImmagine.DimStandardMiniatura = CType(TextBox25.Text, Integer)
+
+ ClsCreaImmagine.UsaOrarioMiniatura = CheckBox12.Checked
+ ClsCreaImmagine.UsaOrarioTestoApplicare = CheckBox8.Checked
+ ClsCreaImmagine.UsaTempoGaraTestoApplicare = CheckBox7.Checked
+
+ ClsCreaImmagine.UsaRotazioneAutomatica = chkRotazioneAutomatica.Checked
+ ClsCreaImmagine.UsaForzaJpg = chkForzaJpg.Checked
+
+ If CheckBox17.Checked Then
+ ClsCreaImmagine.TestoNome = True
+ Else
+ ClsCreaImmagine.TestoNome = False
+
+ End If
+
+ If CheckBox16.Checked Then
+ ClsCreaImmagine.NomeData = True
+ Else
+ ClsCreaImmagine.NomeData = False
+ End If
+ ClsCreaImmagine.TestoFirmaStart = TextBox4.Text
+ ClsCreaImmagine.TestoFirmaStartV = TextBox29.Text
+
+ ClsCreaImmagine.DataPartenza = DateTimePicker1.Value
+ ClsCreaImmagine.TestoOrario = TextBox18.Text
+
+ ClsCreaImmagine.AltezzaSmall = CType(TextBox5.Text, Integer)
+ ClsCreaImmagine.LarghezzaSmall = CType(TextBox5.Text, Integer)
+
+ ClsCreaImmagine.CreaMiniature = CheckBox1.Checked
+ ClsCreaImmagine.AggiungiScritteMiniature = RadioButton3.Checked
+ ClsCreaImmagine.AggTempoGaraMin = RadioButton5.Checked
+ ClsCreaImmagine.AggNumTempMin = RadioButton7.Checked
+
+
+ ClsCreaImmagine.DimVert = CType(TextBox30.Text, Integer)
+ ClsCreaImmagine.MargVert = CType(TextBox31.Text, Integer)
+
+ ClsCreaImmagine.NomeFileChild = childFile.Name
+ ClsCreaImmagine.Suffisso = TextBox3.Text
+ 'ClsCreaImmagine.Codice = TextBox13.Text
+
+ ClsCreaImmagine.Trasparenza = CType(TextBox9.Text, Integer)
+ ClsCreaImmagine.IlFont = ComboBox3.SelectedItem.ToString
+ ClsCreaImmagine.Grassetto = CheckBox3.Checked
+
+ ClsCreaImmagine.Posizione = ComboBox1.SelectedItem.ToString
+ ClsCreaImmagine.Allineamento = ComboBox2.SelectedItem.ToString
+ ClsCreaImmagine.Margine = CType(TextBox12.Text, Integer)
+
+ ClsCreaImmagine.LogoAltezza = CType(TextBox14.Text, Integer)
+ ClsCreaImmagine.LogoLarghezza = CType(TextBox15.Text, Integer)
+
+ '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 = CType(TextBox27.Text, Integer)
+ ClsCreaImmagine.LarghezzaBig = CType(TextBox28.Text, Integer)
+ ClsCreaImmagine.DimMin = CType(TextBox25.Text, Integer)
+
+ ClsCreaImmagine.TestoMin = RadioButton6.Checked
+
+ ClsCreaImmagine.jpegQuality = CLng(TextBox32.Text)
+ ClsCreaImmagine.jpegQualityMin = CLng(TextBox33.Text)
+
+ ContaImmaginiThread += 1
+ MyPool.InsertWorkItem(childFile.Name, New XyThreadAdd(AddressOf ClsCreaImmagine.CreaImmagineThread), New Object(0) {childFile.Name}, True)
+ Next
+ ' copy all the sub-directories by recursively calling this same routine
+ If chkAggiornaSottodirectory.Checked = True Then
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ CreaImmaginiWithThread(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name))
+ Next
+ End If
+ End If
+ End Sub
+
+ Private Sub CopyDirectoryFile(ByVal SourcePath As String, ByVal DestPath As String, Optional ByVal OverWrite As Boolean = False)
+ Dim SourceDir As DirectoryInfo = New DirectoryInfo(SourcePath)
+ Dim DestDir As DirectoryInfo = New DirectoryInfo(DestPath)
+
+ If SourceDir.Exists Then
+ If Not DestDir.Exists Then
+ DestDir.Create()
+ End If
+ ' copy all the files of the current directory
+ Dim childFile As FileInfo
+ For Each childFile In SourceDir.GetFiles()
+ If OverWrite Then
+ childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), True)
+ Else
+ ' 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...
+ If Not File.Exists(Path.Combine(DestDir.FullName, childFile.Name)) Then
+ childFile.CopyTo(Path.Combine(DestDir.FullName, childFile.Name), False)
+ End If
+ End If
+ Next
+ ' copy all the sub-directories by recursively calling this same routine
+ Dim subDir As DirectoryInfo
+ For Each subDir In SourceDir.GetDirectories()
+ CopyDirectoryFile(subDir.FullName, Path.Combine(DestDir.FullName, subDir.Name), OverWrite)
+ Next
+ End If
+ End Sub
+
+
+
+
+
+ Function NewthumbSize(ByVal currentwidth As Integer, ByVal currentheight As Integer, ByVal MaxPixel As Integer, ByVal TipoSize As String) As Size
+ ' Calculate the Size of the New image
+ '*** Larghezza, Altezza, Auto
+
+ Dim tempMultiplier As Double
+
+ If TipoSize.ToUpper = "Larghezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentwidth
+ ElseIf TipoSize.ToUpper = "Altezza".ToUpper Then
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ If currentheight > currentwidth Then ' portrait
+ tempMultiplier = MaxPixel / currentheight
+ Else
+ tempMultiplier = MaxPixel / currentwidth
+ End If
+ End If
+
+ Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
+
+ Return NewSize
+ End Function
+
+
+
+ Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
+ StopAttivo = True
+
+ MyPool.StopThreadPool()
+ unlockUI()
+
+ End Sub
+
+ Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
+ Dim openFileDialog As 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 Then
+ openFileDialog.FileName = TextBox10.Text
+ End If
+ openFileDialog.FilterIndex = 0
+ openFileDialog.RestoreDirectory = True
+
+ If DialogResult.OK = openFileDialog.ShowDialog() Then
+ TextBox10.Text = openFileDialog.FileName
+ PictureBox1.Image = Image.FromFile(TextBox10.Text)
+ If PictureBox1.Image.Height >= PictureBox1.Image.Width Then
+ PictureBox1.Height = 160
+ PictureBox1.Width = CType(160 * PictureBox1.Image.Width / PictureBox1.Image.Height, Integer)
+ Else
+ PictureBox1.Width = 224
+ PictureBox1.Height = CType(224 * PictureBox1.Image.Height / PictureBox1.Image.Width, Integer)
+ End If
+ End If
+ End Sub
+
+ Private Function LeggiSoloNomeFile(ByVal FileName As String) As String
+ Dim Testo As String = FileName
+ Dim Risposta As String = ""
+
+ Dim Nomi() As String = Testo.Split(New Char() {"\"c})
+ If Nomi.Length > 1 Then
+ Risposta = Nomi(Nomi.Length - 1)
+ End If
+
+ Return Risposta
+ End Function
+
+
+ Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
+ 'GetColor()
+ 'GetPixelColor(PictureBox1.PointToScreen(e.Location)).ToArgb.ToString("X8")
+
+ End Sub
+
+ Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
+ If e.Button = MouseButtons.Left Then
+ WaterSelectColor = True
+ Else
+ WaterSelectColor = False
+ End If
+ End Sub
+
+
+ '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 Function GetPixelColor(ByVal screenLocation As Point) As Color()
+ '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 Nothing
+ End Function
+
+ Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
+ Dim MyDialog As 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() = Windows.Forms.DialogResult.OK) Then
+ '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
+
+ End If
+ End Sub
+
+
+
+
+
+
+
+ Private Sub TextBox27_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
+
+ End Sub
+
+
+
+
+ Private Sub CheckBox18_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox18.CheckedChanged
+ CheckBox4.Checked = False
+ CheckBox12.Checked = False
+
+ End Sub
+
+ Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
+ CheckBox18.Checked = False
+ End Sub
+
+ Private Sub CheckBox12_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox12.CheckedChanged
+ CheckBox18.Checked = False
+ End Sub
+
+
+End Class
+
+Public Class PicInfo
+ Public DirSource, DirDest, DirDestStart As DirectoryInfo
+ Public NomeImmagine As String
+
+ Public Sub New(ByVal Dir_Source As DirectoryInfo, ByVal Dir_Dest As DirectoryInfo, ByVal Dir_DestStart As DirectoryInfo, ByVal Nome_Immagine As String)
+ DirSource = Dir_Source
+ DirDest = Dir_Dest
+ DirDestStart = Dir_DestStart
+ NomeImmagine = Nome_Immagine
+ End Sub
+End Class
\ No newline at end of file
diff --git a/imagecatalog/Module1.vb b/imagecatalog/Module1.vb
new file mode 100644
index 0000000..f9b2cbc
--- /dev/null
+++ b/imagecatalog/Module1.vb
@@ -0,0 +1,155 @@
+Module Module1
+
+ 'Sub CaricaIni()
+ ' Dim Parola As String
+ ' Dim i As Integer
+ ' Dim p As Integer
+
+ ' If Dir$(NomeIni) <> "" Then
+ ' Open NomeIni For Input As #1
+ ' Input #1, NumeroMacchine
+ ' For i = 1 To NumeroMacchine
+ ' Input #1, NomeMacchina(i)
+ ' Input #1, CodiceMacchina(i)
+ ' Input #1, TempoMacchinaFerma(i)
+ ' Input #1, LunghezzaImpulso(i)
+ ' Input #1, TempoRegistrazioneDati(i)
+ ' Input #1, RangoVelocita(i)
+ ' Input #1, MaxVelocita(i)
+ ' Input #1, NumeroRulli(i)
+ ' Input #1, NumeroFili(i)
+ ' Input #1, IndirizzoMacchina(i)
+ ' Input #1, StampaAutoMacchina(i)
+ ' Next i
+ ' Input #1, SettimanaInizio
+ ' Input #1, SettimanaFine
+ ' Input #1, Chiusura
+ ' Input #1, OrarioStampa
+ ' Input #1, OrarioStampaSecondi
+ ' Input #1, OrarioAccendiProg
+ ' Input #1, OrarioSpengiProg
+ ' Input #1, NomeDitta
+ ' Input #1, StampaAutoGiorno
+ ' Input #1, StampaAutoWeek
+ ' Input #1, StampaGiornoRiepilogo
+ ' Input #1, StampaGiornoGrafTMFA
+ ' Input #1, StampaGiornoGrafVel
+ ' Input #1, StampaWeekRiepilogo
+ ' Input #1, StampaWeekGrafTMFA
+ ' Input #1, StampaWeekGrafVel
+ ' Input #1, StampanteManuale
+ ' Input #1, StampanteAutomatica
+ ' Input #1, StampanteNomeAghi
+ ' Input #1, StampanteNomeLaser
+ ' Input #1, NomePortaComm
+
+ ' Input #1, TurniTotali
+ ' For p = 1 To TurniTotali
+ ' Input #1, TurnoNumero(p)
+ ' Input #1, TurnoInizioMinuti(p)
+ ' Input #1, TurnoFineMinuti(p)
+ ' Input #1, TurnoInizioSecondi(p)
+ ' Input #1, TurnoFineSecondi(p)
+ ' Next p
+ ' Input #1, Parola
+ ' Close #1
+ ' PassWordAmm = Trim$(Cripta(Parola, ChiaveCriDecri))
+ ' End If
+ 'End Sub
+
+ 'Sub SalvaIni()
+ ' Dim Conto As Single
+ ' Dim Nomefile As String
+ ' Dim NomeDir As String
+ ' Dim Testo As String
+ ' Dim TestoA As String
+ ' Dim i As Integer
+ ' Dim k As Integer
+ ' Dim p As Integer
+ ' Dim Lungo As Integer
+ ' Dim Resto As Integer
+ ' Dim Primo(3) As String
+
+ ' For i = 1 To NumeroMacchine
+ ' If Right$(DirectoryProgramma, 1) = "\" Then
+ ' NomeDir = DirectoryProgramma + NomeMacchina(i)
+ ' Else
+ ' NomeDir = DirectoryProgramma + "\" + NomeMacchina(i)
+ ' End If
+ ' Nomefile = NomeDir + "\" + NomeMacchina(i) + ".SYS"
+ ' If Dir$(Nomefile) = "" Then MkDir(NomeDir)
+ ' Next i
+
+ 'Open NomeIni For Output As #3
+ ' Print #3, NumeroMacchine
+ ' For i = 1 To NumeroMacchine
+ ' If Right$(DirectoryProgramma, 1) = "\" Then
+ ' Nomefile = DirectoryProgramma + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
+ ' Else
+ ' Nomefile = DirectoryProgramma + "\" + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
+ ' End If
+ ' Open Nomefile For Output As #4
+ ' Write #4, NomeMacchina(i)
+ ' Write #4, CodiceMacchina(i)
+ ' Print #4, TempoMacchinaFerma(i)
+ ' Print #4, LunghezzaImpulso(i)
+ ' Print #4, TempoRegistrazioneDati(i)
+ ' Print #4, RangoVelocita(i)
+ ' Print #4, MaxVelocita(i)
+ ' Print #4, NumeroRulli(i)
+ ' Print #4, NumeroFili(i)
+ ' Print #4, IndirizzoMacchina(i)
+ ' Write #4, StampaAutoMacchina(i)
+ ' Close #4
+ ' Write #3, NomeMacchina(i)
+ ' Write #3, CodiceMacchina(i)
+ ' Print #3, TempoMacchinaFerma(i)
+ ' Print #3, LunghezzaImpulso(i)
+ ' Print #3, TempoRegistrazioneDati(i)
+ ' Print #3, RangoVelocita(i)
+ ' Print #3, MaxVelocita(i)
+ ' Print #3, NumeroRulli(i)
+ ' Print #3, NumeroFili(i)
+ ' Print #3, IndirizzoMacchina(i)
+ ' Write #3, StampaAutoMacchina(i)
+ ' Next i
+ ' Print #3, SettimanaInizio
+ ' Print #3, SettimanaFine
+ ' Write #3, Chiusura
+ ' Write #3, OrarioStampa
+ ' Print #3, OrarioStampaSecondi
+ ' Write #3, OrarioAccendiProg
+ ' Write #3, OrarioSpengiProg
+ ' Write #3, NomeDitta
+ ' Write #3, StampaAutoGiorno
+ ' Write #3, StampaAutoWeek
+ ' Write #3, StampaGiornoRiepilogo
+ ' Write #3, StampaGiornoGrafTMFA
+ ' Write #3, StampaGiornoGrafVel
+ ' Write #3, StampaWeekRiepilogo
+ ' Write #3, StampaWeekGrafTMFA
+ ' Write #3, StampaWeekGrafVel
+ ' Write #3, StampanteManuale
+ ' Write #3, StampanteAutomatica
+ ' Write #3, StampanteNomeAghi
+ ' Write #3, StampanteNomeLaser
+ ' Write #3, NomePortaComm
+
+ ' Print #3, TurniTotali
+ ' For p = 1 To TurniTotali
+ ' Print #3, TurnoNumero(p)
+ ' Print #3, TurnoInizioMinuti(p)
+ ' Print #3, TurnoFineMinuti(p)
+ ' Print #3, TurnoInizioSecondi(p)
+ ' Print #3, TurnoFineSecondi(p)
+ ' Next p
+ ' Testo = Cripta(PassWordAmm, ChiaveCriDecri)
+ ' Write #3, Testo
+ 'Close #3
+ 'End Sub
+
+
+ Public SetupIni As New ParametriSetup
+
+
+End Module
diff --git a/imagecatalog/Module2.vb b/imagecatalog/Module2.vb
new file mode 100644
index 0000000..f48fe0e
--- /dev/null
+++ b/imagecatalog/Module2.vb
@@ -0,0 +1,3 @@
+Module Module2
+
+End Module
diff --git a/imagecatalog/My Project/Application.Designer.vb b/imagecatalog/My Project/Application.Designer.vb
new file mode 100644
index 0000000..c844591
--- /dev/null
+++ b/imagecatalog/My Project/Application.Designer.vb
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.18033
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ 'NOTE: This file is auto-generated; do not modify it directly. To make changes,
+ ' or if you encounter build errors in this file, go to the Project Designer
+ ' (go to Project Properties or double-click the My Project node in
+ ' Solution Explorer), and make changes on the Application tab.
+ '
+ Partial Friend Class MyApplication
+
+ _
+ Public Sub New()
+ MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+ Me.IsSingleInstance = false
+ Me.EnableVisualStyles = true
+ Me.SaveMySettingsOnExit = true
+ Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.ImageCatalog.MainForm
+ End Sub
+ End Class
+End Namespace
diff --git a/imagecatalog/My Project/Application.myapp b/imagecatalog/My Project/Application.myapp
new file mode 100644
index 0000000..c9098c2
--- /dev/null
+++ b/imagecatalog/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ true
+ MainForm
+ false
+ 0
+ true
+ 0
+ true
+
\ No newline at end of file
diff --git a/imagecatalog/My Project/Settings.Designer.vb b/imagecatalog/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..064b1a0
--- /dev/null
+++ b/imagecatalog/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.18033
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ImageCatalog.My.MySettings
+ Get
+ Return Global.ImageCatalog.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/imagecatalog/My Project/Settings.settings b/imagecatalog/My Project/Settings.settings
new file mode 100644
index 0000000..392df0a
--- /dev/null
+++ b/imagecatalog/My Project/Settings.settings
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/imagecatalog/My Project/app.manifest b/imagecatalog/My Project/app.manifest
new file mode 100644
index 0000000..4c249cd
--- /dev/null
+++ b/imagecatalog/My Project/app.manifest
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/imagecatalog/ParametriSetup.vb b/imagecatalog/ParametriSetup.vb
new file mode 100644
index 0000000..104335c
--- /dev/null
+++ b/imagecatalog/ParametriSetup.vb
@@ -0,0 +1,148 @@
+Public Class ParametriSetup
+
+
+ Private _ElencoParametri As DataSet
+ Private _NomeFileSetup As String
+
+ Public Sub New(ByVal FileSetup As String)
+ _ElencoParametri = New DataSet
+ _NomeFileSetup = FileSetup
+
+ If FileSetup <> "" Then
+ CaricaParametriSetup()
+ End If
+ End Sub
+
+ Public Sub New()
+ _ElencoParametri = New DataSet
+ _NomeFileSetup = ""
+ End Sub
+
+ Public Sub CaricaParametriSetup()
+ _ElencoParametri = LeggiXmlDataSet("Setup", _NomeFileSetup, "Nome")
+ End Sub
+
+ Public Sub SalvaParametriSetup()
+ If System.IO.File.Exists(_NomeFileSetup) = True Then
+ Kill(_NomeFileSetup)
+ End If
+ _ElencoParametri.WriteXml(_NomeFileSetup)
+ End Sub
+
+ Public Function LeggiParametroString(ByVal NomeParametro As String) As String
+ Dim Risposta As String = ""
+
+ Try
+ Dim LElenco As DataRow() = _ElencoParametri.Tables("Setup").Select("Nome='" & NomeParametro & "'")
+
+ Dim LaRiga As DataRow
+ For Each LaRiga In LElenco
+ Risposta = LaRiga("Valore").ToString
+ Next
+ Catch
+ Risposta = ""
+ End Try
+
+ Return Risposta
+ End Function
+
+ Public Function LeggiParametroBoolean(ByVal NomeParametro As String) As Boolean
+ Dim Risposta As String = ""
+
+ Try
+ Dim LElenco As DataRow() = _ElencoParametri.Tables("Setup").Select("Nome='" & NomeParametro & "'")
+
+ Dim LaRiga As DataRow
+ For Each LaRiga In LElenco
+ Risposta = LaRiga("Valore").ToString
+ Next
+ Catch
+ Risposta = ""
+ End Try
+
+ Select Case Risposta.ToUpper
+ Case "TRUE", "OK", "SI", "1", "YES", "VERO"
+ Return True
+ Case Else
+ Return False
+ End Select
+ End Function
+
+ Public Sub AggiornaParametro(ByVal NomeParametro As String, ByVal ValoreParametro As Object)
+ Try
+ If _ElencoParametri.Tables("Setup") Is Nothing Then
+ Dim TabellaTmp As New DataTable("Setup")
+ Dim RigaTmp As DataRow
+
+ Dim LaColonna As DataColumn
+ LaColonna = TabellaTmp.Columns.Add("Nome", System.Type.GetType("System.String"))
+ LaColonna = TabellaTmp.Columns.Add("Valore", System.Type.GetType("System.String"))
+
+ '* Aggiunge alla tabella tutte le righe
+ RigaTmp = TabellaTmp.NewRow
+ RigaTmp("Nome") = NomeParametro
+ RigaTmp("Valore") = ValoreParametro
+ TabellaTmp.Rows.Add(RigaTmp)
+
+ _ElencoParametri.Tables.Add(TabellaTmp)
+ Else
+ Dim LElenco As DataRow() = _ElencoParametri.Tables("Setup").Select("Nome='" & NomeParametro & "'")
+
+ If LElenco.Length = 0 Then
+ Dim LaRiga As DataRow
+ LaRiga = _ElencoParametri.Tables("Setup").NewRow
+ LaRiga("Nome") = NomeParametro
+ LaRiga("Valore") = ValoreParametro
+ _ElencoParametri.Tables("Setup").Rows.Add(LaRiga)
+ Else
+ LElenco(0).Item("Valore") = ValoreParametro
+ End If
+ End If
+ Catch
+
+ End Try
+ End Sub
+
+
+ Private Function LeggiXmlDataTable(ByVal NomeTabella As String, ByVal NomeFileXml As String, Optional ByVal NomeColonnaChiave As String = "") As DataTable
+ '* Crea e Legge il dataset dal file xml
+ Dim DataSetXml As New System.Data.DataSet
+ DataSetXml.ReadXml(NomeFileXml)
+
+ '* Aggiunge il campo chiave
+ If NomeColonnaChiave <> "" Then
+ DataSetXml.Tables(NomeTabella).Constraints.Add(NomeColonnaChiave, DataSetXml.Tables(NomeTabella).Columns(NomeColonnaChiave), True)
+ End If
+
+ '* Restituisce la risposta
+ Return DataSetXml.Tables(NomeTabella)
+ End Function
+
+ Private Shared Function LeggiXmlDataSet(ByVal NomeTabella As String, ByVal NomeFileXml As String, Optional ByVal NomeColonnaChiave As String = "") As DataSet
+ '* Crea e Legge il dataset dal file xml
+ Dim DataSetXml As New System.Data.DataSet
+ DataSetXml.ReadXml(NomeFileXml)
+
+ '* Aggiunge il campo chiave
+ If NomeColonnaChiave <> "" Then
+ DataSetXml.Tables(NomeTabella).Constraints.Add(NomeColonnaChiave, DataSetXml.Tables(NomeTabella).Columns(NomeColonnaChiave), True)
+ End If
+
+ '* Restituisce la risposta
+ Return DataSetXml
+ End Function
+
+
+
+
+ Public Property NomeFileSetup() As String
+ Get
+ Return _NomeFileSetup
+ End Get
+ Set(ByVal Value As String)
+ _NomeFileSetup = Value
+ End Set
+ End Property
+
+
+End Class
diff --git a/imagecatalog/PicSettings.vb b/imagecatalog/PicSettings.vb
new file mode 100644
index 0000000..5d9942f
--- /dev/null
+++ b/imagecatalog/PicSettings.vb
@@ -0,0 +1,604 @@
+Imports System.IO
+Imports System.Drawing.Drawing2D
+Imports System.Drawing.Imaging
+
+Module PicSettings
+
+ Private _DirectorySorgente As String
+ Private _DirectoryDestinazione As String
+
+ Private _DimVert As Integer
+ Private _MargVert As Integer
+
+
+ Private _DimStandard As Integer
+ Private _DimStandardMiniatura As Integer
+
+ Private _NomeData As Boolean
+ Private _TestoNome As Boolean
+ Private _UsaOrarioMiniatura As Boolean
+ Private _UsaOrarioTestoApplicare As Boolean
+ Private _UsaTempoGaraTestoApplicare As Boolean
+ Private _TestoFirmaStart As String
+ Private _TestoFirmaStartV As String
+ Private _DataPartenza As DateTime
+ Private _TestoOrario As String
+
+ Private _UsaRotazioneAutomatica As Boolean
+ Private _UsaForzaJpg As Boolean
+
+ Private _LarghezzaSmall As Integer
+ Private _AltezzaSmall As Integer
+
+ Private _CreaMiniature As Boolean
+ Private _AggiungiScritteMiniature As Boolean
+ Private _AggTempoGaraMin As Boolean
+ Private _AggNumTempMin As Boolean
+
+ Private _Suffisso As String
+ Private _Codice As String
+
+ Private _Trasparenza As Integer
+ Private _IlFont As String
+ Private _Grassetto As Boolean
+
+ Private _Posizione As String
+ Private _Allineamento As String
+ Private _Margine As Integer
+
+ Private _LogoAltezza As Integer
+ Private _LogoLarghezza As Integer
+
+ Private _fontColoreRGB As Color
+
+ Private _LogoAggiungi As Boolean
+ Private _LogoNomeFile As String
+ Private _LogoTrasparenza As String
+ Private _LogoMargine As String
+ Private _LogoPosizioneH As String
+ Private _LogoPosizioneV As String
+
+ Private _FotoGrandeDimOrigina As Boolean
+ Private _AltezzaBig As Integer
+ Private _LarghezzaBig As Integer
+ Private _DestDir As DirectoryInfo
+ Private _DimMin As Integer
+
+ Private _TestoMin As Boolean
+
+ Private _SecretDefault As Boolean
+ Private _SecretBig As Boolean
+ Private _SecretSmall As Boolean
+
+ Private _SecretPathSmall As String
+ Private _SecretPathBig As String
+
+ Private _jpegQuality As Long
+ Private _jpegQualityMin As Long
+
+ Private FotoRuotaADestra As Boolean = False
+ Private FotoRuotaASinistra As Boolean = False
+
+ Private TempMinText As String = ""
+
+ Private _mainForm As MainForm
+
+ 'Private progressBar As System.Windows.Forms.ProgressBar
+
+
+
+ Public Property mainForm() As MainForm
+ Get
+ Return _mainForm
+ End Get
+ Set(ByVal value As MainForm)
+ _mainForm = value
+ End Set
+ End Property
+
+ Public Property DirectorySorgente() As String
+ Get
+ Return _DirectorySorgente
+ End Get
+ Set(ByVal value As String)
+ _DirectorySorgente = value
+ End Set
+ End Property
+
+ Public Property DirectoryDestinazione() As String
+ Get
+ Return _DirectoryDestinazione
+ End Get
+ Set(ByVal value As String)
+ _DirectoryDestinazione = value
+ End Set
+ End Property
+
+ Public Property TestoFirmaStart() As String
+ Get
+ Return _TestoFirmaStart
+ End Get
+ Set(ByVal value As String)
+ _TestoFirmaStart = value
+ End Set
+ End Property
+
+ Public Property TestoFirmaStartV() As String
+ Get
+ Return _TestoFirmaStartV
+ End Get
+
+ Set(ByVal value As String)
+ _TestoFirmaStartV = value
+ End Set
+ End Property
+
+ Public Property DataPartenza() As DateTime
+ Get
+ Return _DataPartenza
+ End Get
+ Set(ByVal value As DateTime)
+ _DataPartenza = value
+ End Set
+ End Property
+
+ Public Property TestoOrario() As String
+ Get
+ Return _TestoOrario
+ End Get
+ Set(ByVal value As String)
+ _TestoOrario = value
+ End Set
+ End Property
+
+ Public Property DimStandard() As Integer
+ Get
+ Return _DimStandard
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandard = value
+ End Set
+ End Property
+
+ Public Property DimStandardMiniatura() As Integer
+ Get
+ Return _DimStandardMiniatura
+ End Get
+ Set(ByVal value As Integer)
+ _DimStandardMiniatura = value
+ End Set
+ End Property
+
+ Public Property NomeData() As Boolean
+ Get
+ Return _NomeData
+ End Get
+ Set(ByVal value As Boolean)
+ _NomeData = value
+ End Set
+ End Property
+
+ Public Property TestoNome() As Boolean
+ Get
+ Return _TestoNome
+ End Get
+ Set(ByVal value As Boolean)
+ _TestoNome = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioMiniatura() As Boolean
+ Get
+ Return _UsaOrarioMiniatura
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioMiniatura = value
+ End Set
+ End Property
+
+ Public Property UsaOrarioTestoApplicare() As Boolean
+ Get
+ Return _UsaOrarioTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaOrarioTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaTempoGaraTestoApplicare() As Boolean
+ Get
+ Return _UsaTempoGaraTestoApplicare
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaTempoGaraTestoApplicare = value
+ End Set
+ End Property
+
+ Public Property UsaRotazioneAutomatica() As Boolean
+ Get
+ Return _UsaRotazioneAutomatica
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaRotazioneAutomatica = value
+ End Set
+ End Property
+
+ Public Property UsaForzaJpg() As Boolean
+ Get
+ Return _UsaForzaJpg
+ End Get
+ Set(ByVal value As Boolean)
+ _UsaForzaJpg = value
+ End Set
+ End Property
+
+
+
+ Public Property LarghezzaSmall() As Integer
+ Get
+ Return _LarghezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaSmall = value
+ End Set
+ End Property
+
+ Public Property AltezzaSmall() As Integer
+ Get
+ Return _AltezzaSmall
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaSmall = value
+ End Set
+ End Property
+
+
+ Public Property CreaMiniature() As Boolean
+ Get
+ Return _CreaMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _CreaMiniature = value
+ End Set
+ End Property
+
+ Public Property AggiungiScritteMiniature() As Boolean
+ Get
+ Return _AggiungiScritteMiniature
+ End Get
+ Set(ByVal value As Boolean)
+ _AggiungiScritteMiniature = value
+ End Set
+ End Property
+
+
+ Public Property Suffisso() As String
+ Get
+ Return _Suffisso
+ End Get
+ Set(ByVal value As String)
+ _Suffisso = value
+ End Set
+ End Property
+
+ Public Property Codice() As String
+ Get
+ Return _Codice
+ End Get
+ Set(ByVal value As String)
+ _Codice = value
+ End Set
+ End Property
+
+
+ Public Property Trasparenza() As Integer
+ Get
+ Return _Trasparenza
+ End Get
+ Set(ByVal value As Integer)
+ _Trasparenza = value
+ End Set
+ End Property
+
+ Public Property IlFont() As String
+ Get
+ Return _IlFont
+ End Get
+ Set(ByVal value As String)
+ _IlFont = value
+ End Set
+ End Property
+
+ Public Property Grassetto() As Boolean
+ Get
+ Return _Grassetto
+ End Get
+ Set(ByVal value As Boolean)
+ _Grassetto = value
+ End Set
+ End Property
+
+ Public Property Posizione() As String
+ Get
+ Return _Posizione
+ End Get
+ Set(ByVal value As String)
+ _Posizione = value
+ End Set
+ End Property
+
+ Public Property Allineamento() As String
+ Get
+ Return _Allineamento
+ End Get
+ Set(ByVal value As String)
+ _Allineamento = value
+ End Set
+ End Property
+
+ Public Property Margine() As Integer
+ Get
+ Return _Margine
+ End Get
+ Set(ByVal value As Integer)
+ _Margine = value
+ End Set
+ End Property
+
+ Public Property LogoAltezza() As Integer
+ Get
+ Return _LogoAltezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoAltezza = value
+ End Set
+ End Property
+
+ Public Property LogoLarghezza() As Integer
+ Get
+ Return _LogoLarghezza
+ End Get
+ Set(ByVal value As Integer)
+ _LogoLarghezza = value
+ End Set
+ End Property
+
+ Public Property fontColoreRGB() As Color
+ Get
+ Return _fontColoreRGB
+ End Get
+ Set(ByVal value As Color)
+ _fontColoreRGB = value
+ End Set
+ End Property
+
+ Public Property LogoAggiungi() As Boolean
+ Get
+ Return _LogoAggiungi
+ End Get
+ Set(ByVal value As Boolean)
+ _LogoAggiungi = value
+ End Set
+ End Property
+
+ Public Property LogoNomeFile() As String
+ Get
+ Return _LogoNomeFile
+ End Get
+ Set(ByVal value As String)
+ _LogoNomeFile = value
+ End Set
+ End Property
+
+ Public Property LogoTrasparenza() As String
+ Get
+ Return _LogoTrasparenza
+ End Get
+ Set(ByVal value As String)
+ _LogoTrasparenza = value
+ End Set
+ End Property
+
+ Public Property LogoMargine() As String
+ Get
+ Return _LogoMargine
+ End Get
+ Set(ByVal value As String)
+ _LogoMargine = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneH() As String
+ Get
+ Return _LogoPosizioneH
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneH = value
+ End Set
+ End Property
+
+ Public Property LogoPosizioneV() As String
+ Get
+ Return _LogoPosizioneV
+ End Get
+ Set(ByVal value As String)
+ _LogoPosizioneV = value
+ End Set
+ End Property
+
+ Public Property FotoGrandeDimOrigina() As Boolean
+ Get
+ Return _FotoGrandeDimOrigina
+ End Get
+ Set(ByVal value As Boolean)
+ _FotoGrandeDimOrigina = value
+ End Set
+ End Property
+
+ Public Property AltezzaBig() As Integer
+ Get
+ Return _AltezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _AltezzaBig = value
+ End Set
+ End Property
+
+ Public Property LarghezzaBig() As Integer
+ Get
+ Return _LarghezzaBig
+ End Get
+ Set(ByVal value As Integer)
+ _LarghezzaBig = value
+ End Set
+ End Property
+
+ Public Property DestDir() As DirectoryInfo
+ Get
+ Return _DestDir
+ End Get
+ Set(ByVal value As DirectoryInfo)
+ _DestDir = value
+ End Set
+ End Property
+
+ Public Property DimVert() As Integer
+ Get
+ Return _DimVert
+
+ End Get
+ Set(ByVal value As Integer)
+ _DimVert = value
+
+ End Set
+ End Property
+
+ Public Property MargVert() As Integer
+ Get
+ Return _MargVert
+
+ End Get
+ Set(ByVal value As Integer)
+ _MargVert = value
+ End Set
+ End Property
+
+ Public Property TestoMin() As Boolean
+ Get
+ Return _TestoMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _TestoMin = value
+
+ End Set
+ End Property
+
+ Public Property DimMin() As Integer
+ Get
+ Return _DimMin
+
+ End Get
+ Set(ByVal value As Integer)
+ _DimMin = value
+
+ End Set
+ End Property
+
+ Public Property SecretDefault() As Boolean
+ Get
+ Return _SecretDefault
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretDefault = value
+
+ End Set
+ End Property
+
+ Public Property SecretBig() As Boolean
+ Get
+ Return _SecretBig
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretBig = value
+
+ End Set
+ End Property
+
+ Public Property SecretSmall() As Boolean
+ Get
+ Return _SecretSmall
+
+ End Get
+ Set(ByVal value As Boolean)
+ _SecretSmall = value
+
+ End Set
+ End Property
+
+ Public Property SecretPathSmall() As String
+ Get
+ Return _SecretPathSmall
+
+ End Get
+ Set(ByVal value As String)
+ _SecretPathSmall = value
+
+ End Set
+ End Property
+
+ Public Property SecretPathBig() As String
+ Get
+ Return _SecretPathBig
+
+ End Get
+ Set(ByVal value As String)
+ _SecretPathBig = value
+
+ End Set
+ End Property
+
+ Public Property AggTempoGaraMin() As Boolean
+ Get
+ Return _AggTempoGaraMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _AggTempoGaraMin = value
+
+ End Set
+ End Property
+
+ Public Property AggNumTempMin() As Boolean
+ Get
+ Return _AggNumTempMin
+
+ End Get
+ Set(ByVal value As Boolean)
+ _AggNumTempMin = value
+
+ End Set
+ End Property
+
+ Public Property jpegQuality() As Long
+ Get
+ Return _jpegQuality
+ End Get
+ Set(ByVal value As Long)
+ _jpegQuality = value
+ End Set
+
+ End Property
+
+ Public Property jpegQualityMin() As Long
+ Get
+ Return _jpegQualityMin
+ End Get
+ Set(ByVal value As Long)
+ _jpegQualityMin = value
+ End Set
+
+ End Property
+End Module
diff --git a/imagecatalog/XYThreadPool.vb b/imagecatalog/XYThreadPool.vb
new file mode 100644
index 0000000..d80789a
--- /dev/null
+++ b/imagecatalog/XYThreadPool.vb
@@ -0,0 +1,185 @@
+Option Explicit On
+Option Strict On
+
+Imports System.Threading
+Imports System.Collections
+
+Public Delegate Sub ThreadErrorHandlerDelegate(ByVal oWorkItem As ThreadPoolWorkItem, ByVal oError As Exception)
+
+Public Class ThreadPoolWorkItem
+ Public m_bStoreOutput As Boolean = False
+ Public m_sName As String = ""
+ Public m_pMethod As [Delegate] = Nothing
+ Public m_pInput As Object() = Nothing
+ Public m_oOutput As Object = Nothing
+ Public m_oException As Exception = Nothing
+ Public Sub New()
+ End Sub
+ Public Sub New(ByVal sName As String, ByVal pMethod As [Delegate], ByVal pInput As Object(), ByVal bStoreOutput As Boolean)
+ m_sName = sName
+ m_pMethod = pMethod
+ m_pInput = pInput
+ m_bStoreOutput = bStoreOutput
+ End Sub
+End Class
+
+Public Class XYThreadPool
+ Private m_htThreads As Hashtable = New Hashtable(256)
+ Private m_nMinThreadCount As Integer = 5
+ Private m_nMaxThreadCount As Integer = 10
+ Private m_nShutdownPause As Integer = 200
+ Private m_nServerPause As Integer = 25
+ Private m_bContinue As Boolean = False
+ Private m_oException As Exception = Nothing
+ Private m_qInput As Queue = New Queue(1024)
+ Private m_qOutput As Queue = New Queue(1024)
+ Private m_delegateThreadErrorHandler As [Delegate] = New ThreadErrorHandlerDelegate(AddressOf OnThreadError)
+ Private Sub ThreadProc()
+ While m_bContinue
+ Dim obj As Object = Nothing
+ Monitor.Enter(Me)
+ If m_qInput.Count > 0 Then obj = m_qInput.Dequeue()
+ Monitor.Exit(Me)
+ If obj Is Nothing Then
+ Dim bQuit As Boolean = False
+ Monitor.Enter(Me)
+ If m_htThreads.Count > m_nMinThreadCount Then
+ m_htThreads.Remove(Thread.CurrentThread.Name)
+ bQuit = True
+ End If
+ Monitor.Exit(Me)
+ If bQuit Then Return
+ Thread.Sleep(10 * m_nServerPause)
+ Else
+ Dim oWorkItem As ThreadPoolWorkItem = CType(obj, ThreadPoolWorkItem)
+ 'oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
+ Try
+ oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
+ Catch oBug As Exception
+ If Not m_delegateThreadErrorHandler Is Nothing Then
+ Try
+ Dim pInput As Object() = {oWorkItem, oBug}
+ m_delegateThreadErrorHandler.DynamicInvoke(pInput)
+ Catch
+ End Try
+ End If
+ End Try
+ If oWorkItem.m_bStoreOutput Then
+ Monitor.Enter(m_qOutput)
+ m_qOutput.Enqueue(oWorkItem)
+ Monitor.Exit(m_qOutput)
+ End If
+ Thread.Sleep(m_nServerPause)
+ End If
+ End While
+ End Sub
+ Private Sub OnThreadError(ByVal oWorkItem As ThreadPoolWorkItem, ByVal oError As Exception)
+ If oWorkItem Is Nothing Then
+ m_oException = oError
+ Else
+ oWorkItem.m_oException = oError
+ End If
+ End Sub
+ Public Sub SetThreadErrorHandler(ByVal pMethod As ThreadErrorHandlerDelegate)
+ Monitor.Enter(Me)
+ m_delegateThreadErrorHandler = pMethod
+ Monitor.Exit(Me)
+ End Sub
+ Public Sub SetServerPause(ByVal nMilliseconds As Integer)
+ Monitor.Enter(Me)
+ If nMilliseconds > 9 And nMilliseconds < 101 Then m_nServerPause = nMilliseconds
+ Monitor.Exit(Me)
+ End Sub
+ Public Sub SetShutdownPause(ByVal nMilliseconds As Integer)
+ Monitor.Enter(Me)
+ m_nShutdownPause = nMilliseconds
+ Monitor.Exit(Me)
+ End Sub
+ Public Function GetException() As Exception
+ Return m_oException
+ End Function
+ Public Sub InsertWorkItem(ByVal oWorkItem As ThreadPoolWorkItem)
+ Try
+ Monitor.Enter(Me)
+ m_qInput.Enqueue(oWorkItem)
+ If m_bContinue AndAlso m_qInput.Count > m_htThreads.Count AndAlso m_htThreads.Count < m_nMaxThreadCount Then
+ Dim th As Thread = New Thread(AddressOf ThreadProc)
+ th.Name = Guid.NewGuid.ToString()
+ m_htThreads.Add(th.Name, th)
+ th.Start()
+ End If
+ Catch oBug As Exception
+ m_oException = oBug
+ Finally
+ Monitor.Exit(Me)
+ End Try
+ End Sub
+ Public Sub InsertWorkItem(ByVal sName As String, ByVal pMethod As [Delegate], ByVal pArgs As Object(), ByVal bStoreOutput As Boolean)
+ InsertWorkItem(New ThreadPoolWorkItem(sName, pMethod, pArgs, bStoreOutput))
+ End Sub
+ Public Function ExtractWorkItem() As ThreadPoolWorkItem
+ Dim oWorkItem As Object = Nothing
+ Monitor.Enter(m_qOutput)
+ If m_qOutput.Count > 0 Then oWorkItem = m_qOutput.Dequeue()
+ Monitor.Exit(m_qOutput)
+ If oWorkItem Is Nothing Then Return Nothing
+ Return CType(oWorkItem, ThreadPoolWorkItem)
+ End Function
+ Public Function StartThreadPool(Optional ByVal nMinThreadCount As Integer = 5, Optional ByVal nMaxThreadCount As Integer = 10) As Boolean
+ Try
+ Monitor.Enter(Me)
+ If m_bContinue = False Then
+ m_bContinue = True
+ If nMinThreadCount > 0 Then
+ m_nMinThreadCount = nMinThreadCount
+ End If
+ If nMaxThreadCount > m_nMinThreadCount Then
+ m_nMaxThreadCount = nMaxThreadCount
+ Else
+ m_nMaxThreadCount = 2 * m_nMinThreadCount
+ End If
+ Dim i As Integer
+ For i = 1 To m_nMinThreadCount
+ Dim th As Thread = New Thread(AddressOf ThreadProc)
+ th.Name = Guid.NewGuid.ToString()
+ m_htThreads.Add(th.Name, th)
+ th.Start()
+ Next i
+ End If
+ Return True
+ Catch oBug As Exception
+ m_bContinue = False
+ m_oException = oBug
+ Return False
+ Finally
+ Monitor.Exit(Me)
+ End Try
+ End Function
+ Public Sub StopThreadPool()
+ Monitor.Enter(Me)
+ m_bContinue = False
+ Thread.Sleep(Math.Max(200, m_nShutdownPause))
+ If (m_nShutdownPause > 0) Then
+ Dim dict As IDictionaryEnumerator = m_htThreads.GetEnumerator()
+ While dict.MoveNext()
+ Dim th As Thread = CType(dict.Value(), Thread)
+ If th.IsAlive Then
+ Try
+ th.Abort()
+ Catch
+ End Try
+ End If
+ End While
+ End If
+ m_htThreads.Clear()
+ m_qInput.Clear()
+ ' m_qOutput.Clear()
+ Monitor.Exit(Me)
+ End Sub
+ Public Function GetThreadCount() As Integer
+ Monitor.Enter(Me)
+ Dim nCount As Integer = m_htThreads.Count
+ Monitor.Exit(Me)
+ Return nCount
+ End Function
+End Class
\ No newline at end of file
diff --git a/imagecatalog/app.config b/imagecatalog/app.config
new file mode 100644
index 0000000..b4d7c2c
--- /dev/null
+++ b/imagecatalog/app.config
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+