Catalog/imagecatalog/MainForm.vb
2017-09-27 17:12:36 +02:00

1391 lines
No EOL
55 KiB
VB.net

Option Infer On
Imports System.IO
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.Threading
Imports System.Collections.Generic
Imports System.Drawing.Text
Imports System.Reflection
Imports System.Threading.Tasks
Public Delegate Sub XyThreadAdd(ByVal Info As String)
Public Class MainForm
#Const MULTI_THREADED_UI = True
Private LockdownMode As Boolean = true
Dim _assembly As [Assembly]
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 LockDown()
grpAvanzate.Visible = False
grpSottocartelle.Visible = False
grpGenerale.Visible = False
tabFoto.Visible = False
tabLogo.Visible = False
tabMiniature.Visible = False
tabTesto.Visible = True
tabFoto.Enabled = False
tabLogo.Enabled = False
tabMiniature.Enabled = False
tabTesto.Enabled = True
btnCaricaImpostazioni.Visible = False
btnSalvaImpostazioni.Visible = False
grpCarattere.Visible = False
grpTestoFotoVerticali.Visible = False
grpSlideShow.Visible = False
TextBox9.Visible = False
TextBox12.Visible = False
ComboBox1.Visible = False
ComboBox2.Visible = false
CheckBox8.Visible = False
CheckBox7.Visible = False
TextBox18.Visible = false
DateTimePicker1.Visible = False
CheckBox2.Visible = False
LoadDefaultConfig()
End Sub
dim _imageStream As Stream
private Sub LoadDefaultConfig()
_imageStream = _assembly.GetManifestResourceStream("ImageCatalog.LOG_ITA.jpg")
'dim _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("ImageCatalog.collini_canon.xml"))
Dim _textStream = _assembly.GetManifestResourceStream("ImageCatalog.collini_canon.xml")
SetupIni.CaricaParametriSetupStream(_textStream)
LoadSettings()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Application.EnableVisualStyles()
_assembly = [Assembly].GetExecutingAssembly()
setDefaults()
If (LockdownMode) Then LockDown()
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()
tabControl.Enabled = False
btnSalvaImpostazioni.Enabled = False
btnCaricaImpostazioni.Enabled = False
btnCreaCatalogo.Enabled = False
End Sub
Private Sub unlockUI()
tabControl.Enabled = True
btnSalvaImpostazioni.Enabled = True
btnCaricaImpostazioni.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 btnSalvaImpostazioni.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 btnCaricaImpostazioni.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()
LoadSettings()
Me.Text = "Image Catalog - " & LeggiSoloNomeFile(IlNome)
End If
End Sub
Public Sub LoadSettings()
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
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.LockDownMode = me.LockdownMode
If (me.LockdownMode)
dim i = Image.FromStream(_imageStream)
PicSettings.BuiltInImage = i
PicSettings.BuiltInText = "Property of REGALAMI UN SORRISO ONLUS"
End If
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
'''' <summary>
'''' Get the color relative to mouse position
'''' </summary>
'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