Makro-Funktion erweitern

  • Ersteller Ersteller MHX
  • Erstellt am Erstellt am

MHX

Mitglied
Registriert
28.03.03
Beiträge
16
Hallo,

ich habe einen Ordner mit vielen Bildern (jedesmal etwa 100), diese möchte ich einmal als JPG mit 100% Qualität speichern, wobei dem Dateinamen noch "cd-" vorangestellt wird. Soweit kein Problem. Kann ich mit der Makrofunktion einstellen kovertiere nach JPG und Dateiname "cd-%name%", die 100% habe ich in den Optionen eingestellt.
Nun möchte ich aber noch jedes Bild auch als TIF konvertieren und speichern (ohne das "cd-" Kürzel, also nur der Originalname). Das geht momentan nicht, da nur einmal konvertieren erlaubt ist pro Makro.
Lässt sich das vielleicht ändern?
Und beim Speichern vielleicht auch die Qualität auswählbar machen?

Ganz klasse wärs, wenn man beim Skalieren noch sagen könnte, daß nicht entweder Länge oder Breite auf xx Pixel skaliert werden soll und die andere Seite proportional, sondern wenn man sagen könnte, die längere Seite auf xx Pixel skalieren und die andere proportional. Ich benötige die Bilder noch im Format 400x(...) oder (...)x400, wobei die längste Seite 400 Pixel beträgt. Also je nachdem, wierum gedreht das Bild ist unterschiedlich.

Soweit meine Wünsche. :)

Gruß,
Michael
 
Die neue Script-Verarbeitung ermöglicht dies und mehr.
 
Ah, prima, sehr gut! :)
Bin leider in VBScript ind JScript nicht so zu Hause, kann besser Pascal und C. Ich habe mir gerade mal ein Skript geschrieben, wobei ich mir die Hilfe der Befehle mit google gesucht habe.
Es compiliert, funktioniert jedoch nicht, bei Ausführen beendet sich FixFoto ohne Kommentar, also nehme ich an, daß mein Skript einen Fehler verursacht.
Vielleicht ist ja jemand hier so nett und kann mir sagen, wie ich da am besten vorgehe (aber nicht sooo wichtig, kann auch selber rumprobieren). Danke auf jeden Fall!

[pre]
dim i
dim name, fname
dim imagenum
dim breite, hoehe

imagenum = FF_GetImageCount

for i = 0 to imagenum - 1
lfname = FF_GetImageName(i)
lcall FF_LoadImage(fname)
llaenge = Len(fname)
lname = Left(fname, laenge-4)
lcall FF_SaveImage"cd" &name & ".jpg",100)
lcall FF_SaveImage(name & &".tif",100)
l
lbreite = FF_GetImageWidth()
lhoehe = FF_GetImageHeight()
lif (breite > hoehe) then
l l call FF_HQScale(400,hoehe,true)
lelse
l l call FF_HQScale(breite,400,true)
lend if
next
[/pre]
 
Hallo MHX,

der Fehler in Deinem Makro liegt in folgender Zeile:

call FF_SaveImage"cd" &name & ".jpg",100)
Dies erzeugt z. B. bei folgendem Bildpfad
c:\...\eigene bilder\test\bildxy.jpg
resultierenden String:
cd-c:\...\eigene bilder\test\bildxy.jpg

Dies ist ein ungültiger Pfad und verursacht einen Absturz, anstatt eine Fehlermeldung auszuwerfen.


@ J. K.
Bitte solche groben Fehler in Fixfoto auffangen und ab ins Debugfenster. Damit Anfänger nicht gleich verzweifeln und den Fehler korrigieren können (wenn sie das speichern vergessen haben).

Weil schon beim Schreiben:

Bitte FScript um folgenden Funktion erweitern:

FF_FixFoto_Path() 'Für das Ablegen von INI's im Fixfoto-Programmpfad
Wird wahrscheinlich bei etwas größeren Projekten gebraucht.

Bitte Verwaltung von Scripten etwas ändern:
  • Wenn ich einen neuen Eintrag speichern will, muss ich nochmal speichern drücken. Sonst ist die Datei nicht auf der Magnetplatte. Unnötig. :(
  • Entspricht zwar nicht ganz Fixfoto-Philosophie, aber bei 'speichern' bitte speichern und bei 'speichern unter' unter neuen Namen speichern. Beim Programmieren wird oft gespeichert und dann ist es lästig, jedesmal zweimal [Enter] zu drücken.
  • Als alter DOS-Fuchs hätte ich noch folgende Bitte:
    Zusätzliche Tastenkürzel für Kopieren [Strg-Ins], Einfügen [Shift-Ins], Ausschneiden [Shift-Del]. Leider funktionieren diese Standard-Kürzel nicht. Nehme an, daß Editfeld ist selbstprogrammiert, da in Windows-Standardeditfeldern diese von Haus aus implementiert sind. (Alter Hase will sich nicht mehr umgewöhnen l;) )
  • Weil schon dabei: Ein einfaches Undo wäre nicht schlecht.
Abschließend noch ein Ausblick
Es wäre auch gut die Scripte von der Windowsoberfläche direkt zu starten. Dazu müsste aber, glaube ich, noch etwas implementiert (und registriert) werden.
Ausserdem müsste das Script dann erfahren können, unter welcher Oberfläche es läuft, da sonst bei der Dateiauswahl ziemliche Schwierigkeiten auftreten können.

So, habe mich wieder mal ausgetobt ;D .

Schönen Gruß,

W. P.
 
Besten dank, das wars, funktioniert jetzt bestens!

Das mit dem Ausschneiden ist mir auch aufgefallen, habe Shift+Entf benutzt und dann ging Pasten nicht mehr oder so. Und die Zeile mit Ctrl+Z (Undo) wiederholen auch nicht. Könnte mich aber auch dran gewöhnen, für das Skript (so oft mach ich das ja nicht) nur Ctrl+C, Ctrl+X und Ctrl+V zu benutzen.

Das mit dem Speichern und doppelt bestätigen gefällt mir auch nicht so gut.

Gruß,
Micha
 
Zurück
Oben