//============================================================================== // 『 Jpex for HSP 』 Ver0.3 プログラミングガイド 2001.8.21 FORCE //============================================================================== 1. 概要 『 Jpex for HSP 』は、HSPのJPEG関連機能を拡張するプラグインDLLです。 HSP本体の標準命令"picload"で未対応のプログレッシブJPGの読み込みが出来る ほか、タイプや圧縮率を指定したJPEGセーブ機能などを、シンプルなスクリプト で簡単に実現することができます。 2. 命令一覧 コマンド名 内容 ------------------------------------------------------------------- jpexload JPEGファイルをロード jpexdraw JPEGイメージを描画 jpexsave 画面イメージをJPEGファイルに保存 jpexver Jpex.dllのバージョンを取得 ------------------------------------------------------------------- 3. 命令詳細 ■ jpexload p1,p2 p1 = 数値型(配列)変数 :JPEGサイズを受け取る変数 p2 = 文字列または文字列変数 :JPEGファイル名 ・説明 JPEGファイルをJpex.dll内のバッファにロードします。 p2には、JPEGファイル名を拡張子も含めて指定して下さい。 ロードが完了すると、JPEGイメージのXサイズ、Yサイズが、p1で指定し た数値型(配列)変数に代入されます。X,Yサイズはそれぞれ p1.0,p1.1 に配列の形で代入されます。 例: jpexload a,"jpex.jpg" jx = a.0 ;jx → Xサイズ jy = a.1 ;jy → Yサイズ screen 0,jx,jy,0 ;JPEGのサイズで初期化 ロードしたJPEGイメージは、後述のjpexdraw命令で、ウインドウまたは バッファ画面に描画します。 ロードに成功すると、statの値は0になります。ファイルが存在しない 場合や、指定ファイルが未対応フォーマットの場合など、エラーが発生 した場合はstatに1が代入されます。 ■ jpexdraw p1,p2,p3 p1 = 0〜(0) :X座標 p2 = 0〜(0) :Y座標 p3 = 0〜1(0) :再描画モード ・説明 JpexバッファにロードしたJPEGイメージを、現在選択されているウイン ドウに描画します。 p1,p2に、左上XY座標を指定します。 p3には、再描画モードを指定します。0の場合は、表示されているウイ ンドウを再描画します。1を指定すると、仮想画面のみが描画され、実 際の画面は更新されません。 描画に成功すると、statの値は0になります。JPEGが未ロードの場合な ど、エラーが発生した場合はstat=1が代入されます。 ■ jpexsave p1,p2,p3 p1 = 文字列または文字列型変数 :保存ファイル名 p2 = 1〜100(90) :JPEG圧縮品質 p3 = 0〜2(0) :エンコード方法 ・説明 現在選択されている画面のイメージを、JPEGファイルに保存します。 p1には、保存するファイル名を、拡張子も含めて指定して下さい。 p2には、JPEGの圧縮品質を1〜100の値で指定します。数値が大きいほど 画質が良くなりますが、その分ファイルサイズは大きくなります。 この値を省略すると、デフォルトの90に設定されます。 p3のファイルタイプに1を指定すると、プログレッシブJPEG形式で保存 されます。2を指定すると、最適化エンコードを行います。同じ画質で 圧縮率が良くなりますが、デコードが遅くなります。 保存に成功すると、statの値は0になります。エラーが発生した場合は stat=1が代入されます。 ■ jpexver (パラメータなし) ・説明 Jpex.dllのバージョンを取得します。バージョンは戻り値stat に次のような形で返されます。 Ver 0.30 → 30 Ver 1.00 → 100 4. 拡張ランタイム 拡張ランタイム(Jpex.hrt)が、Ver0.3より追加されました。 HSPランタイムマネージャを使用してEXEファイルを作成すると、Jpexの 機能をEXE単体で実行することができます。ただし、Jpex.hrtは、Jpex. dllとは異なるコンパイラで作成されているため、JPEGのデコード速度 が約20%程度低下します。また、HSP標準命令のJPEGロード機能は削除 されていますのでご注意ください。 ランタイムマネージャはHSPホームページより入手して下さい。 5. 追記 Jpexの画像ロード処理は、ウインドウや仮想画面に直接描画するのでは なく、一度メモリバッファに展開するという方法をとっています。 これは、DLLからのHSPウインドウ初期化が(多分?)出来ない為、JPEGのX Yサイズを描画前に取得する必要があるという理由からです。 そこでロードと同時にサイズ取得を効率的に行うことによって、ロード と描画を別処理としながら速度比180%(*)を実現しています。 一度ロードしたJPEGは、次にロードが行われるまでJpexバッファ内に保 持されていますので、同じ画像をもう一度表示したり、複数のウインド ウやバッファに同じ画像を描画するような場合は、jpexdrawのみを再実 行して、高速に処理することができます。 jpexsaveは、bmpsaveとほぼ互換使用が可能です。オプションとして、 プログレッシブ形式での保存をサポートしていますが、このタイプは、 HSPのpicload命令では読み込むことができませんのでご注意下さい。 『 Jpex for HSP 』が何かのお役に立てれば幸いです。 (*)作者開発環境でのテスト結果 //============================================================================== // Copyright (C) 1999-2001 Hiroyuki Satoh (FORCE) //===========================================================================EOF