Nmageman

INDEX

Nmagemanとは?

Nmagemanはアクセス時に画像を動的変換するISAPI Extensionです。

以下のようなことが可能です。

動作環境
IIS 5.0, 5.1, 6.0 and 7
パッケージ内容
Nmageman.dll
ISAPI Extension本体
Nmageman.setting
設定ファイル
Environments.setting
端末情報設定ファイル
注意事項
  1. 本ソフトウェアの利用は良識の範囲内でお願い致します。
  2. 本ソフトウェアの利用による損害の保証はお受けできません。
  3. 本ソフトウェアの利用は楽しんで行っていただきますようお願い致します。
インストール方法
IIS 5.0, 5.1
  1. "Nmageman.dll" を目的のWebディレクトリのアプリケーションマッピングに登録。
    • "実行ファイル" に "Nmageman.dll" を指定。
    • "拡張子" に変換したいファイルの拡張子(.jpg, .png, .gif など)を指定。
      [※]独自拡張子(.jpgx など)を指定することで、本来の拡張子(.jpg など)は変換しないようにすることも可能。
      [※]Nmagemanは拡張子ではなくファイルの中身で画像を判断します。
      [※]Proxyとしてインストールする場合など、必要に応じて拡張子"*"を指定することも可能。
    • "動詞" に "GET,HEAD" を指定。
    • "スクリプトエンジン" にチェック。
    • "ファイルの存在を確認する" にチェック。
      [※]Proxyとしてインストールする場合にはチェックを外してください。
  2. 以上で完了です。動作しない場合は以下をご確認ください。
    • パッケージディレクトリに "IUSR_{xxx}" の読み取り権限があるか。
    • パッケージディレクトリの "cache" フォルダに "IUSR_{xxx}" の書き込み権限があるか。
IIS 6.0
  1. "Nmageman.dll" を目的のWebディレクトリのアプリケーションマッピングに登録。
    • "実行ファイル" に "Nmageman.dll" を指定。
    • "拡張子" に変換したいファイルの拡張子(.jpg, .png, .gif など)を指定。
      [※]独自拡張子(.jpgx など)を指定することで、本来の拡張子(.jpg など)は変換しないようにすることも可能。
      [※]Nmagemanは拡張子ではなくファイルの中身で画像を判断します。
      [※]Proxyとしてインストールする場合など、必要に応じて拡張子"*"を指定することも可能。
      [※]Proxyとしてインストールする場合など、必要に応じて"ワイルドカードアプリケーションマップ"を利用することも可能。
    • "動詞" に "GET,HEAD" を指定。
    • "スクリプトエンジン" にチェック。
    • "ファイルの存在を確認する" にチェック。
      [※]Proxyとしてインストールする場合にはチェックを外してください。
  2. IISの "Web サービス拡張" に "Nmageman.dll" を追加し、許可する。
  3. 以上で完了です。動作しない場合は以下をご確認ください。
    • パッケージディレクトリに "NETWORK SERVICE" の読み取り権限があるか。
    • パッケージディレクトリに "IUSR_{xxx}" の読み取り権限があるか。
    • パッケージディレクトリの "cache" フォルダに "IUSR_{xxx}" の書き込み権限があるか。
対応画像
入力
  • [OK] jpg
  • [OK] png (32bit)
  • [OK] png (8bit)
  • [NG] png (8bit, Transparent)
  • [OK] gif
  • [OK] gif (Transparent)
出力
  • [OK] jpg
  • [OK] png (32bit)
  • [OK] png (8bit)
  • [OK] png (8bit, Transparent)
  • [OK] gif
  • [NG] gif (Transparent)
利用方法

画像を変換するには目的画像へのアクセスに、変換指示のQueryStringを付加します。
QueryStringがない場合には元画像をそのまま返します。

例: 幅100pxで画像を表示する場合。
xxx.jpg?w=100
例: 幅100pxでpngで画像を表示する場合。
xxx.jpg?w=100&f=png
例: 端末幅100%で画像を表示する場合。
xxx.jpg?w=100&su=ep
例: 幅100px、高100pxに収まるような画像を表示する場合。(BOX変換)
xxx.jpg?w=100&h=100
利用リファレンス
w
幅を指定します。
指定しない場合は比率固定によるAuto値になります。
"w"と"h"が両方指定されている場合にはBOX変換になります。
h
高さを指定します。
指定しない場合は比率固定によるAuto値になります。
"w"と"h"が両方指定されている場合にはBOX変換になります。
su

"w"と"h"の単位を指定します。
指定しない場合はピクセル単位になります。
値は以下のいずれかを指定してください。

ep
端末のブラウザ画面に対する%。
f
ファイル形式を指定します。
指定しない場合は元画像の形式になります。
jpg
jpgに変換される場合のクオリティを指定します。[1-100]
e
画像を拡大するか否かを指定します。[yes,no]
設定リファレンス(Nmageman.setting)
<nmageman/>

Nmageman設定のルート要素。

属性
[なし]
子要素
  • <Enlarge/>
  • <JPGQuality/>
  • <CacheFolderPath/>
  • <CacheDeleteTime/>
  • <DefaultQuery/>
  • <Proxy/>
  • <SearchExts/>
<Enlarge/>

拡大の可否を指定します。

yes、no [Default:yes]
属性
[なし]
子要素
[なし]
<JPGQuality/>

JPG出力時の品質(%)を指定します。

