js-ctypes 学習:画像ファイルの入力

2017-03-17 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
前(2017-03-15)の記事「js-ctypes 学習:プロセス間通信の例」に続いて、
SpiderMonkey /js-ctypes の学習継続。

今回は、
昨年1月(2016-01-29)の記事「Lua 学習:IM ( An Imaging Toolkit )」で書いた、
  ・・・・・
  ・・・・・
  “IM”は?・・・“3.10”が 2015-09-18 にリリースされている。
  これに決めよう。
  “Windows”の“Dynamic”の“32ビット版”と云うことで、
  「im-3.10_Win32_dllw4_lib.zip」(2015-09-18付)  1.72MB
  をダウンロードした。
  中には沢山入っているが、
  「im.dll」(1.61MB)1つあれば良さそう?

  「IM」ページの左側:
  “Storage”の“Guide”ページにある例から、( FFI 利用 )
  ・・・・・
  ・・・・・

この「im.dll」を使って画像ファイルの入力処理。

先ずは、
当該ブログ記事のコードを(ほぼそのまま)移植:
// --------------- im_sample.js ----------
var lib = ctypes.open( 'im' );

var imOpen = lib.declare( 'imFileOpen', ctypes.winapi_abi, ctypes.voidptr_t,
ctypes.char.ptr, ctypes.int32_t.ptr );

var fname = 'hogohoge.tiff'
var err = ctypes.int32_t(1);

var IN = imOpen( fname, err.address() );
print( IN, err.value ); // 確認の為

var imInfo = lib.declare( 'imFileReadImageInfo', ctypes.winapi_abi, ctypes.int32_t,
ctypes.voidptr_t, ctypes.int32_t,
ctypes.int32_t.ptr, ctypes.int32_t.ptr,
ctypes.int32_t.ptr, ctypes.int32_t.ptr );
var xx = ctypes.int32_t(1); var yy = ctypes.int32_t(1);
var col = ctypes.int32_t(1); var typ = ctypes.int32_t(1);
var Er = imInfo( IN, 0, xx.address(), yy.address(), col.address(), typ.address() );
print( xx.value, yy.value, col.value, typ.value );

var imClose = lib.declare( 'imFileClose', ctypes.winapi_abi, ctypes.int32_t,
ctypes.voidptr_t );
imClose( IN );

lib.close();
var str = readline();
これで、同じ出力結果が得られた。


それで、データ本体の取得は?・・・

ファイルクローズの前に、以下を追加。

var imRead = lib.declare( 'imFileReadImageData', ctypes.winapi_abi,  ctypes.int32_t,
ctypes.voidptr_t, ctypes.uint8_t.ptr, ctypes.int32_t, ctypes.int32_t );
var Buf = ctypes.uint8_t.array(257)();
Er =imRead( IN, Buf, 0, -1 ); // If flag is -1 the file original flags are used.
確認の為の表示:
print( Buf[0], Buf[xx.value-1], Buf[xx.value*yy.value-1] );
でしょうか?


完璧???


本日はここまで。


SpiderMonkey ( JavaScript/js-ctypes ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170214
スポンサーサイト
おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 04
- - - 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 31 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク