2007-01-01から1年間の記事一覧

プレビュー中か判定する (0.9.140 から)

BS

ブラシのプレビュー画像が描画されない場合があります (マウスやタブレットの場合は問題ないのに)。時間情報 (bs_ms()) を使った場合に起こりやすい問題です。 if bs_preview() then プレビュー時の特殊処理をここに挟む end のような感じで、bs_preview() …

ブラシ情報、お待ちしています!

BS

ブラシスクリプトを作成の際には、是非とも当記事にコメントやトラックバックください。宜しくお願い致します。

ライブラリ

BS

ブラシスクリプト用ライブラリです。http://d.hatena.ne.jp/MDIAPP/20100510/1273462593 (ストロークライブラリ

描画モード (mdiap+ 0.9.137 より)

BS

指定のない通常のモードでは、カラーレイヤーならRGB好きな色を指定して描画できます。しかし、半透明で描画した際に、重なる部分が濃くなってしまいます。滑らかなブラシ処理には向きません。そこで、 bs_setmode( 1 ) というコードを初期化部分に追加する…

デフォルトのサイズ(幅・最小サイズ)

BS

ブラシによっては、細いものを推奨するものもあれば、太いものを推奨するものもあります。 function default_size() return 17, 0.25 end という関数をスクリプト内で定義しておけば、デフォルトの幅、デフォルトの最小サイズを指定することができます。この…

パラメータの扱い

BS

function param1() return "param1", 0, 100, 50 end function param2() return "param2", 50, 100, 75 end function param3() return "param3", 10, 20, 15 end function param4() return "checked", 0, 1, 0 end function param5() return "unchecked", 0,…

基点の指定

BS

左右対称・回転対称ブラシなど、基点(基準点)が必要な場合があります。基点が必要なブラシは、キャンバス上でCtrl+クリックをする事で基点が指定できます。 http://www.nattou.org/mdiapp/bs/sayu-taisho.bs (左右対称 http://www.nattou.org/mdiapp/bs/ka…

API一覧 (描画命令)

BS

