Problem mit dem Dialog Ausschneiden

Mecki14

Mitglied
Registriert
15.03.06
Beiträge
2.833
Ort
Düsseldorf
Trophäen
einige {*} {!} * !
Ich stoße immer wieder auf folgendes Problem:
Ich möchte per Skript den Dialog Ausschneiden mit vorgegebenen Schnittmarken zum proportionalen Beschneiden aufrufen. Wenn dabei ein querformatiger Beschnitt bei einem hochformatigen Bild oder ein hochformatiger Beschnitt bei einem querformatigen Bild erfolgen soll, sind die Schnittmarken nicht richtig gesetzt. Erst wenn man im Dialog Hoch/Quer betätigt, sind sie richtig. Ich helfe mir dann im Skript mit folgendem Code:

Code:
'Markierungsauswahl (nur zur Erläuterung):
'0 - Markierung "Aus", Beschnitt nicht proportional (hier nicht zulässig)
'1 - Markierung "Goldener Schnitt", Beschnitt proportional
'2 - Markierung "Drittel", Beschnitt proportional
'3 - Markierung "Deutschland ab 10", Beschnitt proportional
'4 - Markierung "Deutschland bis 9", Beschnitt proportional
'5 - Markierung "Aus", Beschnitt proportional

Markierung = 5

if Schnittbreite > Schnitthoehe then SollHoch = 1 else SollHoch = 0
if Bildbreite > Bildhoehe then IstHoch = 1 else IstHoch = 0
if Schnittbreite = Schnitthoehe then SollHoch = 1 : IstHoch = 1

if (SollHoch Xor IstHoch) = 1 then
	if IstHoch = 1 then 
		msg = "Ein querformatiges Bild soll hochformatig beschnitten werden."
	else
		msg = "Ein hochformatiges bzw. quadratisches Bild soll querformatig beschnitten werden."
	end if
	msgbox msg & vbNewLine & "Daher muss im folgenden Dialog die Taste 'Hoch/Quer' betätigt werden!", _
	vbInformation,"Unbedingt beachten!"
	FF_SetParam "0,0," & Schnittbreite & "," & Schnitthoehe & "," & Bildhoehe & "," & Bildbreite & "," & Markierung & ",1"
else
	FF_SetParam "0,0," & Schnittbreite & "," & Schnitthoehe & "," & Bildbreite & "," & Bildhoehe & "," & Markierung & ",1"
end if

Antwort = FF_MultiDialog ("MultiCanvas",2)
if Antwort < 0 then
	msgbox "Das Bild wurde nicht beschnitten!",vbInformation,"Hinweis"
end if

Der Anwender ist also gefordert. Man kann dann im Skript durch Abfrage der Parameter kontrollieren, ob der Anwender der Anweisung Folge geleistet hat, gut ist die Lösung aber nicht.

Hat jemand einen Vorschlag oder kann Joachim hier etwas ändern?
 
Zuletzt bearbeitet:
AW: Problem mit dem Dialog Ausschneiden

Ist zwar OT, aber warum einmal > und einmal >= ?

Code:
if Schnittbreite > Schnitthoehe then SollHoch = 1 else SollHoch = 0
if Bildbreite >= Bildhoehe then IstHoch = 1 else IstHoch = 0
 
AW: Problem mit dem Dialog Ausschneiden

...vielleicht, damit er das Quadrat mit behandeln kann?
 
AW: Problem mit dem Dialog Ausschneiden

Übrigens, es ist noch komplizierter.
Ist die Art des Ist- und Soll-Formats unterschiedlich, muss beim Dialogparameter Bildbreite und Bildhoehe vertauscht werden. Ich habe soeben oben den Code berichtigt.
 
AW: Problem mit dem Dialog Ausschneiden




Wenn ich ein Quadratisches in ein Qaudratisches beschneiden will
(also soll=200x200 ist=400x400)
dann sagt das Script das ich Hoch in Quer umschneiden wolle und somit dringend
die Taste "Hoch/Quer" betätigen soll.

Ist aber überflüssig bei Quadratischem beschnitt.
 
AW: Problem mit dem Dialog Ausschneiden

...Ist aber überflüssig bei Quadratischem beschnitt.

Hallo Heinz,
Du hast teilweise recht. Etwas quadratisches aus etwas quadratischem zu schneiden, bedarf keiner besonderen Beachtung. Aber soll ein quadratisches Bild querformatig beschnitten werden, muss auch Hoch/Quer betätigt werden, soll es quadratisch oder hochformatig beschnitten werden, ist das nicht notwendig.

Ich hatte ohne nähere Prüfung gehofft, dies mit >= abzudecken, was sich aber bei Kontrolle als falsch erwies.

Daher folgende Änderung im Skriptcode (oben im Code bereits vorgenommen):
Code:
if Schnittbreite > Schnitthoehe then SollHoch = 1 else SollHoch = 0
if Bildbreite > Bildhoehe then IstHoch = 1 else IstHoch = 0
if Schnittbreite = Schnitthoehe then SollHoch = 1 : IstHoch = 1

Jetzt müsste es für alle Fälle stimmen.

Aber die Betrachtung aller Einzelfälle, und da lieber Heinz sind wir uns sicher einig, geht am eigentliche Problem vorbei. Eine Lösung liegt nicht vor.
 
AW: Problem mit dem Dialog Ausschneiden

Hallo Joachim,
hast Du keine Idee wie das Problem zu lösen wäre?
Vielleicht könnte man das Ganz über die letzte Ziffer der Parameterkette steuern.

1 - wie gehabt
2 - querformatige und hochformatige Schnittvorgaben werden unabhängig vom Bildformat übernommen
3 - wie 2, jedoch wird Hoch/Quer deaktiviert

Das wäre eine klasse Lösung und damit könnte man z.B. die Bedienung eines Skripts wie Formatnormierung erheblich vereinfachen und sicherer machen.
 
AW: Problem mit dem Dialog Ausschneiden

Nur durch das Entfernen der von den Benutzern gewünschten automatischen Anpassung des Beschnittrahmens an die Bildlage.

Dann könnte Harald sein Script 8-) doch theoretisch die Entscheidung des Programmes über eine GETPARAM-Abfrage während des Scriptablaufes erfragen? ...Zumindest wenn die 'automatische Anpassungsprozedur' zu diesem Zeitpunkt schon das Ergebnis hat...
 
AW: Problem mit dem Dialog Ausschneiden

Nur durch das Entfernen der von den Benutzern gewünschten automatischen Anpassung des Beschnittrahmens an die Bildlage.

Hallo Joachim,
die von den Benutzern irgendwann mal gewünschte Anpassung ist mir klar. Aber ich habe mir vorgestellt, dass man unabhängig davon per Skript das anders steuern kann. Keine Chance?


Dann könnte Harald sein Script 8-) doch theoretisch die Entscheidung des Programmes über eine GETPARAM-Abfrage während des Scriptablaufes erfragen? ...Zumindest wenn die 'automatische Anpassungsprozedur' zu diesem Zeitpunkt schon das Ergebnis hat...

Das Ergebnis der GETPARAM-Abfrage liegt erst nach dem Beschnitt vor.
 
Zurück
Oben