画像処理

スマートフォンやタブレット端末の普及は、コンピュータを利用するエンド・ユーザーにも
多大な影響を与えています。
誰もがこれほど手軽に画像や動画、写真などを扱うことができるのであれば
社内データの活用を希望するのは当然のことです。

この変化に対して文字情報だけであった IBM i も、画像処理が必要になってきます。
画像処理を使えば IBM i に、画像インターフェースを与えることができるようになります。

表現力に富んだ絵文字を使うと、少ない文字数で多くのことを表現することができます。
絵文字は Unicodeの一部として規定されており、AutoWebではこのUnicode規定のすべての
絵文字を利用することができます。

絵文字を利用するには

絵文字を入力/表示する入出力フィールドは Unicode の指定が必要です。
UTF-16 または UCS-2として指定する必要があります。

【例】DSPFのDDSソースで 24バイトのUTF-16(=CCSID(1200) )を指定する
A            BKTEKI        24G  B  6 17TEXT(' 摘要 UNICODE *EMOJI')
A                                      CCSID(1200 24)  
[解説]

UTF-16では CCSID(1200)を指定し、UCS-2では CCSID(13480)を指定してください。
Unicodeの指定は、文字タイプをG(=グラフィック・フィールド)として
指定する必要があります。
CCSID(1200 24) は、 CCSID(1200)で24バイト表示で表示することを
意味しています。
24バイトと指定しないと、このフィールドは大きく冗長な長さで表示されてしまいます。
さらに TEXT欄には *EMOJI という文字列をどこかに記述してください。
これによってAutoWebは、絵文字の入力が必要なフィールドであると判断します。

-- つまり絵文字を入力するには

  • TEXTに *EMOJI と記述する
  • Unicodeとして定義する

の二つの条件が必要になります。

絵文字の表示するために

絵文字は、Unicodeの一部に絵文字コードが割り当てられており、絵文字の内部に
カラー・コードも含まれています。
この絵文字のカラー・コード(色)を完全に表示できるのは、Windows10以降です。
Windows7ではモノクロ表示であり、Windows8.1では一部のみのカラーとなります。

カラフルな絵文字にするには

AdobeやGoogleでは、絵文字コードのフォントが有償で販売されていますので
これらのフォントを使えば、同じ絵文字コードがよりカラフルな絵文字として
表現することができます。
これらのフォントを利用するには、各すべてのクライアントにそのフォントを
導入する必要があります。
くわしくは、弊社ヘルプデスクまでご相談ください。

LINE絵文字とは

LINEの絵文字は、フォントではなく画像です。LINEの絵文字はJSON形式で
記述されており、LINEサーバーから絵文字の画像がダウンロードされてくる
仕組みになっていますので、フォントとして利用することはできません。

機能キーの代わりに、アイコンをインターフェースとするボタンを作成することができます。

【例】DSPFのDDSソースで押しボタン(PSHBTNFLD)にアイコンを指定します。
A            F3FLD          2Y 0B 23  2PSHBTNFLD(*RSTCSR (*NUMCOL 1))
A                                      TEXT(' 終了ボタン ')          
A                                      PSHBTNCHC(1 '*END' CF03)
[解説]

IBM が規定している押しボタン・フィールドの記述は PSHBTNFLD です。
押しボタンの表面の記述に *END のように、特殊文字 ' * ' から始まる記述をすれば
AutoWebの画面構成(HTTPCFG)に設定されているアイコンを表示することができます。
この場合ではHTTPCFG*END は、次のように指定されています。

BUTTON_ICON    *END       /AS400-NET.USR/ICONS/END.PNG 

このように *ENDと記述しておけば IFS の /AS400-NET.USR/ICONS/END.PNG という
アイコンが表示されます。
同じように HTTPCFG には、次の BUTTON_ICON が追加されました。

BUTTON_ICON    *CAMERA    /AS400-NET.USR/ICONS/CAMERA.PNG  
BUTTON_ICON    *PICTURE   /AS400-NET.USR/ICONS/PICTURE.PNG 
BUTTON_ICON    *EMOJI     /AS400-NET.USR/ICONS/EMOJI.PNG   
BUTTON_ICON    *MIKE      /AS400-NET.USR/ICONS/MIKE.PNG    
BUTTON_ICON    *PHONE     /AS400-NET.USR/ICONS/PHONE.PNG   
BUTTON_ICON    *NOTE      /AS400-NET.USR/ICONS/NOTE.PNG    
BUTTON_ICON    *OTHER     /AS400-NET.USR/ICONS/OTHER.PNG   
BUTTON_ICON    *UPDATE    /AS400-NET.USR/ICONS/UPDATE.PNG  
BUTTON_ICON    *END       /AS400-NET.USR/ICONS/END.PNG     
BUTTON_ICON    *HOME      /AS400-NET.USR/ICONS/HOME.PNG    
BUTTON_ICON    *NEXT      /AS400-NET.USR/ICONS/NEXT.PNG    
BUTTON_ICON    *PREV      /AS400-NET.USR/ICONS/PREV.PNG    
BUTTON_ICON    *UP        /AS400-NET.USR/ICONS/UP.PNG      
BUTTON_ICON    *DOWN      /AS400-NET.USR/ICONS/DOWN.PNG    
BUTTON_ICON    *SEARCH    /AS400-NET.USR/ICONS/SEARCH.PNG  
BUTTON_ICON    *RELOAD    /AS400-NET.USR/ICONS/RELOAD.PNG  
BUTTON_ICON    *DELETE    /AS400-NET.USR/ICONS/DELETE.PNG   
BUTTON_ICON    *POPUP     /AS400-NET.USR/ICONS/POPUP.PNG    
BUTTON_ICON    *DOWNLOAD  /AS400-NET.USR/ICONS/DOWNLOAD.PNG 
BUTTON_ICON    *UPLOAD    /AS400-NET.USR/ICONS/UPLOAD.PNG   
BUTTON_ICON    *PRINT     /AS400-NET.USR/ICONS/PRINT.PNG    
BUTTON_ICON    *PDF       /AS400-NET.USR/ICONS/PDF.PNG      

特殊アイコンの意味と利用方法

*CAMERA カメラで撮影した画像を *IMAGE をTEXTに記述されているフィールドに
貼り付けます。プログラムには制御権は戻りません。
*EMOJI Unicodeとして定義されているフィールド(CCSID(1200))で、なおかつ
*EMOJIがTEXTに記述されていれば、絵文字の入力が可能になります。
このフィールドを受け入れるデータ・ベースのフィールドも
Unicode(CCSID(1200))として定義されていなければなりません。
*PICTURE ローカルPCにある画像データを検索して、選択した画像を*IMAGE
フィールドに貼り付けます。プログラムには制御権は戻りません。
*UPDATE *IMAGEの画像データを指定場所にアップロードして
更新キーの制御権をプログラムに戻します。
つまりボタンにF5キーが定義されていれば、プログラムに
F5キーを押した処理が渡されます。
*UPLOAD *IMAGEの画像データを指定場所にアップロードします。
プログラムには制御権は戻りません。

画像のアップロードはオプション機能です

画像の表示にはライセンスは必要ありませんが、画像をIBM i へアップロードするには
オプション機能としてライセンスのご契約が必要です。
くわしくは 弊社ライセンス担当までお問い合わせください。

お客さまは、新しい BUTTON_ICON ディレィクティブを自由に追加することができます。

※これらのアイコン・イメージをご希望のお客さまは、弊社ヘルプデスクまで
 お問い合わせください。

スマート・フォン や iPadのようなカメラつきの端末装置であれば、写真撮影ができます。
*CAMERA で指定したアイコン・ボタンを押してカメラで撮影すると、画像が
*IMAGE とTEXTに記述したフィールドに表示されます。
写真の保存場所は、あらかじめCNTFLDにフォルダーのフル・パス名で指定しておく
必要があります。

文字情報の世界を超えて、画像処理の
ビジュアル・インターフェースの世界へ

IBM i にも画像インターフェース
加わりました。
文字に比べて画像であれば、
情報はひと目でわかります。
具体的で、目で見て誰もがわかる画像こそが、
情報伝達には欠かせないコンテンツです。
これまでの文字情報だけの世界に画像処理
加えれば IBM i をビジュアルなサーバーに
生まれ変わらせることができます。

