2010-10-07 2 views
5

Appena iniziato a utilizzare GIMP oggi. Quando ridimensiono manualmente la tela in GIMP (in modo che sia più piccola della dimensione dell'immagine) mi consente di spostare l'immagine in modo da poter "modificare" l'area visibile. Come posso replicarlo in uno script? In altre parole, voglio che lo script si fermi al passaggio di ridimensionamento della tela e mi permetta di posizionare correttamente l'immagine.GIMP - Scripting a canvas ridimensionare

La ragione per cui mi sto chiedendo: ho scritto una piccola sceneggiatura che creerà miniature quadrate di immagini. Il modo in cui sto facendo questo è ridimensionando la tela in modo che l'altezza e la larghezza siano le stesse. Se l'altezza e la larghezza sono differenti, cambio il più alto dei due in modo che sia uguale al più basso (ad esempio 600x500 diventa 500x500). Quindi appiattisco l'immagine e la ridimensiono in base alle mie esigenze.

(if (>= width height) 
    (begin 
     (gimp-image-resize image height height 0 0) 
    ) 
    (begin 
     (gimp-image-resize image width width 0 0) 
    ) 
) 

Il codice che sto usando per ridimensionare la tela è sopra. So che gli ultimi due valori nel comando gimp-image-resize si riferiscono agli offset. Questo è ciò che voglio modificare manualmente quando lo script raggiunge questo passaggio. Qualsiasi aiuto sarebbe molto apprezzato. Grazie!

risposta

3

Il tuo codice funziona? Se è così, ecco una versione più bella dello stesso codice:

(let ((smaller-edge (min width height))) 
    (gimp-image-resize image smaller-edge smaller-edge 0 0)) 
+1

Funziona, anche se la tua versione sembra decisamente più pulita. Grazie! Essendo nuovo a GIMP e Scheme, non conoscevo molti dei metodi disponibili. Purtroppo questo non risolve ancora il mio problema. – zdyn