Ich fürchte, dass Gimp es nicht einschließt, weil es langweilig ist. Es ist einfach nicht die richtige Art, Elemente beim Entwerfen auszurichten, obwohl ich weiß, dass es manchmal als Abkürzung nützlich ist. Wie auch immer, der beste (richtige) Ansatz ist mit Guides:
A) Schritt 1 - Erstellen Sie die Hilfslinien
Gehen Sie zu Image-> Guide-> New Guide
Geben Sie an, ob Sie eine horizontale oder vertikale Führung wünschen
Geben Sie die Anzahl der Pixel an
Wiederholen Sie den Vorgang für eine weitere horizontale oder vertikale Hilfslinie (Sie können auch weitere Hilfslinien ausführen, um Breite und Höhe festzulegen).
Alternativ können Sie auch Hilfslinien erstellen, die aus den Linealen gezogen werden:
Ziehen Sie eine Hilfslinie (vom oberen Lineal ausgehend) auf die gewünschte Y-Koordinate.
Ziehen Sie eine Hilfslinie (beginnend mit dem linken Lineal) auf die gewünschte X-Koordinate.
B) Schritt 2 - Bewegen Sie die Leinwand
Sie können das Verschiebewerkzeug verwenden.
Wähle deine Ebene aus
Gehen Sie zu Extras -> Transformationswerkzeuge -> Verschieben
Ziehen Sie die Ebene auf die Hilfslinien. Gimp gibt Ihnen eine Hand mit den genauen Pixeln.
Eines der Konstruktionsprinzipien ist, dass die Dinge in Ihrem gesamten Projekt aufeinander abgestimmt sind. Wenn Sie die Anzahl der Ausrichtungen (Hilfslinien) reduzieren, erhalten Sie ein saubereres Design. Ich denke, aus diesem Grund enthält gimp kein Werkzeug, um die genauen Koordinaten anzugeben. Wenn Sie diesem Konstruktionsprinzip folgen möchten, ist es nur eine mühsame Arbeit, die genauen Koordinaten nacheinander anzugeben.
Genau das, was ich brauche - danke. Anwendungsfall: Erstellen eines Hintergrundbilds für die Einrichtung mit zwei Köpfen aus zwei anderen Hintergrundbildern. :)
Beachten Sie, dass Sie anscheinend nur die oberste sichtbare Ebene auswählen können. Das heißt, Sie müssen Ebenen über der auszurichtenden Ebene ausblenden (gimp 2.8.16).
Skippy le Grand Gourou
Verwendet dies die Einheit der Pixel? Es scheint mein Bild weit mehr zu bewegen, als ich erwarten würde.
Palswim
@palswim Bei mir hat es funktioniert, als ich auf die obere Gruppe von Schaltflächen (Ausrichten) anstatt auf die untere Gruppe (Verteilen) geklickt habe. Ja, es wird in Pixeln gemessen (zumindest in meiner Konfiguration).
Rodrigo
20
Hierzu gibt es ein Skript, das von der GIMP-Plugin-Registrierung heruntergeladen werden kann. Es wird genannt:
Verschieben Sie das Skript in ein %USERPROFILE\.gimp-2.8\scriptsVerzeichnis unter Windows, ~/Library/Application Support/GIMP/2.8/scriptsOS X oder ~/.gimp-2.8/scriptsLinux. ( Offizielle Anweisungen )
Klicks Filters-> Script-Fu-> Refresh scripts.
Der neue Menüpunkt wird am unteren Rand des LayerMenüs angezeigt Move to.
Fast perfekt! Wäre schön, wenn der Parameterdialog die aktuellen Koordinaten des Layers als Standardwerte verwenden würde.
Oliver Giesen
4
Sie müssen diese .scm-Datei herunterladen und unter %USERPROFILE%\.gimp-2.8\scriptsWindows ablegen. Führen Sie dann Filters-> Script-Fu-> aus. Refresh ScriptsSie ist dann als unterstes Element verfügbar. Layer->Move To
DarkWalker
3
Davids Antwort erledigt den Job ohne Skript.
Michael S.
1
Funktioniert NICHT bei negativem Offset. und die UX ist schlecht (behalten Sie nicht den letzten Wert usw.).
Loda
11
Ich benutze GIMP 2.6.11.
Mit diesen Python-Zeilen kann die aktive Ebene von der Python-Konsole an eine absolute Position wie (32, 64) verschoben werden:
Dadurch werden die Pixel in der Ebene verschoben, nicht die Ebene selbst. Ich muss die eigentliche Ebene verschieben. Was Sie vorgeschlagen haben, funktioniert möglicherweise, wenn die Ebene dieselbe Größe wie die Leinwand hat oder zumindest groß genug ist, um keine nicht transparenten Pixel in der Ebene zu beschneiden.
Scott
@Scott: Ich verstehe - sorry, ich habe keinen einfacheren Weg gefunden, aber zumindest habe ich herausgefunden, wie ich die Ebene mit einigen Python-Zeilen auf eine absolute Position verschieben kann.
Nicolas Kaiser
2
Zeile drei Ihres Codes sollte lauten img=gimp.image_list()[0]. Das _ hat bei mir nicht funktioniert.
Apple16
3
Es gibt eine sehr bequeme Möglichkeit, dies zu tun, seitdem Gimp v.2.10 verfügbar ist:
Doppelklicken Sie auf die Ebene, die Sie verschieben möchten (oder klicken Sie mit der rechten Maustaste darauf und wählen Sie "Ebenenattribute bearbeiten").
Das Dialogfeld "Ebenenattribute bearbeiten" wird angezeigt. Dort können Sie die X / Y-Offsets an Ihre Anforderungen anpassen
Einfach so einfach! :)
BEARBEITEN:
Da @Michael in seinem Kommentar zu meiner Antwort danach gefragt hat, füge ich ein Skript hinzu, das ALLE Bildebenen um die angegebenen x, y-Offsets verschiebt.
Damit es funktioniert, müssen Sie eine Datei im Gimp-Skriptordner erstellen (ein Verweis hierzu, falls erforderlich: oder ) mit folgendem Inhalt:
; This script is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
; This script is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;; Command is installed in "Layer->Move all layers..."
;;
;; The purpose of this script is to move all image layers by specified x,y offsets
;; X and Y offset parameters must be provided (use integer numbers as values)
;;
(define (dn-move-all-layers orig-image drawable
x-offset y-offset)
(define (get-all-layers img)
(let* (
(all-layers (gimp-image-get-layers img))
(i (car all-layers))
(bottom-to-top ())
)
(set! all-layers (cadr all-layers))
(while (> i 0)
(set! bottom-to-top (append bottom-to-top (cons (aref all-layers (- i 1)) '())))
(set! i (- i 1))
)
bottom-to-top
)
)
(define (move-layer orig-image layer-id offset-x offset-y)
(gimp-layer-set-offsets
layer-id
offset-x
offset-y
)
)
(let* (
(layers nil)
(layerpos 1)
(layer-id "")
(x-os 0)
(y-os 0)
(orig-selection 0)
)
(gimp-image-undo-disable orig-image)
(set! orig-selection (car (gimp-selection-save orig-image)))
(gimp-selection-none orig-image)
(set! x-os x-offset)
(set! y-os y-offset)
(set! layers (get-all-layers orig-image))
(while (pair? layers)
(move-layer orig-image (car layers) x-os y-os)
(set! layers (cdr layers))
(set! layerpos (+ layerpos 1))
)
(gimp-displays-flush)
(gimp-selection-load orig-selection)
(gimp-image-remove-channel orig-image orig-selection)
(gimp-image-undo-enable orig-image)
)
)
(script-fu-register "dn-move-all-layers"
"Move all layers..."
"Move each layer by specified x,y offsets."
"danicotra"
"danicotra"
"08/08/2019"
""
SF-IMAGE "Input image" 0
SF-DRAWABLE "Drawable" 0
SF-VALUE "X offset" "0"
SF-VALUE "Y offset" "0"
)
(script-fu-menu-register "dn-move-all-layers"
"<Image>/Layer/")
Wenn Sie es richtig machen, finden Sie einen neuen Befehl im Menü "Ebene" mit dem Namen "Alle Ebenen verschieben ...". Starten Sie ihn, und es wird ein Dialogfeld angezeigt, in dem Sie die X- und Y-Offsets festlegen können. Das ist es.
Gibt es eine Möglichkeit, dies ein bisschen schneller zu machen, wenn Sie viele Ebenen verschieben müssen (wie in Hunderten)? Es wäre großartig, wenn dieses Ding andocken könnte, damit ich es nicht für jede Ebene ansprechen müsste!
Michael
1
@Michael: Nun, ich denke, du solltest in diesem Fall mit ein paar Skripten arbeiten, ähnlich wie bei Nicolas Kaiser, der eine Lösung vorgeschlagen hat, aber mit einer Schleife auf Bildebenen ... Ich habe gerade meine Antwort bearbeitet, um dir zu zeigen, wie, sieh sie dir an. (Ich hätte eine separate Antwort darauf gegeben, aber das OP hat speziell darum gebeten, EINE Ebene zu verschieben, nicht alle. Wenn Sie eine neue Frage dazu stellen, würde ich gerne dort antworten und einige Screenshots und den Rest hinzufügen. - D) Cheers
Antworten:
Ich fürchte, dass Gimp es nicht einschließt, weil es langweilig ist. Es ist einfach nicht die richtige Art, Elemente beim Entwerfen auszurichten, obwohl ich weiß, dass es manchmal als Abkürzung nützlich ist. Wie auch immer, der beste (richtige) Ansatz ist mit Guides:
A) Schritt 1 - Erstellen Sie die Hilfslinien
Alternativ können Sie auch Hilfslinien erstellen, die aus den Linealen gezogen werden:
B) Schritt 2 - Bewegen Sie die Leinwand
Sie können das Verschiebewerkzeug verwenden.
Eines der Konstruktionsprinzipien ist, dass die Dinge in Ihrem gesamten Projekt aufeinander abgestimmt sind. Wenn Sie die Anzahl der Ausrichtungen (Hilfslinien) reduzieren, erhalten Sie ein saubereres Design. Ich denke, aus diesem Grund enthält gimp kein Werkzeug, um die genauen Koordinaten anzugeben. Wenn Sie diesem Konstruktionsprinzip folgen möchten, ist es nur eine mühsame Arbeit, die genauen Koordinaten nacheinander anzugeben.
quelle
Relative to
Image
.Offset
Feld ein.Distribute
/ (linker Pfeil).Offset
Feld ein.Distribute
/ (Pfeil nach oben).Das ist es!
quelle
Hierzu gibt es ein Skript, das von der GIMP-Plugin-Registrierung heruntergeladen werden kann. Es wird genannt:
Ebene verschieben nach (Download) .
Installieren:
Verschieben Sie das Skript in ein
%USERPROFILE\.gimp-2.8\scripts
Verzeichnis unter Windows,~/Library/Application Support/GIMP/2.8/scripts
OS X oder~/.gimp-2.8/scripts
Linux. ( Offizielle Anweisungen )Klicks
Filters
->Script-Fu
->Refresh scripts
.Der neue Menüpunkt wird am unteren Rand des
Layer
Menüs angezeigtMove to
.quelle
%USERPROFILE%\.gimp-2.8\scripts
Windows ablegen. Führen Sie dannFilters
->Script-Fu
-> aus.Refresh Scripts
Sie ist dann als unterstes Element verfügbar.Layer
->Move To
Ich benutze GIMP 2.6.11.
Mit diesen Python-Zeilen kann die aktive Ebene von der Python-Konsole an eine absolute Position wie (32, 64) verschoben werden:
Alternativ, wenn Sie nur den Inhalt der Ebene verschieben möchten:
Klicken Sie mit der rechten Maustaste auf Ebene> Transformieren> Versatz
oder Umschalt + Strg + O
quelle
img=gimp.image_list()[0]
. Das _ hat bei mir nicht funktioniert.Es gibt eine sehr bequeme Möglichkeit, dies zu tun, seitdem Gimp v.2.10 verfügbar ist:
Doppelklicken Sie auf die Ebene, die Sie verschieben möchten (oder klicken Sie mit der rechten Maustaste darauf und wählen Sie "Ebenenattribute bearbeiten").
Das Dialogfeld "Ebenenattribute bearbeiten" wird angezeigt. Dort können Sie die X / Y-Offsets an Ihre Anforderungen anpassen
Einfach so einfach! :)
BEARBEITEN:
Da @Michael in seinem Kommentar zu meiner Antwort danach gefragt hat, füge ich ein Skript hinzu, das ALLE Bildebenen um die angegebenen x, y-Offsets verschiebt.
Damit es funktioniert, müssen Sie eine Datei im Gimp-Skriptordner erstellen (ein Verweis hierzu, falls erforderlich: oder ) mit folgendem Inhalt:
Wenn Sie es richtig machen, finden Sie einen neuen Befehl im Menü "Ebene" mit dem Namen "Alle Ebenen verschieben ...". Starten Sie ihn, und es wird ein Dialogfeld angezeigt, in dem Sie die X- und Y-Offsets festlegen können. Das ist es.
quelle