"妄想ノートなラクガキ帳

04/29

2015

ヤバイほど便利…「automate-workflow.py」

gimp

コメント:0 TB:0


今月頭に作りましたgimp用の超・便利プラグイン。当初はまた無駄なものを作ってしまった…と思いましたが、使ってみるとヤバイです。

http://dothiko.hatenablog.com/entry/2015/04/06/000025

何をするものかというと、絵と同じディレクトリにあるgimp_automate.pyをgimp内に読み込んで実行するというものです。

単なる外部pythonスクリプトを呼ぶというだけのものであるならば、別に大したことはないのですが、これは現在起動しているgimpの中に読み込むわけで、つまりgimpの機能を使えます。

つまりレイヤーを移動させたりできるわけですね。そして任意のサイズでエクスポートしたりとか、自由自在。

ああっ、結局コード貼るのかこっちでもorz



今回、先週の金曜お絵かきの修正を出力するにあたって作ったスクリプトがこちら。(ちなみにmylib.gimp.autoutilsは現在開発中の自分専用ライブラリなので、そのままでは使えませんがそのうち公開する予定…でも、以下のスクリプト自体が自分専用どころか、一つの絵専用なんでオイラ以外誰も使うことは無いのですな…)

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from mylib.gimp.autoutils import *

def main(gimp,image,drawable):
basedir=os.path.dirname(image.filename)
pdb=gimp.pdb

# まず最初に画像を複製
dimg=image.duplicate()
p,bl=find_layer(dimg,'background')
bl.visible=False # 背景を見えなくする

# 処理(この中で最終出力fimgを生成)

# 見えるものだけを合成してレイヤ化
visibles=dimg.merge_visible_layers(0) # 0=expand 1=crop 2=crop-by-bottom
# 最終出力ベースを読み込む
fpath='%s/kousatu_march_bg_1.xcf' % basedir
fimg=pdb.gimp_xcf_load(0,fpath,os.path.basename(fpath))
# 最終出力にキャラレイヤとして先ほどの可視合成レイヤをコピー
chars=copy_layer_into_other_image(pdb,fimg,visibles,0)
chars.set_offsets(-8,-177) # キャラを-8,-177に移動

# 完成した複製絵を表示して確認
pdb.gimp_display_new(fimg)

TITLE_LAYER_NAME='kousatu'
FUN_LAYER_NAME='oasobi'

p,tl=find_layer(fimg,TITLE_LAYER_NAME,False)
p,fl=find_layer(fimg,FUN_LAYER_NAME,False)

# まず、どノーマルを出力。jpegエクスポート、95%
tl.visible=False
fl.visible=False
export_numbered_jpg_file(pdb,fimg,basedir,'kousatu_march_',0.95,size=(None,1080))

# ロゴだけ表示。縦640
tl.visible=True
export_numbered_jpg_file(pdb,fimg,basedir,'kousatu_march_title_',0.95,size=(None,640))

# ロゴ・おふざけブルーレイロゴなど。縦640
fl.visible=True
export_numbered_jpg_file(pdb,fimg,basedir,'kousatu_march_title_fun',0.95,size=(None,640))

# 終わり
gimp.delete(dimg)

if __name__ == '__main__':

pass


とまぁ、このようにするとですね。
いままで、

いちいち修正しては→可視レイヤーを合成してCTRL+C->背景画像にペースト→手動でレイヤ位置を調整し→お遊びやロゴなどを消し→まず縮小エクスポート(1080px)→次にロゴだけだして640pxでエクスポート→最後にお遊びブルーレイロゴを出して640pxでエクスポート
ちなみにエクスポート時のファイル名の連番は手打ち。


みたいな、メチャクチャ面倒な手間をかけないとイケなかったものが!

なんと、一発実行で自動合成→3つの最終出力を自動出力というラクチンさなのですよ!! (ただし、デバッグという手間はあるのですけどね…)

ちなみにgimpは起動時にコマンドラインオプションを駆使することで、標準でこのようなスクリプトによる自動運転が可能なのですが、オイラのコレはgimpにコマンドラインオプションとしてスクリプトを渡して起動するというものではなく、すでに起動してお絵かき中のgimpで実行できるのがミソなのです。

実はこれだけで話は終わりではなく。
先日作成したfc2のxml-rpc用モジュールを使えば、なななんと。
自動でアップロード & 自動で記事修正までできます。(いや、なんとも何も、pythonなら当然ですね (^^;)

ただ、やっぱ全然直ってねーわwやりなおし♪ という時のことを考えると、なかなかそこまでは踏み込めないのが現状。あと、xml-rpcで記事を再編集すると、記事の改行を全部消失させるようなので、<BR>を手動で入れて書き換える必要が出ますが、そうなるとfc2の編集画面では記事が1行につながってしまって非常にかっこ悪いという現象が起きるのですなぁ。

(それはともかく、絵のほうは、いつまで経っても本当に直ってるかどうかわからんですけどね…その場のノリでは、直った気分になってるけど…後で見るとぐぁぁ〜って事が…(;´Д`) )

今回は、実を言うと今のところ、このautomate-workflow.pyはエラーが起きて処理が中断しても/tmpにテキストファイルで吐くだけという手抜きの有り様なので、エラー修正に割と手間取りました。ので、エラーが起きたら自動で表示する仕組みを作りたいところです。あと自作ライブラリもほぼ完成と思ってましたが、少し条件が変わったぐらいでバグの山がてんこもりに発覚し、結構大変でした…

ま、まぁ、プログラムは地道に修正を続ければ必ず答えてくれるのが絵より優しいところかな…大規模なものだと、そうとも限りませんがw
スポンサーサイト

コメント



名前
メールアドレス
URL
パスワード

トラックバック


トラックバックURL :

モブ沢ドト彦(dothiko)

ブログ主:モブ沢ドト彦(dothiko)
@dothiko

当ブログについて (←いわゆる「最初にお読みください」というヤツです)

このfc2ブログをお絵かき専用ブログに再編するにあたり、ハンドル名ではなくペンネーム「モブ沢ドト彦」を名乗ることに致しました。今後はプログレッシブに生きていこうと思います。基本的にお絵かきは毎週土曜日更新(予定)、その他のネタは不定期という事にしています。
amazonアソシエイトに参加することにしました。
年齢は特に明示しませんが
* おっさんです *

08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ユーザータグ

FC2Ad