r,g,b,a = bs_pixel_get( x, y ) alpha = bs_pixel_get_alpha( x, y ) bs_pixel_set( x, y, r,g,b,a ) bs_pixel_get( x, y ) x,y座標のRGBA値を取得します R,G,B,A = 0〜255 1,8bppレイヤーのA値は、常に255です bs_pixel_get_alpha( x, y ) x,y座標のA値 (…

API一覧 (基本命令)

BS

w = bs_width() w = bs_width_max() w = bs_width_min() bs_width() 筆圧を適用したブラシ幅(直径)を取得します bs_width_max() ブラシの最大幅を取得します (最大筆圧時の直径) bs_width_min() ブラシの最小幅を取得します (最小筆圧時の直径) distance …

ブラシスクリプト概要

BS

mdiappはブラシ処理でスクリプト(Lua)を用いたプログラム制御が行えます。http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html (Lua言語についてプログラム制御をすることで、 http://d.hatena.ne.jp/MDIAPP/searchdiary?word=*[Brush] (ブラシ一覧 http:/…

最後に……

APIの公開前からHackして (笑) ご指摘頂き、色々と刺激を頂いた id:XELF:20060909:1157770657 さんに感謝致します :D

API仕様 (ダイアログ表示)

mdi_dialog_ok( caption ) captionを表示する、情報ダイアログを表示します。 res = mdi_dialog_yesno( caption ) captionを表示する、情報ダイアログを表示します。yesの場合は0, noの場合は1, その他の場合は-1が戻り値になります。 res = mdi_dialog_yesn…

API仕様 (アンドゥ操作)

mdi_undo_layer() アクティブなレイヤの編集に大して、アンドゥ対応をし保護をします。 mdi_undo_all() ドキュメント全体の編集に大して、アンドゥ対応をし保護をします。

API仕様 (選択範囲)

res = mdi_select_enabled( alpha ) 選択範囲が有効かどうか返します。1なら有効、0なら無効です。 value = mdi_select_pixelget( x, y ) 選択範囲の画素 (8bpp) を取得します。選択範囲が無効なら、常に255が返ります。選択されている部分は255, されていな…

API仕様 (8bpp画像操作)

mdi_img8_copy( destImgIndex, srcImgIndex ) destImgIndexのバッファに、srcImgIndexの画像をコピーします。コピーされる側のバッファは、自動的にコピー元のサイズに変更されます。 mdi_img8_resize( imgIndex, width, height ) imgIndexバッファの画像を…

API仕様 (矩形転送モード指定API)

mdi_img32_bltmode_copy() 転送元画像のr,g,b,aをブレンドなしで完全上書きする転送モードです。 mdi_img32_bltmode_normal( alpha ) mdi_img32_bltmode_mul( alpha ) mdi_img32_bltmode_add( alpha )

API仕様 (レイヤ情報)

num = mdi_layer_num() レイヤー数を返します activeIndex = mdi_layer_active() アクティブなレイヤー番号を返します bpp = mdi_layer_type() レイヤーのbppを返します w,h = mdi_layer_size() レイヤーの幅・高さを返します ofsx,ofsy = mdi_layer_offset(…

API仕様 (ドキュメント情報)

mdi_width() アクティブなドキュメントの幅を取得します。 mdi_height() アクティブなドキュメントの高さを取得します。 mdi_dpi() アクティブなドキュメントの解像度を取得します。

API仕様 (新規ウィンドウ生成)

mdi_new_style( width, height, dpi, bpp ) 幅width, 高さheight, 解像度dpiのドキュメントを作成します。bppは整数指定で、初期レイヤーの型を指定します。32bppの場合32, 8bppの場合は8, 1bppは1, Vectorレイヤは0を指定します。 mdi_new_img32( imgIndex …

API仕様 (頂点命令)

mdi_vertex_add( x, y ) 頂点バッファに、頂点を追加します mdi_vertex_clear() 頂点バッファをクリアします。 mdi_shape_setrad( rad ) rect,polygon描画時の角度をrad単位で指定します。 mdi_shape_setdeg( deg ) rect,polygon描画時の角度をdeg単位で指定…

API仕様 (雑用系)

mdi_ms() OSを立ち上げてから経過した時間を、ミリ秒で取得します。 pixel = mdi_cm2pixel( dpi, cm ) dpiを指定して、cmからpixel変換をします。 cm = mdi_pixel2cm( dpi, pixel ) dpiを指定して、pixelからcm変換をします。 mdi_setaa( aa ) 描画処理にお…

サンプルスクリプト

いきなりAPIを羅列するよりも、サンプルスクリプトを見た方が「あぁなるほど」と納得して頂けると思いますので :D (1) 適当な画像を作り、コピーし、ドキュメントの作成 local w = 512 local h = 300 local idx = mdi_img_offscreen( 0 ) -- offscreenバッフ…

スクリプト概要

画像バッファへのアクセス グラフィックツールなんですから、何はともあれ画像へのアクセスが必須になります。現在、 オフスクリーン画像 レイヤ画像 の二種類の画像バッファにアクセスできます。画像操作を行う際には、"mdi_img32_xxxxxxx" などの、mdi_img…

mdiappスクリプト (仮称) とは?

mdiappから呼び出せるスクリプトです。オープンソースのスクリプトエンジン、Lua上で動いています。ので、文法についてはLuaを参照ください。そこにmdiappを操作するAPIを加えたLuaの拡張言語(?)となっています。 http://sugarpot.sakura.ne.jp/yuno/html…

API仕様 (矩形転送API)

mdi_img32_blt( destImgIndex, dx,dy, srcImgIndex, sx,sy,sw,sh ) destImgIndexバッファのdx,dy位置に、srcImgIndexバッファのsx,sy位置からsw,shサイズの矩形を転送します。転送モードは、mdi_img32_bltmode_xxxxx APIで指定します。 mdi_img32_blt_( dest…

API仕様 (32bpp画像操作・応用)

mdi_img32_rect( imgIndex, x,y, w,h, r,g,b,a ) imgIndexバッファを矩形塗りつぶしします。この際、転送先の画像はr,g,b,aでブレンド合成されます。 mdi_img32_ellipse( imgIndex, x,y, w,h, r,g,b,a ) imgIndexバッファを楕円塗りつぶしします。r,g,b,aで…

API仕様 (32bpp画像操作)

mdi_img32_copy( destImgIndex, srcImgIndex ) destImgIndexのバッファに、srcImgIndexの画像をコピーします。コピーされる側のバッファは、自動的にコピー元のサイズに変更されます。 mdi_img32_resize( imgIndex, width, height ) imgIndexバッファの画像…

API仕様 (画像バッファへのアクセス)

imgIndex = mdi_img_layer( layerImgIndex ) アクティブなドキュメントを操作する為の、画像バッファへのインデックスを取得します。layerImgIndexには、レイヤ番号を指定してください。mdiapp内では、N個レイヤーが存在する場合、一番下のレイヤが0, 一番上…

mdiappの特長

タブレットに対応した滑らかなブラシ処理 集中線描画機能 豊富な図形描画機能 雲模様・砂模様フィルタ 再編集可能な文字入力 http://d.hatena.ne.jp/MDIAPP/20081218/1229613817 (文字を入れる 省メモリ、混在可能なレイヤーモード http://d.hatena.ne.jp/MD…