デフォで「BMP・JPEG・PNG」、Vision開発モジュール入れても「JPEG2000・TIFF」、、、こんだけってw
著名なとこだと「GIF」が読めません(昔は特許絡みの問題を避けるためだったんでしょうが…もう切れてるしなぁ)。
「GIF」だけ読めればイイってんなら、ココで紹介されてるようなライブラリを使う、ってのもアリですが、
読みたいフォーマット全てに対して、ローダを一から書くのは、いくら『車輪の再発明大好きっコ』な私でも勘弁願いたいところですw
こういう場合、我々日本人なら、グラフィックビューワ「Susie」に対応した「plugin」を使うのが常道ですね。
ココとかに、色んなフォーマットに対応したpluginへのリンクが貼られています。
というわけで、LabVIEWから「Susie plugin」を使ってみたいと思います。
LabVIEWで「Susie plugin」を使うためのLLBと、そのデモを作ってみました(ダウンロードはココから)。
使い方等は同梱のReadme.txtを参照してください。
***** 2011-02-20 追記 *****
上でリンクしてるのは旧バージョンです!
最新版は、このエントリからどうぞ!
**************************
「Susie plugin」の詳細は、ココとかを参照してほしいのですが、
ザックリというと、「拡張子【.spi】を持つDLLで、内部の関数で画像ファイルをDIBに展開し、そのハンドルを返す」ってものです。
使い方の簡単な流れは、
- GetPluginInfo関数で、pluginの対応ファイル形式(単一ファイル・書庫ファイル等)とファイルオープンダイアログ用のパターンを取得し、
- IsSupported関数で、pluginが画像ファイルを展開できるか判断し、
- GetPicture関数で、画像ファイルをDIBに展開してもらい、そのBitmapInfoとBitmapデータへのハンドルを返してもらい、
- 返されたハンドルから画像を取り込んで、煮るなり焼くなりコロ助なりして遊ぶ。
DLL内の関数なので、 LabVIEWからはライブラリ関数呼び出しノードを使ってアクセスすることになります。
値渡しの方法なんかは、LLB内のVIを参照してください。
同梱のDemo_GraphicViewer.viを使ってみたスクリーンキャプチャを以下にいくつか挙げておきます。
「Susie」開発者である、たけちん氏作のplugin「ifjpeg.spi」を用いて、同氏のテスト画像(JPEG/24bit)を表示。
同様に、同氏のplugin「ifgif.spi」を用いて、同氏のテスト画像(GIF/4bit, 8bit)を表示。
また、同氏のplugin「ifmag.spi」を用いて、MAG形式(MAG/4bit)を表示(懐かしいw)。
画像ファイルはグラフ印刷ツールGPのサンプル画像。
【渡辺 裕朗】氏作の「ifTIFF6.spi」を用いて、TIFFファイルを表示。画像は有名なLena(の上半身のみw)。
また、同氏のplugin「ifDIB.spi」を用いて、同Lena画像を白黒2値BMPにしたもの(BMP/1bit)を表示。
とりあえず、今回は単一画像ファイルの取込みまで実装しました。
Susie pluginには、他に書庫ファイル内画像の取込みpluginもあるんですが、
その実装はまた気が向いたときにでもw
0 件のコメント:
コメントを投稿