;;Batch file conversion Script-Fuの改良版 http://sourceforge.jp/projects/mansiki/ ;;Ronfu ;;05/07/2007 ;;This code is under the GPL ;;Convert a file(s) that match filePathPattern to the type ;;indicated by the ending ext (eg "jpg,png").その改良版 (define (script-fu-Mansiki-file-convert filePathPattern ext editSizeFlag imgHsize editResolutionFlag imgDpi opMode ) (let* ( (filelist (cadr (file-glob filePathPattern 1))) (fileCount (car (file-glob filePathPattern 1))) ) ;ファイルを読み込む。 (print filelist ) (while filelist (print filelist ) (let* ( (loadFileName (car filelist)) (image (car (gimp-file-load RUN-NONINTERACTIVE loadFileName loadFileName))) (i (- (string-length loadFileName) 1)) ) (print "作動確認:1124f" ) (print image ) (let* ( ;レイヤー数が多い場合はその統合を行う(印刷でわかると思います。pngにするだけでいいんですけど) (layerNum (car (gimp-image-get-layers image))) (mergedLayer (car (gimp-image-get-active-layer image))) (preWidth (car (gimp-image-width image))) (preHeight (car (gimp-image-height image))) (ratio 0) (setHeight 0) ;(saveFileName (string-append loadFileName (string-append imgHsize (string-append "AAA." ext)))) (ratio (/ imgHsize preWidth)) (setHeight (* ratio preHeight)) ) (set! drawable mergedLayer) (if (< 1 layerNum) (set! drawable (car (gimp-image-merge-visible-layers image 1))) (gimp-image-set-active-layer image drawable) ) (print "作動確認:1123f" ) (print ratio ) (print setHeight ) (print preWidth ) (print preHeight ) (print drawable ) ;----------------------------------------------------------------- (if (and (= opMode 1) (not (equal? ext "jpg")));"MonoTone") (gimp-image-convert-grayscale image) ) (if (and (= opMode 1) (not (equal? ext "jpg")));"MonoTone") (gimp-image-convert-indexed image FS-DITHER MAKE-PALETTE 2 FALSE TRUE "") ) (if (and (= opMode 2) (not (equal? ext "jpg")));"Optimaized") (gimp-image-convert-indexed image FS-DITHER MAKE-PALETTE 256 FALSE TRUE "") ) (if (and (= opMode 3) (not (equal? ext "jpg")));"WebColor") (gimp-image-convert-indexed image FS-DITHER WEB-PALETTE 250 FALSE TRUE "") ) (if (= opMode 4);"GrayScale") (gimp-image-convert-grayscale image) ) (print opMode ) (if (= (car(gimp-drawable-is-rgb drawable)) 1);"RGB") (set! opMode 0) ) (print opMode ) (if (= opMode 5);"RGB") (gimp-image-convert-rgb image) ) ;----------------------------------------------------------------- (if (= editSizeFlag 1) (gimp-drawable-transform-scale drawable 0 0 imgHsize setHeight TRANSFORM-FORWARD INTERPOLATION-CUBIC 1 3 0) ) (if (= editSizeFlag 1) (gimp-image-resize image imgHsize setHeight 0 0) ) (if (= editResolutionFlag 1) (gimp-image-set-resolution image imgDpi imgDpi) ) (set! saveName_A loadFileName ) (if (= editSizeFlag 1) (set! saveName_A (string-append saveName_A (string-append (number->string imgHsize 10) "px"))) ) (if (= editResolutionFlag 1) (set! saveName_A (string-append saveName_A (string-append "_" (number->string imgDpi 10) "dpi"))) ) (set! saveFileName (string-append saveName_A (string-append "." ext))) (print saveFileName ) (print "作動確認:1129f" ) (gimp-file-save RUN-NONINTERACTIVE image drawable saveFileName saveFileName) (gimp-image-delete image) ) ) (set! filelist (cdr filelist)) ) ) ) (script-fu-register "script-fu-Mansiki-file-convert" "FileComvert..." "file-convertの改変版です。ファイル変換を行います。ファイル名のワイルドカードの指定できます。" "Ronfu" "GPL" "05/07/2007" "" SF-FILENAME _"Pattern/Path to file(s)" "" SF-STRING _"Convert to(拡張子を指定)" "jpg" SF-TOGGLE _"縦横サイズ変更を行う" TRUE SF-VALUE _"画像幅 (ピクセル)" "300" SF-TOGGLE _"印刷解像度設定を行う" TRUE SF-VALUE _"解像度(dpi)" "600" SF-OPTION _"画像モード" '(_"変更なし" _"MonoTone" _"GrayScale" _"WebColor" _"Optimaized" _"RGB") ) (script-fu-menu-register "script-fu-Mansiki-file-convert" "/Xtns/Script-Fu/Mansiki")