PictureTagger/SB-PictureTagger/Modul_SB-PictureTagger.vb

167 lines
5.7 KiB
VB.net

Option Explicit On
Imports System.IO
Module Modul_SB_PictureTagger
Structure Mark
Dim Position As String
Dim ID As String
Dim Description As String
End Structure 'Mark
Structure Place
Dim Adresse
Dim Description
Dim GPS
End Structure
Structure TaggedIMG
Dim ID As Long
Dim Title As String
Dim Description As String
Dim Time As String
Dim Mark() As Mark
Dim Image As Image
Dim Path As String
Dim Place As Place
End Structure 'TaggedIMG
'Methoden Index:
'1.LoadPicture
' Parameter: "-SupportedFormats-" -> Array of Supported Formats;
' Parameter: File Pfad -> Picture ##in Work!##
'2.DirReadPhotos
' Parameter: Ordner Pfad; Return: Array von Pfaden der Bilddateien des Ordners
'###################################################################################################################
'############### 1.LoadPicture #####################################################################################
'###################################################################################################################
Public Function LoadPicture(ByVal sPath As String) As Object
'Deklariere
Dim aPhotoFormats(0) As String 'Array Enthält die Unsterstützten Photoformate
'###Statische Einstellungen###
'Die Untestützten Formate einstellen
ReDim Preserve aPhotoFormats(5)
aPhotoFormats(0) = ".jpg"
aPhotoFormats(1) = ".bmp"
aPhotoFormats(2) = ".gif"
aPhotoFormats(3) = ".png"
aPhotoFormats(4) = ".jp2"
aPhotoFormats(5) = ".tif"
'Entscheide ob Rückgabe des Arrays für die FormatUnterstützung
'Oder das Laden des Bildes aus der angegebenen Quelle
If sPath = "-SupportedFormats-" Then
LoadPicture = aPhotoFormats
ElseIf (File.Exists(sPath) = True) Then
'BildLadeFunktion
'Main Work###############################################
Dim iPicture As New TaggedIMG
'Testen ob Vormat unterstüzt!
iPicture.Path = sPath
iPicture.Image = Image.FromFile(sPath)
'Wird hier später mit Tagg Bestückt!
LoadPicture = iPicture
'Main Work Ende##########################################
Else
MsgBox("Can't load Picture")
LoadPicture = ""
End If
End Function 'LoadPicture
'###################################################################################################################
'############### 2.DirReadPhotos ###################################################################################
'###################################################################################################################
Public Function DirReadPhotos(ByVal sPath As String) As Object
'Parameter: Ordner Pfad
'Return: Array von Pfaden der Bilddateien des Ordners
Dim aPhotos(0) As String
Dim i As Long
Dim sPhotoFormat As String
Dim aPhotoFormats(0) As String 'Array Enthält die Unsterstützten Photoformate
'Lade Unterstüzte Formate:
aPhotoFormats = LoadPicture("-SupportedFormats-")
Try
'Deklarieren
Dim aFiles As String() = Directory.GetFiles(sPath) ' Try verwenden!! <----
'Überprüfen auf existenz des Ordners
'Ja: Weiter
'Nein: MsgBox("Error: Der Pfad existiert Nicht!")
If Directory.Exists(sPath) = True Then
'Speichere Pfad in Array aPhotos
'Wenn das File die Dateiendungen aus Array aPhotoFormats besitzt
Dim nCount As Long = 0
If aFiles(0) <> "" Then
aPhotos(0) = ""
For i = 0 To UBound(aFiles)
For Each sPhotoFormat In aPhotoFormats
If IO.Path.GetExtension(aFiles(i)) = sPhotoFormat Then
If nCount > UBound(aPhotos) Then
ReDim Preserve aPhotos(nCount)
End If
aPhotos(nCount) = aFiles(i)
nCount = nCount + 1
End If
Next sPhotoFormat
Next i
Else
aPhotos(0) = ""
End If
'Array Nach Dateinahmen Sortieren
Array.Sort(aPhotos)
Else
MsgBox("Error: Der Pfad existiert Nicht!")
aPhotos(0) = ""
End If
DirReadPhotos = aPhotos
Catch ex As Exception
MsgBox(ex.Message)
aPhotos(0) = ""
DirReadPhotos = aPhotos
End Try
End Function 'DirReadPhotos
'Vor VBA AND VB without .Net
'### with .Net: Imports System.IO; Directory.Exists(Path)####
'Private Function FileExists(ByVal FileName As String) As Boolean
' On Error Resume Next
' FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume))
' On Error GoTo 0
'End Function
'### with .Net: Imports System.IO; File.Exists(Path)####
'Private Function DirExists(ByVal DirectoryName As String) As Boolean
' On Error Resume Next
' DirExists = CBool(GetAttr(DirectoryName) And vbDirectory)
' On Error GoTo 0
'End Function
End Module