[Default:90]
属性
[なし]
子要素
[なし]
<CacheFolderPath/>

キャッシュフォルダのパスを指定します。
"Nmageman.dll"からの相対パスか絶対パスを指定できます。
空文字列("")を指定するとキャッシュ機能が無効になります。

[Default:""]
属性
[なし]
子要素
[なし]
<CacheDeleteTime/>

キャッシュファイル削除機能に利用される時間(秒)を指定します。
0を指定するとキャッシュファイル削除機能が無効になります。
キャッシュファイル削除機能はインターバル60秒で動作しています。

[Default:0]
属性
BaseTime
以下のいずれかを指定できます。
Creation
キャッシュファイルが作成されてからの時間で削除を判定する。
LastAccess [Default]
キャッシュファイルが最後にアクセスされてからの時間で削除を判定する。
子要素
[なし]
<DefaultQuery/>

QueryStringのないアクセス時に利用される既定のQueryStringを指定します。
変換方法を指定せずに画像ファイルへアクセスした場合の既定の変換方法を指定できます。
XML構文に従って "w=100&amp;su=ep" などと指定してください。

[Default:""]
属性
[なし]
子要素
[なし]
<Proxy/>

変換画像のプロキシ設定をします。
アクセス時URLが<Map/>で指定される設定に引っ掛かる場合はプロキシします。
<Map/>は複数指定可能で、上から順に処理されます。
どの<Map/>にも引っかからない場合はローカルファイルとして処理されます。

プロキシ先にQueryStringを渡したい場合には以下のうようにアクセスしてください。

http://aru.host/getimage.php?image=16200?w=300&h=300

[なし]
属性
[なし]
子要素
  • <Map/>
<Proxy/> - <Map/>

変換画像のプロキシマップを指定します。

Leftでマッチした場合のマッピング先を指定します。
Leftでマッチした残りの文字列がこの値の後ろに付加されてマッピング先のURLが構成されます。
属性
Left
アクセス時URLのLeftマッチ文字列を指定します。
マッチ文字列は大文字小文字を区別せず左方一致で判定します。
正規表現には対応していません。
子要素
[なし]
<SearchExts/>

拡張子検索機能を設定します。
アクセス時URLの画像が見つからない場合は<Ext/>で指定した拡張子を検索します。
<Ext/>は複数指定可能で、上から順に検索が行われます。

[なし]
属性
[なし]
子要素
  • <Ext/>
<SearchExts/> - <Ext/>

検索する拡張子を指定します。
設定する値に "." は必要ありません。

"jpg" など
属性
[なし]
子要素
[なし]
設定リファレンス(Environments.setting)
<environments/>

Environments設定のルート要素。

属性
[なし]
子要素
  • <UAKey/>
  • <Env/>
<UAKey/>

User-Agentのキーとなる文字列パターンを指定します。
<UAKey/>は複数指定することができます。

[なし]
属性
Pattern
<Env/>のUserAgent属性として検索対象となるUser-Agentパターンを指定します。
値は正規表現で指定する必要があります。
正規表現はPerl互換(Boost.Regex Perl Regular Expression Syntax)で記述して下さい。
子要素
[なし]
<Env/>

端末情報を指定します。
<Env/>は複数指定することができます。

[なし]
属性
UserAgent
<UAKey/>のPattern属性で対象となる端末のUser-Agentを指定します。
この値はEnv同士でユニークである必要があります。
Width
この端末のブラウザ画面幅をピクセル単位で指定してください。
Height
この端末のブラウザ画面高をピクセル単位で指定してください。
子要素
[なし]
更新履歴
2008/03/05
  • Version: 1.0.0.0
2008/05/02
  • Version: 1.1.1.0
  • jpg品質が70だったのを100に変更
  • アクセス時にQueryStringがない場合は元画像を何も触らずに出力する機能追加
2008/06/17
  • Version: 1.8.1.0
  • Nmageman.setting による設定機能の追加
  • キャッシュファイルの定期削除機能追加
  • 端末画面に合わせた変換機能追加
  • BOX変換機能追加
2008/08/20
  • Version: 1.9.2.0
  • 設定項目<DefaultQuery/>の追加
  • Environment.settingの走査をループに変更(不明機種時に""が対象となるように変更)
2008/09/01
  • Version: 1.15.2.0
  • 設定項目<Enlarge/>の追加
  • 設定項目<CacheDeleteTime BaseTime/>の追加
  • 設定項目<Proxy/>の追加
  • 設定項目<SearchExts/>の追加
  • CacheDelete処理のインターバルを3600秒から60秒に変更.
  • QueryString "e" の追加
  • QueryString "jpg" の追加
2008/09/26
  • Version: 1.16.3.0
  • Proxyで利用するHTTPライブラリをWinHttp 5.0からWinHttp 5.1に変更
2008/09/29
  • Version: 1.16.4.0
  • 無変換アクセス時のメモリ解放処理に不具合あり対処
2008/09/30
  • Version: 1.16.5.0
  • 変換アクセス失敗時のメモリ解放処理に不具合あり対処
FreeImage
FreeImage Public License
This software uses the FreeImage open source image library. See http://freeimage.sourceforge.net for details.
FreeImage is used under the FIPL, version 1.0.
株式会社バリューエンジン
Nmagemanは株式会社バリューエンジンが提供する携帯端末情報を利用しています。
[ProfileData_2008-08-18]