2009-10-01から1ヶ月間の記事一覧

可変個の返り値をテーブルにつっこむ

lua

luaでは、可変個の引数は...でさばけるのだが、 反対に可変個の返り値をさばくよい方法はなさげだった。 とりあえずあみ出したのでメモ。状況 function hoge() -- なんかやっている -- 返り値が何個帰ってくるか不定 return a, b, c end -- 先頭をfirstに、…

レイヤーを別々のpngに保存するpython-fu

ディレクトリを指定してlayerをpngで保存する。 ファイル名はレイヤー名そのまま。 UTF-8で %USERPROFILE%/.gimp-2.6/plug-ins/layersplitter.py と保存する。 file_png_save_defaultsの引数がgimpのpdbで出てくるのと微妙に違ったりするのだが python向けの…

libpsd続き その3

c++

まとめとしてlibpsdを使って通常レイヤをpngにばらすコードを書いてlibpsd編は終わりにする。 // main.cpp // // $ g++ main.cpp -lpng -lpsd -ljpeg #include <libpsd.h> #define USE_PNG 1 #include "rgbaimage.h" #include <iostream> int main(int argc, char **argv) { if(a</iostream></libpsd.h>…

libpsd続き その2

c++

libpsdで正しく画像が取得できないので検証用に自前でC++で書いてみた。ちょっと手こずったが以前pythonで書いたpsdプログラムが役に立った。pythonの方はデッドリンクになっているから直さないといかんな・・・。 で、libpsdでは何故画像が正しく取れないの…

libpsd続き

c++

releaseで(NDEBUGを定義して)ビルドすると実行時にセグメンテーションエラーが発生する。 副作用のあるassertが原因と見て直した。 $ grep "assert(psd" *.c で出てくるところが副作用のあるassertでNDEBUGで消滅するとエラーになる。

libpsdを使ってみる

c++

今作っているプログラムでスプライトをわりと大量に生成している。 その中に元となるpsd画像をレイヤーが重ならないようにpngに変換して改めてパーツの座標をリスト化するというつまらん作業が含まれている。これは自動化しないといかんと思ったので、まずは…

python-fuメモ

定型処理をスクリプト化するために久しぶりにやってみる。 いろいろひっかかるところがあったのでメモ。 スクリプトの配置場所 ~/.gimp-2.7/plug-ins/hoge.py 書き方 ascii文字のみで書くこと(コメントも含めて) 日本語使うときは # coding: UTF-8 を書いて…

wxLua調査中

wxWidgetsのアプリにluaを仕込みたいので調べていたら、早速wxLuaに行き当たった。 ぱっと見、luaからwxWidgetsを使うもの(wxPythonとかみたいに)みたいだが、 逆にC++のwxWidgetsアプリに埋めて使うこともできるよって書いてある様子。 ちょいと調べてみる。

gprofでコールグラフ

c++

MinGWで使えるプロファイラということでgprofを使ってみた。 すると出てきたテキストにコールグラフが含まれていたのでこれをビジュアル化する方法が欲しくなった。 探索したところちょうどいいツールを発見。gprofの出力結果をgraphviz向けに変換するpython…

utf8バイト列を1文字ずつ処理する

lua

function each_utf8(text) local i=1 return function() if i>#text then -- 終了 return end local b=string.byte(text, i) if b==0 then -- eof return elseif b<128 then -- ascii local m=string.sub(text, i, i) i=i+1 return m elseif b<192 then asse…

luaのクラスその4

lua

多重継承。 「Programming Lua」の16章を参考。 -------------------------------------------------------------------------------- -- class utility -------------------------------------------------------------------------------- -- root class l…