【例】CNTFLDとカメラ・ボタンのDSPFのDDSソース
A                                  9  2' 写真 '                         
A            BPHOTO       504A  B  9 17TEXT(' 写真 =42 桁 * 12 行表示 -	
A                                      *IMAGE')
A                                      CNTFLD(042)                      
 :
A            CAMERA         2Y 0B 23 10PSHBTNFLD(*RSTCSR (*NUMCOL 1))
A                                      TEXT(' カメラ撮影 ')          
A                                      PSHBTNCHC(1 '*CAMERA' CF05)  
A            UPDATE         2Y 0B 23 34PSHBTNFLD(*RSTCSR (*NUMCOL 1))
A                                      TEXT(' 更新キー ')            
A                                      PSHBTNCHC(1 '*UPDATE' CF10)  
[解説]

CNTFLDとは、DDSの連結を示すDDSキー・ワードです。
EXTには文字列 *IMAGEが記述されています。
フィールド BPHOTO の長さは 504バイトですが、一行42桁の12行の表示で連結されて
構成されています。
フィールド BPHOTO にはプログラムで最初に写真の保管場所として

/AS400-NET.USR/PHOTO/ENGINE.JPG

という値が出力されています。
もちろん最初はこのファイルは存在していません。
撮影して更新すると、はじめてこのファイル名として保管されるという意味です。
押しボタン CAMERA は *CAMERA として定義されている写真撮影のための
特別なボタンです。CF05と定義されていますが、実際はカメラ撮影のための
JavaScriptに置き換えられますので、CF05キーが押されることはありません。
( つまり CF05という記述はダミーです )

*CAMERA で定義された押しボタンを押すと、撮影された映像は*IMAGEとしてTEXTに
記述されている 唯一のフィールドに表示されて、 *UPDATE で定義されている
更新ボタンが押されたときにはじめて、指定された上記の保管場所に保管されます。

保管場所はこの例では、IBM i のIFSフォルダーとして記述されていますが
社内の他の共有Windowsフォルダーであっても構いません。
他の共有Windowsフォルダー名は、/QNTC を使って次のように記述することができます。

/QNTC/192.168.1.21/PHOTO/ENGINE.JPG

/QNTC という名前のフォルダーは、IBMによって提供されている特殊なフォルダー名です。
このフォルダーから IPアドレス(=ここでは 192.168.1.21 )を指定して、他のWindows
共有サーバーに 保存を支持している。
/QNTC のくわしい利用方法は

14.QNTC で他のPCサーバーにアクセス

を参照してください。
このように /QNTC 経由で他のWindowsサーバーに保存することもできます。
クラウドに同じように共有を設定しておけば、インターネット経由でクラウドに
保存することもできてしまいます。

次に*CAMERAで指定された押しボタンを押しただけでは、写真画像はCNTFLD
表示されますが、IFSや共有フォルダーに保存されるわけではありません。
*UPDATEで指定された押しボタンを押して、初めて IBM i または共有フォルダーに
アップロードされて更新されます。

次は写真撮影の様子を示しています。

*CAMERAを使用するとき、写真を表示する対象とするCNTFLDは、ひとつの
DSPFの表示レコードの中で、唯一のフィールドでなくてはなりません。

スマート・フォンやFacebookなどにも用意されている、画像の検索機能を利用することが
できます。
これは *PICTURE で定義されている特殊なボタンで、これを押すとローカルの画像を検索して
CNTFLDに表示する機能のことです。
*UPDATEボタンを押せば、CNTFLDに指定されているフル・パス名としてアップロードして
保管することができます。

次は *PICTURE で検索して画像を表示している例です。

画像の取り込みを使うと、IBM i へのイラストや画像をアップロードや登録が簡単になります。
製品の写真や図面の登録も登録用のプログラムを社内で開発して用意しておき
設計部署や研究部門に登録を依頼しておけばよいのです。
新製品が開発されても登録プログラムがあれば、開発部門で容易に画像を登録することが
できます。

このように写真や画像を手軽に IBM i や共有Windowsサーバーに登録できることは
今までの IBM i の用途を大幅に拡充します。
写真や画像はひと目見て誰もがわかるコンテンツです。
文字情報に比べて写真や画像は、直感的でわかりやすく説得力を持ちます。
画像の利用にぜひご活用ください。