# WriteImage

WriteImage 関数を使用して、現在の画像をローカルデバイスまたは FTP/SFTP サーバに保存します。画像上にグラフィックスオーバレイを含めた SVG ファイルを作成することもできます。

注 :

- ファイルは、選択した保存先にオンラインまたはオフラインで保存できます。
- 多数の画像ファイルを保存するようにジョブを設定する場合は、[ストレージ] 設定として [FTP サーバ] または [SFTP サーバ] を選択することを推奨します。In-Sight デバイスに多数の画像ファイルを保存すると (例えば、Event パラメータが、使用可能なメモリストレージが不足するため、重大な問題が発生する可能性があります。

## WriteImage の入力

パラメータ | 説明
画像 | Image データ構造体を含むセルへの参照を指定します。デフォルトの参照先は、セル A0 の Image データ構造体です。
イベント | 更新を強制するイベントを指定します。 このパラメータは、例えば、次のいずれかのタイムスタンプが含まれているイベントの参照である必要があります。 イベント 関数を含むセル。 Button 関数を含むセル。 注 : デフォルトでは、イベント参照値は 0 です。デフォルト値が変更されなかった場合、WriteImage 関数がスプレッドシートに初めて挿入されたときに「書き込み」というラベル付きボタンが自動的に作成され、スプレッドシートで参照できるようになります。
ストレージ | 画像をローカルデバイスに保存するか、FTP/SFTP サーバに保存するかを指定します。 保存場所は、接続されているデバイスと関数の [ストレージ] 設定によって異なります。
[ストレージ] 設定 | 接続されているデバイス | 保存先
--- | --- | ---
ローカルデバイス | In-Sight デバイス | In-Sight デバイス In-Sight デバイスに取り付けられた SD カード 注 : ファイルを表示するには、FileZilla Client などの FTP ソフトウェアを使用する必要があります。詳細については、「In-Sight デバイスに保存されているファイルの表示方法」を参照してください。 SD カードストレージを使用する場合は、ジョブを実行する前に SD カードが挿入されていることを確認してください。SD カードを挿入せずに SD カードストレージを設定した場合、ジョブによってファイルが内部フラッシュドライブの /sdcard ディレクトリに保存されます。
PC | PC 注 : FTP サーバを使用した PC への保存のみがサポートされています。
FTP サーバ | 任意のデバイス | 指定した FTP サーバ
SFTP サーバ | 任意のデバイス | 指定した SFTP サーバ
サーバ | 画像ファイルの出力先になるネットワーク上のサーバ名 (または IP アドレス) を指定します。FTP サーバとしては、ネットワーク上の In-Sight エミュレータまたは FTP サーバとして認識されるデバイスがあります。 注 : このオプションは、[ストレージ] タイプとして [FTP サーバ] または [SFTP サーバ] を選択した場合のみ有効になります。 特定のポートが必要な場合は、サーバ名に追加することができます。例えば、FTP/SFTP サーバがポート 50021 を使用する場合は、「127.0.0.1:50021」と入力します。
ユーザ名 | FTP/SFTP サーバの有効なユーザ名を指定します。このフィールドを空白のままにすると、「admin」が使用されます。 注 : このオプションは、[ストレージ] タイプとして [FTP サーバ] または [SFTP サーバ] を選択した場合のみ有効になります。
パスワード | FTP/SFTP サーバのパスワードを指定します。パスワードでは大文字と小文字が区別されます。FTP/SFTP サーバにパスワードがない場合は、このフィールドを空白のままにしておくことができます。 注 : このオプションは、[ストレージ] タイプとして [FTP サーバ] または [SFTP サーバ] を選択した場合のみ有効になります。 セキュリティの目的から、入力されたパスワードはプロパティシートや数式バー内では「*」の表示でマスクされます。 パスワードは、暗号化されたフォーマットでジョブファイルに保存されます。
ファイルパス | ファイルを保存する場所を指定します。 PC に保存する場合は、オペレーティングシステムの書き込み権限がある任意の場所にファイルを書き込むことができます。このフィールドには、ハードコードされたパス (X:/、X:/Subdir など)、UNC パス (//Cognex/shared/ など)、マップされたドライブ (M:/Subdir など)、または相対パス (../../Subdir) を入力できます。 パスが In-Sight デバイスまたは PC に存在しない場合、この関数は #ERR を返します。パスまたは FTP/SFTP 資格情報が FTP/SFTP サーバで無効な場合、この関数は #ERR を返します。 FTP サーバにファイルを書き込む場合は、ファイルパスを指定することもできます。 SFTP サーバにファイルを書き込む場合は、ファイルの絶対パスを指定することもできます。パスの前に ~ を付けると、SFTP サーバのユーザのホームディレクトリからの相対パスにファイルが追加されます。 このフィールドを空白のままにすると、ファイルは次のいずれかのデフォルトの場所に送信されます。 In-Sight デバイス:デバイスのルートディレクトリ。 FTP サーバ:指定した FTP サーバのデフォルトのディレクトリ。 SFTP サーバ:指定した SFTP サーバのルートディレクトリ。
ファイル名 | 画像ファイルの名前を指定します。SVG ファイルの名前も定義します。 注 : 有効な文字に関するオペレーティングシステムの制限に従ってください。 ファイル名の追記値パラメータをフォーマットすることができます。詳細については、このトピックの「値パラメータのフォーマット」のセクションを参照してください。
ファイルタイプ | 画像のファイルフォーマットを指定します。
0 = BMP (デフォルト) | Windows ビットマップフォーマット (拡張子は .bmp です)。
1 = JPEG | 標準エンコード JPEG フォーマット (拡張子は .jpg です)。
2 = PNG | 標準エンコード PNG フォーマット (拡張子は .png です)。
最大追記値 | 指定されたファイル名で出力する画像ファイルの最大数 (0 ～ 9999999、デフォルト = 999)。カウンタは、各画像ファイルが書き込まれるごとに 1 つ増加し、フォーマット指定子が使用されていない場合は、指定されたファイル名の後ろに付加されます。それ以外の場合、カウンタはフォーマット指定子の位置に付加されます。カウンタが最大追記値に達するとリセットされ、出力先のシステムにある画像ファイルは同じ名前の新しいファイルで上書きされます。値が -1 または範囲外の値に設定されている場合は、ファイル名にカウンタは付加されません。
リセット | 指定したファイル名に付加した数値カウンタを 0 にリセットします。リセット後、目的の場所にある既存の画像ファイルは、同じ名前の新しいファイルで上書きされます。
0 = OFF (デフォルト) | 最大追記値まで、各画像ファイルが転送されるごとにカウンタを 1 つ増加します。
1 = ON | カウンタを 0 にリセットします。
注 : デフォルトでは、[リセット] チェックボックスはオンになっていません。デフォルト設定が変更されなかった場合、WriteImage 関数がスプレッドシートに初めて挿入されたときに「リセット」というラベル付きボタンが自動的に作成され、スプレッドシートで参照できるようになります。
オーバレイグラフィックス | オーバレイグラフィックスを含む SVG ファイルを作成するかどうかを指定します。SVG ファイルおよび画像ファイルを表示するには、SVG ファイルタイプをサポートする Web ブラウザを使用して、SVG ファイルを開きます。SVG ファイルには、このファイルに関連する取得画像へのリンクが含まれており、ブラウザで SVG ファイルを開くと、このリンクを使用して、取得画像と共にオーバレイグラフィックスを表示します。
0 = OFF | 画像のみが転送されます。
1 = ON (デフォルト) | 画像ファイルと SVG ファイルの両方が転送されます。有効にすると、グラフィックスオーバーレイデータを含む SVG ファイルは画像に指定されたディレクトリに保存されます。Web ブラウザを使用して、オーバレイグラフィックスのデータと画像を一緒に表示します。
注 : ON にした場合、SVG ファイルは [ファイル名] パラメータで指定した名前を使用します。 Web ブラウザといったサードパーティーのアプリケーションを使用してグラフィックスを表示するため、オーバレイグラフィックスのデータは、ピクセル単位で正確に一致しません。

## WriteImage の出力

戻り値 | 参照先のイベントが更新されるたびに、指定した Image データ構造体に含まれている画像データをローカルデバイスまたは FTP/SFTP サーバに書き込む WriteImage データ構造体。 入力パラメータが無効な場合、またはファイルキューが満杯の場合、#ERR を返します。 In-Sight D900 シリーズビジョンシステムのメモリストレージが満杯の場合、#ERR を返します。 注 : FTP/SFTP サーバのパスまたはファイル名が無効でも、#ERR を返しません。 ヒント : #ERR にカーソルを合わせると、次のエラーメッセージが表示されます。
メッセージ | エラーの理由
--- | ---
#ERR:ファイルを開くことができません: ファイルパス/ファイル名 | 指定したファイルパスまたはファイル名パラメータが正しくありません (ファイルパスが作成されていないなど)。
#ERR:エラー 0:7:2: ファイルパス/ファイル名 | ビジョンシステムのメモリストレージが満杯です。
結果 | WriteImage 関数が初めてスプレッドシートに挿入されたときに、[イベント] パラメータまたは [リセット] パラメータがデフォルト設定に設定されている場合は、[書き込み] または [リセット] ボタンが自動的に作成され、スプレッドシートで参照できるようになります。

## 値パラメータのフォーマット

名前を一列に並べて表示するために、「|」文字を使用して値パラメータをフォーマットすることができます。「|」を使用する場合、値はゼロまたは空白のいずれかで埋めることができます。「|」の直後の文字が 0 の場合、フォーマットはゼロで埋められます。それ以外の場合は、空白で埋められます。次の文字は、0 または空白をいくつ挿入するかを示します。ファイル名に複数の「|」が含まれている場合、最後の「|」がフォーマットインジケータとして使用されます。「|」文字の後に数字がない場合は、オペレーティングシステムの制限に従って、「|」は名前の一部として使用されます。

ファイル名を MyImage に設定した場合、保存されるファイル名は次のようになります。

ファイル名を MyImage|03 に設定した場合、保存されるファイル名は次のようになります。

ファイル名を MyImage|3 に設定した場合、保存されるファイル名は次のようになります。

ファイル名の中央に「|」がある場合、追記値はインラインに挿入されます。例えば、ファイル名を Fail_Image|03JobX に設定した場合、保存されるファイル名は次のようになります。