データソケットを使用して画像を転送する方法。
使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
問題: NI-Imaqのsnapの関数で集録した画像をデータソケットを使ってイメージを送ろうと思っているのですが、クライアント側がイメージを表示することができません、なぜでしょうか?
解決策: 画像を直接データソケット書き込みにつなげた場合、データソケットが転送するデータは画像そのものではなくイメージのポインタ(メモリの中のイメージが保存されている位置)になります。ですから、この方法ではクライアントはイメージ自体を受け取っていないのでそれを表示することはできません。ひとつの解決方法はデータソケットで転送する前にイメージを「文字列に平坦化.vi」を使用してバイナリデータに平坦化してから転送する方法です。こうすることでポインタではなく実際のイメージデータが転送されます。ただし、クライアント側でもデータを読み取った後「文字列から非平坦化.vi」を使用して元に戻す必要があります。
また、これに関連してsnap.viではなくGrap.vi(acquire)を使用して高速の画像転送を行う場合、この方法では早いレート(フレーム/秒)を保つことは難しくなる場合があります。この場合イメージファイルをJPEGイメージに圧縮することで解決できる場合があります。その方法は以下の関連リンクにありますのでご参照ください。
関連リンク: Developer Zone Example: Transfer Images Over the Network
添付: - DSReader.vi - DSWriter.vi
報告日時: 04/02/2004
最終更新日: 12/14/2007
ドキュメントID: 381DHIWX
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.