PDA

Vollständige Version anzeigen : Bild zentrieren


24dan
08.12.2008, 13:15
Hallo ich suche eine Methode ein eingelesenes BMP File (kleiner 1024x600) einfach auf einem Hintergrund 1024x600 zu zentrieren.

Im Moment verwende ich die Funktion
gimp-layer-set-offsets Layer x y Doch da habe ich das Problem ich nicht weis wo das Bild mit seiner rechten oberen Ecken den eigentlich am nach dem Einladen in die xcf Vorlage mit dem Hintergrund liegt.

Kann jemand einen Tip geben wie man das Problem de zentrierens lösen kann?

Verwende gimp 2.6 unter win

ill66
08.12.2008, 14:04
nimm doch einfach das align-ment-tool:stock-tool-align-22 - dafür isses ja da ;)
damit auf die gewünschte ebene klicken und in den werkzeug-einstellungen im dropdown-feld "seite" (oder heißt das "bild"?) auswählen und :stock-hcenter-24: und :stock-vcenter-24: klicken. voila.

24dan
08.12.2008, 15:09
nimm doch einfach das align-ment-tool:stock-tool-align-22 - dafür isses ja da ;)
damit auf die gewünschte ebene klicken und in den werkzeug-einstellungen im dropdown-feld "seite" (oder heißt das "bild"?) auswählen und :stock-hcenter-24: und :stock-vcenter-24: klicken. voila.

Hi, grundsätzlich ist das richtig, vielen Dank für Deine Antwort, doch ich suche hier mit dem Threat eine Möglichkeit gimp 2.6 zu scripten, dazu brauche ich eine Funktion die diese Aufgaben anbietet.
Mit dem Script welches ich schreibe klicke ich nicht ein einzigesmal im gimp sondern lass die Aufgaben einfach in einem batch script, Gimp im Hintergrund machen, das spart mir bei den immer gleichen Aufgaben sehr viel Zeit.;)

24dan
10.12.2008, 15:25
Okay hier meine Lösung:

;

stuff...

; Variablen definieren
(let*
(
(varBmpBild (car (file-bmp-load 1 varBildpfad varBildpfad))) ;Bild öffnen
(varBmpBreite (car (gimp-image-width varBmpBild))) ;Breite des Bildes holen
(varBmpHoehe (car (gimp-image-height varBmpBild))) ;Höhe des Bildes holen
(varBreite (/ (* 600 varBmpBreite) varBmpHoehe)) ;Skalierungsparameter Breite rechnen
(varTmp1 0)
(varOffx 0)
(varOffy 0)
(varVorzeichen 0)
)
; Offset für die Verschiebung in X Richtung
(if (> varBmpBreite 1024)
(begin
(set! varTmp1 (- varBmpBreite 1024))
(set! varVorzeichen -1)
)
)
(if (< varBmpBreite 1024)
(begin
(set! varTmp1 (- 1024 varBmpBreite))
(set! varVorzeichen 1)
)
)
(if (= (modulo varTmp1 2) 1)
(begin
(set! varTmp1 (+ varTmp1 1))
)
)
(set! varOffx (* (/ varTmp1 2) varVorzeichen))

; Offset für die Verschiebung in Y Richtung
(if (> varBmpHoehe 600)
(begin
(set! varTmp1 (- varBmpHoehe 600))
(set! varVorzeichen -1)
)
)
(if (< varBmpHoehe 600)
(begin
(set! varTmp1 (- 600 varBmpHoehe))
(set! varVorzeichen 1)
)
)
(if (= (modulo varTmp1 2) 1)
(begin
(set! varTmp1 (+ varTmp1 1))
)
)
(set! varOffy (* (/ varTmp1 2) varVorzeichen))
(gimp-layer-set-offsets varBildLayer varOffx varOffy)

stuff...