Bilder skalieren

Das Schöne an Access ist, dass man in ihm eine extrem flexible Entwicklungsumgebung hat, mit der man auch mal Aufgaben erledigen kann, die gar nichts mit Datenbanken zu tun haben. Wer beispielsweise Bilder auf eine bestimmte Größe bringen möchte, um diese per E-Mail an Freunde zu versenden und dabei keine übergroßen Anhänge produzieren möchte, ist mit der kleinen Anwendung in diesem Beitrag gut bedient: Diese erwartet lediglich die Angabe des Quell- und Zielpfads sowie der gewünschten Kantenlänge und skaliert die im Verzeichnis enthaltenen Bilder dann per Knopfdruck.

Wer gern mal Schnappschüsse mit der Digitalkamera macht und diese an Freunde verteilen oder auch auf seiner Webseite platzieren möchte, kann sicher auf andere Tools als Access zugreifen, um die Größe der betreffenden Bilder anzupassen. Aber ob das damit so einfach geht wie mit Access Wir bauen in diesem Beitrag eine kleine Lösung, die lediglich aus einem Formular sowie dem Modul mdlGDIPlus von Sascha Trowitzsch besteht und das Anpassen der Bildgröße auf einfachste Weise erlaubt. Diese soll zwei Textfelder zur Eingabe der Verzeichnisse für die Originalbilder und die skalierten Exemplare, ein Textfeld für die Länge der längsten Kante sowie eine Schaltfläche zum Start des Skaliervorgangs bieten (siehe Bild 1).

pic001.tif

Bild 1: Mit dieser Access-Anwendung skalieren Sie Bilder.

Formularbau

Das Formular erfordert auch ohne die GDI-Funktionen schon ein wenig Arbeit: Sie benötigen zwei Textfelder zur Eingabe der beiden Verzeichnisse sowie zwei Schaltflächen, die jeweils den Verzeichnisauswahl-Dialog öffnen. Ein weiteres Textfeld nimmt die Länge der längsten Kante der Bilder auf und die Schaltfläche cmdSkalieren sorgt schließlich für das Skalieren der Bilder. Damit die Routine keinen Fehler auslöst, der auf fehlenden Informationen beruht, haben wir eine Validierung der drei Felder eingebaut.

Für weiteren Komfort speichert die Anwendung die Einstellungen der drei Textfelder in einer Tabelle – somit gibt es zumindest einen kleinen datenbanktechnischen Aspekt in dieser Anwendung. Die Beschreibung dieser Funktionen finden Sie übrigens im Beitrag Anwendungoptionen in Tabellen speichern (Shortlink 617). Diese Parameter liest das Formular direkt beim Start ein, und zwar mit der folgenden Routine, die Access beim Öffnen des Formulars auslöst. Gleichzeitig maximiert die Routine das Formular:

Private Sub Form_Open(Cancel As Integer)
    DoCmd.Maximize
    Me!txtVerzeichnis = _
    GetDBOption("Quellverzeichnis")
    Me!txtZielverzeichnis = _
    GetDBOption("Zielverzeichnis")
    Me!txtNeueLaenge = GetDBOption("NeueLaenge")
End Sub

Das Auswählen der Verzeichnisse erfolgt mithilfe der Routine OpenPathName, die eine nicht dokumentierte Funktion der WizHook-Klasse verwendet und die ein Klick auf die beiden Schaltflächen wie folgt aufruft:

Private Sub cmdVerzeichnisNeu_Click()
    Me.txtZielverzeichnis = _
    OpenPathName(CurrentProject.Path)
End Sub

Die Funktion OpenPathName selbst finden Sie im Modul mdlTools der Beispieldatenbank. Beim Schließen des Formulars soll dieses die in den Textfeldern angegebenen Einstellungen in einer Tabelle namens tblOptionen speichern. Dafür sorgen einige Aufrufe der Funktion SetDBOption in der Prozedur, die durch das Ereignis Beim Schließen des Formulars ausgelöst wird:

Private Sub Form_Close()
    SetDBOption "Quellverzeichnis", _
    Me!txtVerzeichnis
    SetDBOption "Zielverzeichnis", _
    Me!txtZielverzeichnis
    SetDBOption "NeueLaenge", _
    Me!txtNeueLaenge
End Sub

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar