ScaleAll

Allgemein ScaleAll 1.42

AW: ScaleAll

Eigentlich müsste man die max. Höhe und die max. Breite gleichzeitig angeben können.
Zustimmung.

sieht man bei längeren Pfaden nicht das (meist besonders interessierende) Ende des Pfades. Eine Darstellung mit ... in der Mitte wäre praktischer.
Es sind doch Tooltipps integriert, d.h. wenn Du mit der Maus über die Box mit der Pfadanzeige gehst, wird Dir der komplette Pfad angezeigt.

Irgendwas ist ja immer ...
So ist es. Erst beim ernsthaften Gebrauch mancher Skripte/Funktionen fällt einem erst richtig auf, was noch nicht so geschmeidig läuft ;).

Gruß
Alfred
 
AW: ScaleAll

  1. Mein Ziel war es, Bilder für die Anzeige auf einem Tablet (1280x800) zu skalieren, damit dies nicht auf dem Gerät geschehen muss. Jetzt kann man aber nur die max. Höhe oder nur die max. Breite angeben. Sind Hoch- und Querformate (darunter auch sehr breite Panoramen) gemischt, kommt man in einem Rutsch nicht zum Ziel, weil ja mal die Höhe und mal die Breite des Tabletbildschirms der limitierende Faktor sein kann. Eigentlich müsste man die max. Höhe und die max. Breite gleichzeitig angeben können.
  2. Ich habe als Speicherort ein Verzeichnis erstellt, dass unterhalb des aktuellen Computerverzeichnisses liegt. Das Skript hat dann sehr lang gearbeitet und ich bin stutzig geworden bei der Fortschrittsanzeige "1983 von 1423" ;D. Offensichtlich werden in dieser Konstellation die im neuen Speicherverzeichnis gerade angelegten Bilder gleich nochmal mit verarbeitet.
  3. Auch wenn in der Computeransicht die Anzeige der Bilder durch ein Auswahlskript gefiltert ist, führt "alle Bilder im aktuellen Verzeichnis" dazu, dass auch die gerade eigentlich "unsichtbaren" Bilder mit verarbeitet werden.
  4. In den beiden Feldern, die den Ablageort bezeichnen sieht man bei längeren Pfaden nicht das (meist besonders interessierende) Ende des Pfades. Eine Darstellung mit ... in der Mitte wäre praktischer.
  5. Wie viele Bilder bearbeitet werden, erfährt man erst über den Hinweisdialog nachdem man <Start> gedrückt hat. In diesem Dialog sollt man die Bearbeitung dann auch noch abbrechen können. Noch schöner wäre es vielleicht, wenn die Gesamtzahl der Bilder je nach selektierter Bilderquelle unmittelbar in dem Von-Feld der Fortschrittsanzeige sichtbar wäre.
  6. Wenn durch das Skript ein neuer Ordner angelegt wird, dann könnte danach die Computeransicht direkt aktualisiert werden (FF_UpdateDir), der neue Ordner wäre dann in FF unmittelbar sichtbar.

  1. Wie wär's mit "längste Seite" ?
  2. Das sehe ich mir an und werde ggf. versuchen es zu ändern.
  3. Hast Du eine Idee wie man das auf einfache Weise filtern könnte?
  4. Alfred hat bereits auf den Tooltip hingewiesen.
  5. Eine Meldung der zu skalierenden Bilderanzahl mit Abfrage ähnlich "Wirklich bearbeiten - Ja / Nein" oder direkte Anzeige unten rechts (sicherlich besser) werde ich einbauen.
  6. FF_UpdateDir (ab FF 3.10) werde ich einbauen.
 
AW: ScaleAll

Mein Ziel war es, Bilder für die Anzeige auf einem Tablet (1280x800) zu skalieren, damit dies nicht auf dem Gerät geschehen muss.
Gleiches gilt, wenn ich Bilder für den Beamer (1024x768) vorbereite. Wenn ich längste Seite einstellen, werden zwar alle Bilder so skaliert, aber auf dem Beamer sind die Hochformate dann eben auch 1024 hoch, obwohl der Beamer in der Höhe nur 768 zeigt. Jetzt muss der Beamer doch wieder selbst skalieren. (Und drehen des Beamers im Betrieb ist eher unüblich ;).)

Für diesen Fall dürften die Bilder an der längsten Seite (= Höhe) nur 768 Pixel hoch sein, in der Breite dann proportional noch geringer.

Gruß
Alfred
 
AW: ScaleAll

Wie wär's mit "längste Seite" ?
Ich bin nicht sicher, ob das zielführend ist. Was sollte da z.B. bei meinem Anwendungsfall eingegeben werden? Die längste Seite darf bei einem Querformatbild 1280 px sein, bei einem Hochformatbild aber nur 800 px.
[*]Hast Du eine Idee wie man das auf einfache Weise filtern könnte?
Ich glaube, das Problem besteht nur, weil du mit objfolder.files arbeitest. FF_GetSelection(0) berücksichtigt die Filterung durch Auswahlskripte.
Alfred hat bereits auf den Tooltip hingewiesen.
Ja, der Tooltip war mir gar nicht aufgefallen. Eine Anpassung des Feldes so, dass das Pfadende direkt angezeigt wird, wäre trotzdem nicht schlecht.
 
AW: ScaleAll

Gleiches gilt, wenn ich Bilder für den Beamer (1024x768) vorbereite. Wenn ich längste Seite einstellen, werden zwar alle Bilder so skaliert, aber auf dem Beamer sind die Hochformate dann eben auch 1024 hoch, obwohl der Beamer in der Höhe nur 768 zeigt. Jetzt muss der Beamer doch wieder selbst skalieren. (Und drehen des Beamers im Betrieb ist eher unüblich ;).)

Für diesen Fall dürften die Bilder an der längsten Seite (= Höhe) nur 768 Pixel hoch sein, in der Breite dann proportional noch geringer.

Überredet, Ich werde versuchen eine Möglichkeit max. Breite und max. Höhe vorgebbar zu machen.
Was man scheut, ist der Umbau des Dialogs um Platz für eine neue Eingabe zu machen. Das ist manchmal mehr Arbeit als die ganze Programmiererei.

Ich glaube, das Problem besteht nur, weil du mit objfolder.files arbeitest. FF_GetSelection(0) berücksichtigt die Filterung durch Auswahlskripte.

Bei der Auswahl "alle im akt. Verzeichnis und den Unterverz." sehe ich keine andere Möglichkeit. Aber für die anderen Auswahlen kann ich natürlich FF_GetSelection verwenden. Puh - viel Arbeit.
 
Zuletzt bearbeitet:
AW: ScaleAll

Überredet, Ich werde versuchen eine Möglichkeit max. Breite und max. Höhe vorgebbar zu machen.

Danke, damit gibt es wieder einen Arbeitsschritt weniger.

Was man scheut, ist der Umbau des Dialogs um Platz für eine neue Eingabe zu machen. Das ist manchmal mehr Arbeit als die ganze Programmiererei.
Stimmt, aber ich denke für diese Eingabe lohnt es sich.

Klaus
 
AW: ScaleAll

Version 1.30
  1. Auswahl der Bildgröße erweitert um "Breite max. + max. Höhe"
  2. Bug bei Wahl des Speicherorts unterhalb der Bildauswahlebene beseitigt
  3. Änderungen bei der Bildauswahl um Filterung in der Computeransicht außer bei "alle im akt. Verz. + den Unterverz." zu berücksichtigen
  4. Anzeige unten rechts (Fortschritt) der zu skalierenden Bilderanzahl abhängig von der Bildauswahl.
    Wird bei laufendem Skript die Selektierung geändert, kann die Anzeige mit Aktualisieren oder Anklicken eines Auswahlkästchen aktualisiert werden. Das bezieht sich auch auf die Tooltips der Auswahlkästchen.
  5. Nach Anlegen eines neuen Ordners wird jetzt die Computeransicht automatisch aufgefrischt.
  6. Ein paar Tooltips wurden hinzugefügt (sichtbar ab FF 3.20.06)
  7. Updatefunktion mit Fortschrittsanzeige hinzugefügt
  8. Diverse kleine Änderungen
  9. Kurzbeschreibung überarbeitet


Anmerkungen:

zu 3)
Die Bildauswahl erfolgt jetzt generell statt mit "objfolder.files" mit "FF_GetSelection(0)" außer bei "alle im akt. Verz. + den Unterverz.".
Damit wird die Änderung in Version 1.16 zurückgenommen, die notwendig wurde durch Probleme bei Skalierung von Bildern auf einem Speicherstick (siehe Seite 6 in diesem Thread die Beiträge #109 bis #116). Ich habe das Problem jetzt hoffentlich anders gelöst - bitte testen.
zu 5)
Das Auffrischen erfolgt mit FF_SetImagePath()
 
AW: ScaleAll

Hallo Harald,
das funktioniert alles ganz prima. Danke! (Das Thema Speicherstick habe ich allerdings nicht getestet.)

Ein Problem noch: Ich habe den Zielordner für die bearbeiteten Bilder gelöscht. Der erneute Skriptstart scheitert dann bei Zeile 827 mit "Pfad nicht gefunden". (Bei mir ist in Speichern unter -> Optionen -> In Zielverzeichnis wechseln aktiviert).

Der Button Aktualisieren könnte evtl. noch einen Tooltipp vertragen. Dass bei aktivem Skript die Auswahl noch geändert werden kann, ist ein Komfortfeature, das ruhig mehr herausgestellt werden sollte.

*Krümelkackermodus ein*
Könnte es sein, dass in der Vorversion dieser merkwürdige Rahmen um die Versionsangabe noch nicht vorhanden war? 8-) Ich bin immer versucht, da was einzugeben.
*Krümelkackermodus aus*


Die Nutzung von FF_SetImagePath() zum Auffrischen des Computerverzeichnisses hat m.E. einen Eintrag im Skriptwiki verdient. Soll ich das übernehmen?
 
AW: ScaleAll

  1. ... das funktioniert alles ganz prima. Danke!
    Das Thema Speicherstick habe ich allerdings nicht getestet.
  2. Ein Problem noch: Ich habe den Zielordner für die bearbeiteten Bilder gelöscht. Der erneute Skriptstart scheitert dann bei Zeile 827 mit "Pfad nicht gefunden". (Bei mir ist in Speichern unter -> Optionen -> In Zielverzeichnis wechseln aktiviert).
  3. Der Button Aktualisieren könnte evtl. noch einen Tooltipp vertragen. Dass bei aktivem Skript die Auswahl noch geändert werden kann, ist ein Komfortfeature, das ruhig mehr herausgestellt werden sollte.
  4. Könnte es sein, dass in der Vorversion dieser merkwürdige Rahmen um die Versionsangabe noch nicht vorhanden war? 8-) Ich bin immer versucht, da was einzugeben.
  5. Die Nutzung von FF_SetImagePath() zum Auffrischen des Computerverzeichnisses hat m.E. einen Eintrag im Skriptwiki verdient. Soll ich das übernehmen?

  1. Freut mich.
    Wäre schön wenn Du den Speichersticktest irgendwann mal nachholst ;).
  2. Ich dachte so etwas hätte ich abgefangen ???. Ich kontrolliere das nochmal!
  3. Muss mir mal einen sinnvollen Text dazu überlegen oder hast du einen Vorschlag?
  4. Dann nehme ich den Rahmen mal weg :D.
  5. Bitte übernimm Du das!
 
AW: ScaleAll

Hallo Andreas,
nochmal zu Punkt 2)

Wenn ich den Zielordner lösche und dann starte erhalte ich die Meldung
Das Verzeichnis xyz als Speicherort existiert nicht.
Es muss neu angelegt werden!
Beschreibe bitte nochmal genau, wie Du die Fehlermeldung produziert hast.
 
AW: ScaleAll

Wäre schön wenn Du den Speichersticktest irgendwann mal nachholst ;).
Erledigt. Skript läuft auch auf einer Speicherkarte ohne Probleme.
nochmal zu Punkt 2)
Beschreibe bitte nochmal genau, wie Du die Fehlermeldung produziert hast.
  1. Speicherort: Unterverzeichnis des Quellverzeichnisses: \verkleinert
  2. Bearbeitung starten, Skript läuft durch und wird beendet
  3. das Unterverzeichnis außerhalb von FF löschen
  4. beim erneuten Start des Skripts kommt die Fehlermeldung
 
Zuletzt bearbeitet:
AW: ScaleAll

Dank für den Speicherkartentest!

Aber ...
  1. Speicherort: Unterverzeichnis des Quellverzeichnisses: \verkleinert
  2. Bearbeitung starten
  3. das Unterverzeichnis außerhalb von FF löschen
  4. beim erneuten Start des Skripts kommt die Fehlermeldung

Wenn ich das Unterverzeichnis außerhalb von FF löschen will, meldet mir das Betriebssystem
Die Aktion kann nicht abgeschlossen werden, da der Ordner (oder eine Datei darin) in einem anderen Programm geöffnet ist.

Schließen Sie den Ordner und wiederholen Sie den Vorgang.
Ich muss jetzt in FF erst einen darüber liegenden Ordner im Computerverzeichnis auswählen, bevor ich dann extern den Unterordner löschen kann. Das Skript läuft danach fehlerfrei durch indem es den Unterordner erneut anlegt.

Kannst Du bei Deinem System den Fehler skripttechnisch abfangen und mir dann die Lösung zum Einbauen mitteilen? Ich weiß keine andere Lösung.
 
AW: ScaleAll

Mein Vorschlag für den Tooltiptext: ...
Mein Vorschlag: Aktualisiert die Anzahl der zu bearbeitenden Bilder nach Verzeichniswechsel oder veränderter Bildauswahl
Wenn ich das Unterverzeichnis außerhalb von FF löschen will, meldet mir das Betriebssystem ...
Da liegt wohl ein Missverständnis vor, so kompliziert meine ich das gar nicht. Das Verzeichnis wird nicht während des Skriptlaufs gelöscht, sondern erst danach. Ich hab oben den Ablauf mal noch etwas klarer formuliert.
 
AW: ScaleAll

  1. Mein Vorschlag: Aktualisiert die Anzahl der zu bearbeitenden Bilder nach Verzeichniswechsel oder veränderter Bildauswahl
  2. Da liegt wohl ein Missverständnis vor, so kompliziert meine ich das gar nicht. Das Verzeichnis wird nicht während des Skriptlaufs gelöscht, sondern erst danach. Ich hab oben den Ablauf mal noch etwas klarer formuliert.

zu 1)
Prima!

zu 2)
Ich habe das schon richtig verstanden. Ich habe genauso gehandelt wie von Dir oben beschrieben. Die von mir genannte Meldung erscheint, wenn ich nach Beendigung des Skripts extern das Unterverzeichnis löschen will.
 
AW: ScaleAll

zu 2)
Die von mir genannte Meldung erscheint, wenn ich nach Beendigung des Skripts extern das Unterverzeichnis löschen will.
Merkwürdig. Aber es dürfte genügen, den Fehler abzufangen, damit das Skript überhaupt startet:
Code:
On Error Resume Next
Set objFolder = objFS.GetFolder(FF_GetImagePath())				'aktiver Ordner
On Error Goto 0
Wird dann die Bearbeitung angestoßen, läuft das Skript in die von Dir programmierte Fehlerbehandlung und der Anwender ist informiert:
exprog7p20o.jpg
 
AW: ScaleAll

Hallo Andreas,
nach einigem herumprobieren ist es mir endlich auch gelungen, den von Dir beschriebenen Fehler zu erzeugen. Ich musste dazu den Unterordner in FixFoto über das Kontextmenü löschen. Danach wird das gelöschte Verzeichnis und auch die Bilder in der Computeransicht weiterhin angezeigt.
Wird jetzt Scaleall mit Auswahl des eigentlich nicht mehr vorhandenen Ordners erneut gestartet, kommt es zu dem Fehler. Dieser lässt sich zwar in der von Dir vorgeschlagenen Weise abfangen, aber es kommt bei mir zu einem anhaltenden Flackern der Computeransicht. Ich habe dann verschiedenes ausprobiert und bin nur mit dem folgenden Code zu einer zufriedenstellenden Lösung gekommen:

Code:
OrdnerName = FF_GetImagePath
if not objFS.FolderExists(OrdnerName) then
	msgbox "Der Ordner" & vbNewLine & OrdnerName & vbNewLine & "wurde gelöscht." & vbNewLine & vbNewLine & _
		   "Das Computerverzeichnis wird jetzt aktualisiert" & vbNewLine & "und das Skript beendet.",vbExclamation,"Abbruch"
	do
		pos = InStrRev(OrdnerName,"\")
		if pos > 0 then
			OrdnerName = left(OrdnerName,pos -1)
			if objFS.FolderExists(OrdnerName) then exit do
		end if
	loop
	FF_SetImagePath OrdnerName
	exit sub
end if

Bitte teste das nochmal bei der neuen Version 1.31 die ich gleich zur Verfügung stellen werde.
 
AW: ScaleAll

Version 1.31

  • Tooltip zum Button Aktualisieren
  • Versionsangabe ohne Rahmen
  • Abfangen des Fehlers bei gelöschtem Zielverzeichnis
 
AW: ScaleAll

Harald, jetzt könntest Du die Option, sowohl für Breite wie für Höhe einen Maximalwert vorzugeben, auch in ScalePrint einbauen ;).

Gruß
Alfred
 
Zurück
Oben