L'immagine ha una zona trasparente e deve essere ruotata sul centro della zona trasparente.
Facendolo a mano eseguo queste operazioni:
1. duplico il layer da ruotare
2. incateno i due livelli
3. lascio solo uno dei due livelli visibile
4. salvo l'immagine per usarla nel plugin
5. sul livello NON visibile applico lo strumento seleziona regioni contigue
6. sul livello NON visibile applico lo strumento rotazione del livello o della selezione
7. Ottengo l'immagine ruotata come io voglio che sia.
Al plugin passo l'immagine salvata nel punto 4.
Purtroppo però l'ultimo punto non funziona, ovvero non ruota nulla. La selezione viene effettuata correttamente, ed è proprio la rotazione che non viene come dovrebbe. Il risultato è un'immagine esattamente come quella di partenza.
L'esempio che ho messo sotto è solo una delle mille varianti che ho scritto per prova cercando di farlo funzionare.
Mi serve un aiuto perchè non riesco ad andare avanti.
Grazie.
#!/usr/bin/env python
# Ruota - ruota un'immagine su un punto prestabilito
import math
import string
from gimpfu import *
def ruota( filename, gradi, punto_x, punto_y ):
img = pdb.gimp_file_load( filename, filename )
pdb.gimp_fuzzy_select( img.active_layer, punto_x, punto_y, 10, 0, TRUE, 0, 0, 0 )
pdb.gimp_rotate( img.active_layer, 0, gradi )
gimp.Display( img )
register(
"ruota",
"A simple plugin",
"A simple plugin",
"Massimo",
"Massimo",
"2004",
"<Toolbox>/Xtns/Python-Fu/Ruota",
"",
[
(PF_STRING, "filename", "filename", "ruota.xcf" ),
(PF_FLOAT, "gradi", "gradi", 20 ),
(PF_INT, "punto_x", "x", 350 ),
(PF_INT, "punto_y", "y", 350 )
],
[],
ruota)
main()
PS: nel copia incolla l'identazione del plugin è sbagliata