Bagaimana cara memindahkan layer ke posisi XY tertentu dalam kanvas di Gimp?
Saat ini, satu-satunya cara yang bisa saya temukan adalah hanya melihatnya dengan panduan dan / atau posisi mouse. Saya ingin menentukan koordinat X dan Y yang tepat.
Bagaimana cara memindahkan layer ke posisi XY tertentu dalam kanvas di Gimp?
Saat ini, satu-satunya cara yang bisa saya temukan adalah hanya melihatnya dengan panduan dan / atau posisi mouse. Saya ingin menentukan koordinat X dan Y yang tepat.
Jawaban:
Saya khawatir Gimp tidak memasukkannya karena membosankan. Ini bukan cara yang tepat untuk menyelaraskan elemen ketika Anda mendesain, meskipun saya menyadari bahwa kadang-kadang berguna sebagai jalan pintas. Bagaimanapun, pendekatan terbaik (benar) adalah dengan panduan:
A) Langkah 1 - Buat panduan
Atau, Anda juga dapat membuat panduan yang diseret dari penggaris:
B) Langkah 2 - Pindahkan kanvas
Anda dapat menggunakan alat bergerak.
Salah satu prinsip desain adalah Anda harus menyelaraskan seluruh proyek Anda. Mengurangi jumlah pelurusan (panduan) membantu Anda mendapatkan desain yang lebih bersih. Saya pikir ini sebabnya mengapa gimp tidak menyertakan alat untuk menentukan koordinat yang tepat. Jika Anda ingin mengikuti prinsip desain ini, menentukan koordinat yang tepat satu per satu menjadi pekerjaan yang membosankan.
Relative to
Image
.Offset
bidang.Distribute
/ (panah kiri).Offset
bidang.Distribute
/ (panah atas).Itu dia!
Ada skrip untuk melakukan ini yang dapat diunduh dari registri Plugin GIMP. Itu disebut:
Pindahkan Lapisan Ke (unduh) .
Pindahkan skrip ke %USERPROFILE\.gimp-2.8\scripts
direktori di Windows, ~/Library/Application Support/GIMP/2.8/scripts
di OS X atau ~/.gimp-2.8/scripts
di Linux. ( Instruksi resmi )
Klik Filters
-> Script-Fu
-> Refresh scripts
.
Item menu baru akan muncul di bagian bawah Layer
menu Move to
.
%USERPROFILE%\.gimp-2.8\scripts
Windows, lalu lakukan Filters
-> Script-Fu
-> Refresh Scripts
dan itu akan tersedia sebagai item terbawah Layer
->Move To
Saya menggunakan GIMP 2.6.11.
Dengan garis-garis Python ini, lapisan aktif dapat dipindahkan ke posisi absolut, seperti (32, 64), dari konsol Python:
>>> x_new = 32
>>> y_new = 64
>>> img = _[0]
>>> layer = img.active_layer
>>> x_off, y_off = layer.offsets
>>> pdb.gimp_layer_translate(layer, x_new - x_off, y_new - y_off)
Atau, jika Anda hanya ingin memindahkan konten layer:
klik kanan, Layer> Transform> Offset
atau Shft + Ctrl + O
img=gimp.image_list()[0]
. _ Tidak bekerja untuk saya.
Ada cara yang sangat mudah untuk melakukan ini sejak Gimp v.2.10:
klik dua kali pada layer yang ingin Anda pindahkan (atau klik kanan padanya dan pilih "Edit Attributes Layer")
dialog "Edit Layer Attributes" akan muncul dan di sana Anda dapat mengubah offset X / Y sesuai kebutuhan Anda
Cukup mudah seperti itu! :)
SUNTING:
Ketika @Michael bertanya tentang hal itu dalam komentarnya untuk jawaban saya, saya menambahkan skrip yang akan memindahkan SEMUA lapisan gambar dengan x, y offset yang ditentukan.
Untuk membuatnya berfungsi, Anda perlu membuat file di folder skrip Gimp (beberapa referensi untuk ini jika Anda membutuhkannya: atau ) dengan konten berikut:
; 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/")
Jika Anda melakukannya dengan benar, Anda akan menemukan perintah baru di menu "Lapisan" yang disebut "Pindahkan semua lapisan ...", luncurkan dan sebuah dialog akan muncul memungkinkan Anda untuk menentukan offset X dan Y. Itu dia.