10.06.2013, 14:12
Hallo Forum,
Suche seit Tagen eine Möglichkeit mit VBA meine Bilder (einige Tausend) zu verkleinern.
Die Code-Befehle bringen mir nicht die erwartete Lösung.
Verwende: Corel Photo-Paint X5
Mit Datei -> Exportieren... oder Datei -> Für das Web exportieren... werden die Bilder mehr komprimiert, als es mit meinem Code der Fall ist.
Zudem hat es dort Auswahlmöglichkeiten, die ich in meinem Code umgesetzt haben will.
- Auflösung (statt 300dpi, nur 150dpi)
- sso.UseColorProfile = False funktioniert auch nicht. (ob True/False sind beide Bilder gleich gross)
Als Ergebnis sind die Bilder so klein (in etwa 80x70 Pixel), da ist die Qualität nebensächlich. Meine Bilder sind aber mind. 5x zu gross (20-60 KB, statt 3-5 KB)
Vielen Dank für ein bisschen Hilfe.
Grüsse,
Christoph
Suche seit Tagen eine Möglichkeit mit VBA meine Bilder (einige Tausend) zu verkleinern.
Die Code-Befehle bringen mir nicht die erwartete Lösung.
Verwende: Corel Photo-Paint X5
Code:
Sub MegasellerPicture()
' Vorgehen:
' - Bilder ins COREL PHOTO-PAINT ziehen
' - Makro ausführen
' Ergebnis: - Foto in gewünschter Grösse
' - Kompression eingefügt
' Konstanten (hier können Änderungen gemacht werden)
Const BILDBREITE_k As Integer = 80
Const BILDHOEHE_k As Integer = 0
Const KOMPRESSION_k As Integer = 10
' Variablen
Dim strFileName As String
Dim strPath As String
Dim strJPGFile As String
Dim strText1 As String
Dim strText2 As String
Dim flt As ExportFilter
Dim ad As Document
Dim cs As Object
Dim sso As StructSaveOptions
Set ad = Application.ActiveDocument
Set cs = Application.CorelScript
Set sso = CreateStructSaveOptions
' Dateiname mit Endung
strFileName = ad.FileName
' Pfadname (ohne Dateinamen)
strPath = ad.FilePath
' Bild ms?????_k wird erstellt
ad.Resample (BILDBREITE_k)
' Bild wird gespeichert mit der Endung k.jpg (Dateiname bis&mit _ bereits vorhanden)
strJPGFile = Left(strFileName, InStr(strFileName, "_")) & "k.jpg"
' und zusätzlich eine Kompression hinzuberechnet (0 = keine, 100 = max)
sso.UseColorProfile = False
sso.Compression = KOMPRESSION_k
Set flt = ad.SaveAs(strPath & strJPGFile, cdrJPEG, sso)
flt.Finish
End If
' Bild schliessen, damit beim erneuten Klick aufs Makro direkt das nächste Bild bearbeitet wird
ad.Close
End Sub
Mit Datei -> Exportieren... oder Datei -> Für das Web exportieren... werden die Bilder mehr komprimiert, als es mit meinem Code der Fall ist.

- Auflösung (statt 300dpi, nur 150dpi)
- sso.UseColorProfile = False funktioniert auch nicht. (ob True/False sind beide Bilder gleich gross)
Als Ergebnis sind die Bilder so klein (in etwa 80x70 Pixel), da ist die Qualität nebensächlich. Meine Bilder sind aber mind. 5x zu gross (20-60 KB, statt 3-5 KB)
Vielen Dank für ein bisschen Hilfe.
Grüsse,
Christoph