カテゴリー別アーカイブ: GIMP

GIMP Script-Fuで画像一括変換

標準

GIMPで画像一括変換

https://qiita.com/appin/items/173abe8fe169789d0617

↑こちらの記事を参考にフォルダ格納の画像ファイルを一括変換して保存しなおすというScript-Fuが書けました。

そもそもMeshRoomを使おうと思ったのに、iPhoneからGoogle Driveに写真ファイルをアップロードしたら、HEICという謎の識別子で読み込まれなかったのが最初。

「FonePaw HEIC変換」ソフトを使って、JPG画像に一括変換できたものの、これもMeshRoomで読み込まれない。試しにGimpでもう一度JPGファイルとして上書きエクスポートしたら、読み込まれた。

ということは、90枚の写真すべてをもう一度JPGで上書きエクスポートすればよいわけだが、一枚一枚実行するのは、大変。。。

ということで、上記記事のスクリプト部分を少し変更し、

; script-fu-folder2folder-export.scm
; by tanu

; Version 1.0 (20181110)

; Description
;
; Script to export folder images to other folders
;

(define (script-fu-folder2folder-export inDir inLoadType outDir)
  (let*
    (
      (varLoadStr "")
        (varFileList 0)
    )
    (set! varLoadStr
      (cond 
        (( equal? inLoadType 0 ) ".jpg" )
        (( equal? inLoadType 1 ) ".bmp" )
        (( equal? inLoadType 2 ) ".png" )
        (( equal? inLoadType 3 ) ".gif" )
      )
    )
    (set! varFileList (cadr (file-glob (string-append inDir "\\*" varLoadStr)  1)))

    (while (not (null? varFileList))
      (let* 
        ((filename (car varFileList))
          (short_filename (substring filename (+ (string-length inDir) 1) (string-length filename)))
          (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
          (drawable (car (gimp-image-get-active-layer image)))
          ;保存ファイル名の先頭に"r_"を追加
          (newfilename (string-append outDir "\\" (string-append "r_" short_filename)))
        )
        ;水平反転処理
        ;(gimp-image-flip image ORIENTATION-HORIZONTAL)

        (gimp-file-save RUN-NONINTERACTIVE image drawable newfilename short_filename)
        (gimp-image-delete image)
      )
      (set! varFileList (cdr varFileList))
    )

    (gimp-patterns-refresh)
  )
)

(script-fu-register "script-fu-folder2folder-export"
  "<Image>/Script-Fu/Save Images Folder to Folder..."
  "Save Images Folder to Folder."
  "appin"
  "appin"
  "November 2018"
  ""
  SF-DIRNAME    "Load from" ""
  SF-OPTION     "Load File Type" (list "jpg" "bmp" "png" "gif")
  SF-DIRNAME    "Save to"  ""

)

 

というスクリプトを記述し、script-fu-folder2folder-export.scm というファイル名で保存。

保存したものを、C:\Users\(ユーザ名)\AppData\Roaming\GIMP\2.10\scripts

フォルダに格納し、GIMPのFiltersメニュー→Script-Fu→「スクリプトの再読み込み」でもう一度スクリプトを読む

するとメニューに記述したスクリプトが表示される(感動!)

Gimp-Script-Fu01

すると、次のようなポップアップウィンドウが出てくるので、

Gimp-Script-Fu02

読み出しフォルダと保存場所フォルダをそれぞれ指定したら、OK(実行)

 

広告