簡體   English   中英

使用 Python 打開 gimp 文件夾中的所有圖像

[英]Open all images in a folder on gimp using Python

我得到類似的東西:

gimp = r'C:\Program Files\GIMP 2\bin\gimp-2.10.exe'

os.chdir(folder)

filesnames= os.listdir()

for f in filesnames:
    actfile = folder+'\\'+f
    p = subprocess.Popen([gimpcamin, actfile])
    p.wait()

但是這個腳本只能打開一個圖像,當我關閉 Gimp 時會打開下一個圖像。

注意:我正在使用 VSCode

我認為問題在於您在p = subprocess.Popen([gimpcamin, actfile])之后立即有p.wait() ,這使得它在繼續之前等待該命令(即 Gimp)返回。

你應該試試:

gimp = r'C:\Program Files\GIMP 2\bin\gimp-2.10.exe'

os.chdir(folder)

filesnames= os.listdir()

processes = []
for f in filesnames:
    actfile = folder+'\\'+f
    processes.append(subprocess.Popen([gimpcamin, actfile]))

# wait for all processes to finish
for p in processes:
    p.wait()

我不確定這是你真正想要的。 我懷疑您寧願為每個圖像打開另一個 Gimp 窗口,而不是打開一個完全不同的實例。 您應該仔細檢查 Gimp 的界面,看看是否可行。

如果這就是你所做的一切,你可以在你的 shell 中使用gimp /path/dir/*.png ,就像大多數 Unix 實用程序一樣, gimp命令接受幾個文件。

如果您想在 Python 中執行此操作:

  • 由於你做了一個 chdir(),當你調用它時 Gimp 的當前目錄就是你移動到的目錄,所以你可以使用通過 listdir() 獲得的無路徑名稱
  • 您可以在一次調用中將所有文件傳遞給 Gimp,例如:
gimpCmd=[r'C:\Program Files\GIMP 2\bin\gimp-2.10.exe','-n'] # -n to get a new Gimp instance, if necessary
subprocess.Popen(gimpCmd+os.listdir())

當然,這可能會受到可接受的命令行長度的限制,但實際上,在達到該限制之前,您將用完 RAM(並顯示不動產)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM