我正在嘗試爲GIMP編寫一個基本腳本,但它似乎並不想正確工作。在進行我的選擇後,它應該按照下面的順序:降低活動層,擴大選擇2px,填充w /前景色,提高活動層。最終產品應該是頂層圖層下的純色。但是隨着我寫的代碼,它會跳轉活動層,但是在頂層而不是下面的層填充。這裏是我的代碼有:Scriptfu沒有按正確的順序執行,爲什麼?
(define (quick-fill image drawable)
(gimp-undo-push-group-start image)
(let* ((layer (car (gimp-image-get-active-layer image))))
(gimp-selection-grow image 2)
(gimp-image-set-active-layer image (aref (cadr (gimp-image-get-layers image)) 1))
(gimp-bucket-fill drawable FG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
(gimp-image-set-active-layer image (aref (cadr (gimp-image-get-layers image)) 0)))
(gimp-undo-push-group-end image)
(gimp-displays-flush))
這可能是一個愚蠢的「插入其中」的評論,但是:一般的函數式語言和特別的方案並不一定保證執行順序。 – drysdam 2011-04-25 12:20:29
我想知道的是,當它綁定的'layer'變量根本沒有被使用時,在那裏做什麼'let *'。 – 2011-04-25 12:23:36
@drysdam:不是插入GIMP方案的情況 - 它按順序做它的東西(否則它將不再作爲圖像腳本語言) – jsbueno 2013-03-25 10:07:48