2010/10/04

画像処理を行うImageオブジェクト

画像処理に関する機能を提供するImageユニットが追加されました。
画像ファイルの読み書きや、リサイズなどの基本的な加工処理、多角形などの描画機能などが用意されています。

例えば、以下のようにすれば、NILScriptのアイコンなどに使われているロゴ画像を生成できます。
var file=cwd().file('nilscript.png');
var img=require('Image').Image.create(256,256,"white");
img.fillPolygon([
    [240,16],
    [192,224],
    [80,96],
    [16,240],
    [64,32],
    [176,160],
],"black",true,true);
img.save(file);
free(img);
Imageクラスのcreate()メソッドで、幅、高さ、塗りつぶしなどを指定して新規のImageオブジェクトを生成できます。
ImageオブジェクトのfillPolygon()メソッドで、一連の点を結ぶ直線で囲まれた領域を塗りつぶします。
そして、saveメソッドで作成した画像を指定したファイルに保存しています。
Imageオブジェクトはfree()関数で明示的に解放する必要があります。特に常駐スクリプトや大量の画像を処理するスクリプトでは、忘れないように注意してください。

描画系のメソッドはまだ一部しか実装されていませんが、近いうちに線や文字の描画なども実装する予定です。

0 件のコメント:

コメントを投稿