読者です 読者をやめる 読者になる 読者になる

dothikoのカクカクワールド2D REBOOT

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか色々。

cgdbを用いてpython拡張モジュール(てか、mypaint)をデバッグする方法

これまた備忘録的に… 当然ながらgccとかg++はデバッグオプション(-g -O0) でビルド mypaintの場合はsconsを使っているため、SConstructに書いてあるようにdebugオプションを使う つまり、scons debug=true デバッグビルドができたらcgdb pythonとする b 関…

PyGiで謎のワーニングに対処する

今試作中のMypaint向けスタンプツールでポップアップメニューをgladeで作るように変更しました (以前はコードから作ってたけど、見通しが悪いので) それでいろいろ試行錯誤した結果、Gtk.ActionGroupでアクションを作って、このアクションからcreate_menu_…

MyPaintにPolyfilltoolを実装しています

MyPaint私家版にさらにPolyfilltoolを実装ッ!(途中) アイデアとしてはこうです。 「brushlibを弄ってポリゴンフィルを付けるのは面倒だが、pycairoで描いてそのサーフェスをgdk.pixbufに変換しさらにそれをmypaintのレイヤのメソッドload_surface_from_pix…

BeautifulSoup4で突然なんだかエスケープされるようになったので対処

あ…ありのまま 今 起こった事を話すぜ! 「おれは xml-rpcでfc2から取ってきた記事をbs4にかけたと 思ったら すべてのタグが<とかでエスケープされていた」 な… 何を言っているのか わからねーと思うが おれも 何をされたのか わからなかった… というわ…

私家版改造MyPaintがなんだかエライことになってきた件

機能つけすぎてわけわからんわ〜という感じになりつつあり… (^^; github.com ↑なんか比較的カッコいいリンクが作れたので、これで参ります。 当私家版MyPaintでは様々な機能を実験していますが、その中でもひたすらインクツールを改良しまくっています。いや…

mypaint 1.2にkrita風stabilizer(の簡易版)をつけてみるテスツ

(追記あり) mypaintにどうしてもKritaのstablizerを付けたかったのですが、とりあえずKritaのソースも読まず適当なものをつけてみたら思いの外、中々よいスタビライズ感があったのでここにメモしておきます。 なのであくまでkrita風なのですが、使ってみた感…

GIMPでアルファ継承(擬似クリッピングレイヤー)

スクリプトで実装という。 つまるところ単純にグループレイヤーの最下層のアルファ値でマスクを作り、その他の兄弟レイヤにマスクとして適用するというモノです。 最下層のレイヤを描き変え終わったら、このスクリプトを走らせてマスクを同期させる、という…

GIMPでG'MICのColorize(comic)向けレイヤ分割スクリプト

最近になってG'MICプラグインのColorize(comic)を知ったのですが、本当に凄いですね。 これで下塗りが楽になったので、ものすごい速度向上しました。 ちなみにワタクシのお絵かきブログにて備忘録的にメモしていたりして…で、そこで少しだけ愚痴っているよう…

Mypaint 1.2betaでinktoolのノードをキーボードから削除

inktool-なんと聞こえのよい言葉かー! というかMypaint 1.2 beta。入れてみました。レビューしたいところなのですがとりあえずそれはまた今度…ということで備忘録的に、キーボードからinktoolのノードを消せるようにしてみました。 mypaint 1.2からはinkツ…

gimpで「可視ピクセルからレイヤを得る」

久々にgimpを使ってみました。 kritaではモデファイア押下+マウスクリックで「カーソル直下の可視ピクセルが所属するレイヤをアクティブ」にすることができます。地味に便利。 しかしgimpでは…不可能では無い。移動ツールで「つかんだレイヤーまたはガイド…

続・OpenCV@Pythonでスキャナのゴミ取り(コマンドラインツール化)

コマンドラインツール化に伴い、前回より少し工夫してみました。 前回の最大の問題点は、主線の中にあるムラがゴミと判断される問題。 方針としては、ゴミよりは大きい、ある程度の大きさの領域(適当に600平方ピクセルとしました)にはcv2.pointPolygonTest…

OpenCVでスキャナのゴミ取りをやってみた

ふと一念発揮してスキャナのゴミ取りをOpenCVで自動化出来ないかと思い、やってみることにしました。 こんな実験にわざわざCで書くのもめんどいので、毎度ながらのPythonですw 対象は今描いているイカちゃんのイラストの線画にしました。 方法としては、find…

gimpの前景色と背景色が勝手に変わる現象について(小手先編)

お絵かきブログにかまけていた結果、5〜6月は全く更新していなかったのか…(愕然 いやまぁ別にどうということもないのですが… ところでgimpの前景色と背景色が勝手に変わる現象に悩まされています。 どうも設定ファイルが勝手に書き換わっている模様。 という…

先日作ったgimp用プラグイン・automate-workflow.pyを改造

以前作りましたgimp用python-fuプラグイン「automate-workflow.py」、自分で不要とか言ってみましたが実際使ってみると至極便利。 そんなわけでさらに改良を加えました。 今度の改良点は実にシンプルなもので、今まで/tmpに吐いていたエラーログを、gtkのMes…

gimpのpython-fuな自由変形プラグインを、さらに改造

先日作ったgimpのpython-fuな自由変形スプライト的プラグイン。 さらに改造して変貌しつつあります。 なんと!今回の改造では パス内の複数の四角形ストロークに対応 ソース(アクティブレイヤー)がレイヤグループの場合、レイヤグループのメンバをソースと…

gimpのpython-fuで作る四角形の自由変形プラグイン

昔、サターンというゲーム機があり(って別に解説は要りませんなw) 、その特徴が自由変形スプライトだった…と聞いております。プレイしたことはありますが開発環境など、触ったことは無いので詳しいことはわかりません。 それが確か、四角形の四頂点の位置を…

ぼくのかんがえたさいきょうのgimp用python-fuスクリプト「automate-workflow.py」

追記あり:恥ずかしながらpython-fuで別に登録しなくてもバッチ処理できることが判明したので、このスクリプトは意味が無くなってしまいました…(恥) はてなブログでは晒しませんが、オイラの趣味はお絵かきでございます。gimpでカキカキするのが楽しいのです…

potraceラッパースクリプト「mypotrace.py」

はじめに potraceというプログラムがありまして、これは「ビットマップをsvgなどのベクタ線画画像に変換する」ものなのですが、応用として「鉛筆で描いた絵をペン画風に自動クリンナップする」ような用途にも使えます。 このpotraceは実に素晴らしいプログラ…

gimp用、即座にガウスぼかしを行うためのプラグイン

ガウスぼかしというものがありますが、アレのピクセル数とかっていちいち調整するのが面倒ですよね。 ぼかしってマスクと組み合わせて可変形状のグラデみたいに使えますし、結構使いドコロが多いと思うのですが、そういう使い方だと、少なくして→多くして→ま…

gimpのpython-fuで作る、前景色と背景色を混ぜるスクリプト

そういうわけでgimpにおいて前景色と背景色を混ぜるスクリプトを作りました。 以前作っていた頃はテンポラリファイルに保存するという豪快な仕様でしたが、GUI上で参照できないというもやもや感、ちょっとテンポラリファイルは下品かな…という思いがありどう…

gimpのpaletteについてのpython-fu(というかpdb)メモ

COLOR構造体の生成について gimpcolorはimportする必要があるようです。また、各色の要素は整数なら0〜255、浮動小数点数なら0〜1.0という感じらしく、内部では浮動小数点数で保持しています。そして、アルファ値は勝手に1.0にしてくれます。 import gimpcol…

ImageMagickでモノクロpngをリサイズしてさらにrgb化するには

まったくもってごくごく一部の需要しかないと思われる話ですが、 実はワタクシpotraceのフロントエンドとしてmypotraceというモノをpythonで作り、活用しているのであります。 potraceはビットマップの線画をsvgファイルにしてくれるというスグレモノのコマ…

pythonでローマ数字を得るには

さて2月も既にもう終わりな感じですが、一回もブログを書いていない事に今更気づきました。 何をしていたのかというとひたすらお絵かきしていた…そんな感じの一ヶ月でした。 まぁ、落書きなんですけどね。 それはさておき、昔々のアーケードゲームでは製作…

PythonによるCGIでバックグラウンド処理

pythonならos.fork()で簡単♪ と思いきや、全然動きませんでした…いや動くことは動くんだけど、「重い処理」を切り離してブラウザ画面だけは即座に戻る、という目論見とは異なり、ブラウザが十数秒間待つという感じ。 sys.stdout.flush() とかしても全然無駄…

gimp向けパースグリッドプラグイン、とりあえず完成〜

monoからは、結構すぐ移植できました。 とりあえず動けばいいという感じで、まぁ汚いコードですけどね… 以下に並べたvector2d.py(実行権限を削っておいたほうがいいと思います、プラグインロードが無意味に長くなると思うので)とperspective_grid.py(こっ…

gimpのpngエクスポートとazdrawingについて

この記事には間違った部分が含まれていますが、整合性のために敢えて消さずに残しておきます。誤っている部分は打ち消し線で消してある部分です。 gimpからpngエクスポートした画像が、状況によってはazdrawing 1.4で読み込むと真っ黒になるという症状に見舞…

pythonでos.tempnam()のRuntimeWarningを抑制する

追記ありっていうか、tempfileモジュールなんてのがいつの間にかありました(汗 以下、消してもいいんですが整合性の為に残しておきます。 いや、本来はやっちゃいけないことだとは思うのですが、とりあえず。 自作のpythonをつかったmp3タグ変換スクリプト…

python版の簡易ヘルプ表示機能 with getoptモジュール

pythonではgetoptモジュールでコマンドライン引数の処理ができますね。 それを使ったコードの中に、以前シェルスクリプト向けに作った簡易ヘルプ表示機能を実現してみました。 あまりpythonらしくない冗長なコードですがオイラの場合、いつものことです。動…

LinuxでWalkman NW-S784/NW-E062向けにmp3のカバーアートを設定する

カバーアートや曲名・アーチストが、itunes/ipod touchでは表示できているのに、walkmanではどれも認識されない、という現象に以前遭遇し、粘着に調べた挙句ようやく解決できたのですが、やはり何か書いたつもりがfc2にもはてなにも書いてなかったので書き忘…

LinuxでWalkman NW-S784のプレイリストを編集

「walkmanのプレイリストはwindowsかmacの専用ソフト上でしか作れない… そんなふうに考えていた時期が 俺にもありました」 そんでもってふとググっていて出たこちらのサイト。 WALKMANでX-アプリを使わずにプレイリストを作成する方法 - 道すがら講堂 この「…

続・fc2にpythonのxmlrpclibでアクセス:editPost呼び出し編

これまたググっても全然出てこない… fc2に限定せず、日本語だけならともかく、英語でも。 オイラの検索能力もついに老化か?と思いつつ。 まず本筋から離れて、ちょっと笑えたのですが、editPostが上手く行かないのでより基本的なnewPostを呼び出す実験をす…

fc2にpythonによるxml-rpcでアクセスしてみる、の巻

xml-rpc,やってみますた! 目的は、 自作のfc2->はてな引っ越しスクリプトにおいて、引っ越したエントリを自動で下書き状態にする そして、下書きにしたエントリの一覧を保存し、いざという時に一括で戻せるようにする python-markdownなども使い、ローカル…

gimp用python-fuプラグイン・scale-export作成

長くなるのでいずれ我がwebサイト(現在大絶賛放置中)で公開したいところなのですが、まぁ使いたいという方もおられないでしょうが… 毎度毎度お絵かき等の絵をpngなどにexportするときに、いちいち複製して可視レイヤ統合してリサイズしてエクスポート…なん…