成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何編寫GIMP腳本使圖像處理更快

這篇文章主要介紹如何編寫GIMP腳本使圖像處理更快,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出忻城免費(fèi)做網(wǎng)站回饋大家。

如何編寫GIMP腳本使圖像處理更快

通過向一批圖像添加效果來學(xué)習(xí) GIMP 的腳本語言 Script-Fu。

前一段時(shí)間,我想給方程圖片加一個(gè)黑板式的外觀。我開始是使用 GIMP 來處理的,我對(duì)結(jié)果很滿意。問題是我必須對(duì)圖像執(zhí)行幾個(gè)操作,當(dāng)我想再次使用此樣式,不想對(duì)所有圖像重復(fù)這些步驟。此外,我確信我會(huì)很快忘記這些步驟。

如何編寫GIMP腳本使圖像處理更快

傅立葉變換方程式(Cristiano Fontana,[CC BY-SA 4.0] 4)

GIMP 是一個(gè)很棒的開源圖像編輯器。盡管我已經(jīng)使用了多年,但從未研究過其批處理功能或 Script-Fu 菜單。這是探索它們的絕好機(jī)會(huì)。

什么是 Script-Fu?

Script-Fu 是 GIMP 內(nèi)置的腳本語言。是一種基于 Scheme 的編程語言。如果你從未使用過 Scheme,請(qǐng)嘗試一下,因?yàn)樗赡芊浅S杏?。我認(rèn)為 Script-Fu 是一個(gè)很好的入門方法,因?yàn)樗鼘?duì)圖像處理具有立竿見影的效果,所以你可以很快感覺到自己的工作效率的提高。你也可以使用 Python 編寫腳本,但是 Script-Fu 是默認(rèn)選項(xiàng)。

為了幫助你熟悉 Scheme,GIMP 的文檔提供了深入的 教程。Scheme 是一種類似于 Lisp 的語言,因此它的主要特征是使用 前綴 表示法和 許多括號(hào)。函數(shù)和運(yùn)算符通過前綴應(yīng)用到操作數(shù)列表中:

(函數(shù)名 操作數(shù) 操作數(shù) ...) (+ 2 3)? 返回 5 (list 1 2 3 5)? 返回一個(gè)列表,包含 1、 2、 3 和 5

我花了一些時(shí)間才找到完整的 GIMP 函數(shù)列表文檔,但實(shí)際上很簡單。在 Help 菜單中,有一個(gè) Procedure Browser,其中包含所有可用的函數(shù)的豐富詳盡文檔。

如何編寫GIMP腳本使圖像處理更快

GIMP Procedure Browser

使用 GIMP 的批處理模式

你可以使用 -b 選項(xiàng)以批處理的方式啟動(dòng) GIMP。-b 選項(xiàng)的參數(shù)可以是你想要運(yùn)行的腳本,或者用一個(gè) - 來讓 GIMP 進(jìn)入交互模式而不是命令行模式。正常情況下,當(dāng)你啟動(dòng) GIMP 的時(shí)候,它會(huì)啟動(dòng)圖形界面,但是你可以使用 -i 選項(xiàng)來禁用它。

開始編寫你的第一個(gè)腳本

創(chuàng)建一個(gè)名為 chalk.scm 的文件,并把它保存在 Preferences 窗口中 Folders 選項(xiàng)下的 Script 中指定的 script 文件夾下。就我而言,是在 $HOME/.config/GIMP/2.10/scripts。

在 chalk.scm 文件中,寫入下面的內(nèi)容:

(define (chalk filename grow-pixels spread-amount percentage)   (let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))          (drawable (car (gimp-image-get-active-layer image)))          (new-filename (string-append "modified_" filename)))     (gimp-image-select-color image CHANNEL-OP-REPLACE drawable '(0 0 0))     (gimp-selection-grow image grow-pixels)     (gimp-context-set-foreground '(0 0 0))     (gimp-edit-bucket-fill drawable BUCKET-FILL-FG LAYER-MODE-NORMAL 100 255 TRUE 0 0)     (gimp-selection-none image)     (plug-in-spread RUN-NONINTERACTIVE image drawable spread-amount spread-amount)     (gimp-drawable-invert drawable TRUE)     (plug-in-randomize-hurl RUN-NONINTERACTIVE image drawable percentage 1 TRUE 0)     (gimp-file-save RUN-NONINTERACTIVE image drawable new-filename new-filename)     (gimp-image-delete image)))

定義腳本變量

在腳本中, (define (chalk filename grow-pixels spread-amound percentage) ...) 函數(shù)定義了一個(gè)名叫 chalk 的新函數(shù)。它的函數(shù)參數(shù)是 filename、grow-pixelsspread-amound 和 percentage。在 define 中的所有內(nèi)容都是 chalk 函數(shù)的主體。你可能已經(jīng)注意到,那些名字比較長的變量中間都有一個(gè)破折號(hào)來分割。這是類 Lisp 語言的慣用風(fēng)格。

(let* ...) 函數(shù)是一個(gè)特殊過程procedure,可以讓你定義一些只有在這個(gè)函數(shù)體中才有效的臨時(shí)變量。臨時(shí)變量有 imagedrawable 以及 new-filename。它使用 gimp-file-load 來載入圖片,這會(huì)返回它所包含的圖片的一個(gè)列表。并通過 car 函數(shù)來選取第一項(xiàng)。然后,它選擇第一個(gè)活動(dòng)層并將其引用存儲(chǔ)在 drawable 變量中。最后,它定義了包含圖像新文件名的字符串。

為了幫助你更好地了解該過程,我將對(duì)其進(jìn)行分解。首先,啟動(dòng)帶 GUI 的 GIMP,然后你可以通過依次點(diǎn)擊 Filters → Script-Fu → Console 來打開 Script-Fu 控制臺(tái)。 在這種情況下,不能使用 let *,因?yàn)樽兞勘仨毷浅志玫?。使?nbsp;define 函數(shù)定義 image 變量,并為其提供查找圖像的正確路徑:

(define image (car (gimp-file-load RUN-NONINTERACTIVE "Fourier.png" "Fourier.png")))

似乎在 GUI 中什么也沒有發(fā)生,但是圖像已加載。 你需要通過以下方式來讓圖像顯示:

(gimp-display-new image)

如何編寫GIMP腳本使圖像處理更快

GUI with the displayed image

現(xiàn)在,獲取活動(dòng)層并將其存儲(chǔ)在 drawable 變量中:

(define drawable (car (gimp-image-get-active-layer image)))

最后,定義圖像的新文件名:

(define new-filename "modified_Fourier.png")

運(yùn)行命令后,你將在 Script-Fu 控制臺(tái)中看到以下內(nèi)容:

如何編寫GIMP腳本使圖像處理更快

Script-Fu console

在對(duì)圖像執(zhí)行操作之前,需要定義將在腳本中作為函數(shù)參數(shù)的變量:

(define grow-pixels 2)(define spread-amount 4)(define percentage 3)

處理圖片

現(xiàn)在,所有相關(guān)變量都已定義,你可以對(duì)圖像進(jìn)行操作了。 腳本的操作可以直接在控制臺(tái)上執(zhí)行。第一步是在活動(dòng)層上選擇黑色。顏色被寫成一個(gè)由三個(gè)數(shù)字組成的列表,即 (list 0 0 0) 或者是 '(0 0 0):

(gimp-image-select-color image CHANNEL-OP-REPLACE drawable '(0 0 0))

如何編寫GIMP腳本使圖像處理更快

Image with the selected color

擴(kuò)大選取兩個(gè)像素:

(gimp-selection-grow image grow-pixels)

如何編寫GIMP腳本使圖像處理更快

Image with the selected color

將前景色設(shè)置為黑色,并用它填充選區(qū):

(gimp-context-set-foreground '(0 0 0))(gimp-edit-bucket-fill drawable BUCKET-FILL-FG LAYER-MODE-NORMAL 100 255 TRUE 0 0)

如何編寫GIMP腳本使圖像處理更快

Image with the selection filled with black

刪除選區(qū):

(gimp-selection-none image)

如何編寫GIMP腳本使圖像處理更快

Image with no selection

隨機(jī)移動(dòng)像素:

(plug-in-spread RUN-NONINTERACTIVE image drawable spread-amount spread-amount)

如何編寫GIMP腳本使圖像處理更快

Image with pixels moved around

反轉(zhuǎn)圖像顏色:

(gimp-drawable-invert drawable TRUE)

如何編寫GIMP腳本使圖像處理更快

Image with pixels moved around

隨機(jī)化像素:

(plug-in-randomize-hurl RUN-NONINTERACTIVE image drawable percentage 1 TRUE 0)

如何編寫GIMP腳本使圖像處理更快

Image with pixels moved around

將圖像保存到新文件:

(gimp-file-save RUN-NONINTERACTIVE image drawable new-filename new-filename)

如何編寫GIMP腳本使圖像處理更快

傅立葉變換方程 (Cristiano Fontana, CC BY-SA 4.0)

以批處理模式運(yùn)行腳本

現(xiàn)在你知道了腳本的功能,可以在批處理模式下運(yùn)行它:

gimp -i -b '(chalk "Fourier.png" 2 4 3)' -b '(gimp-quit 0)'

在運(yùn)行 chalk 函數(shù)之后,它將使用 -b 選項(xiàng)調(diào)用第二個(gè)函數(shù) gimp-quit 來告訴 GIMP 退出。

以上是“如何編寫GIMP腳本使圖像處理更快”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:如何編寫GIMP腳本使圖像處理更快
文章URL:http://jinyejixie.com/article6/ijcoog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)電子商務(wù)、企業(yè)網(wǎng)站制作ChatGPT、服務(wù)器托管、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
民丰县| 开江县| 尼勒克县| 岳阳市| 东兰县| 通海县| 盐边县| 垫江县| 福安市| 图片| 乐昌市| 七台河市| 鲁甸县| 临江市| 得荣县| 辽中县| 弋阳县| 习水县| 霸州市| 长丰县| 临湘市| 中山市| 同心县| 密云县| 罗城| 和龙市| 营口市| 富裕县| 晋中市| 阿拉善右旗| 延吉市| 曲阜市| 修水县| 阳城县| 河西区| 敦煌市| 富源县| 南漳县| 清水河县| 积石山| 孟津县|