当パラメータを指定しない場合には、出力ファイル指定としてoutputfileを指定します。
上記の出力ファイル名は、それぞれ次のようになります。
prefix'は prefixから"+$l"または"+$s"を除いたもので、ファイル名はパスや拡張子を除いた元の画像のファイル名です。
例えば、prefixが"out"で、入力画像ファイルが"d:\images\file1.jpg"の場合には、"outfile1.bmp"となります。
また、prefixが"c:\tmp\"で、入力画像ファイルが"d:\images\file1.jpg"の場合には、"c:\tmp\file1.bmp"となります。
prefixにパスが指定されていない場合、出力ファイルは実行時のカレントディレクトリに作成されます。
3. イメージ変換指定
3.1 画像情報出力
3.1.1 ファイル名、サイズの出力
3.2 画像の反転・回転
3.2.1 横方向での反転
3.2.2 縦方向での反転
3.2.3 縦・横での反転
3.2.4 右に90度回転
3.2.5 左に90度回転
3.3 色の補正
3.3.1 赤・緑・青の単純補正
3.3.2 ガンマの補正
3.3.3 コントラストの補正
3.3.4 明度の補正
3.3.5 彩度の補正
3.3.6 シャープニング
3.4 サイズの変更
3.4.1 サイズ変更(簡易タイプ)
3.4.2 サイズ変更(任意倍率)
3.4.3 サイズ変更(サイズ指定)
3.5 画像の変更
3.5.1 画像のカット
3.5.2 フレーム・グラデーション
3.5.3 フレーム画像の埋め込み
3.5.4 絵画的変換
3.6 文字列の描画
3.6.1 横方向への文字列の描画
3.6.2 縦方向への文字列の描画
3.7 フラクタル図形の描画
3.7.1 Mandelblot集合の描画
3.7.2 Julia集合の描画
3.7.3 Newton法による解の引力圏図の描画
3.7.4 カオス図形の描画
3.7.5 キルト図形の描画
3.8 前景と背景の混合
3.8.1 前景の混合的ぼかし
3.8.2 前景の分散的ぼかし
4. ファイル例
・動作環境設定ファイル
・画像リストファイル
Windows NT系のOSであるWindows XP等ではこの環境変数の設定は AUTOEXEC.BAT に設定するのではなくて、以下のように行ないます。
(1)デスクトップの[マイコンピュータ]のアイコンを右クリックして[プロパティ]を選択します。
(2)[システムのプロパティ]画面の[詳細設定]のタブを開き、[環境変数]をクリックします。
(3)[環境変数]画面の[システム環境変数]に表示されている「Path」の変数を編集します。
この例では、当プログラムは"c:\tools"というディレクトリに置いてあるものとし、背景用の画像情報ファイルは"c:\tools\mkwall_info_back.txt"、前景用の画像情報ファイルは"c:\tools\mkwall_info_fwd.txt"としています。
そして、壁紙データは10分間隔で、"c:\temp"ディレクトリの下に"wallpaper_1.bmp"または"wallpaper_2.bmp"というファイル名で交互に作成されます。
このテキストファイルを拡張子を"bat"にしたファイル名で、パスの通ったディレクトリに置きます。
これで、当バッチファイルを起動させることによって、壁紙データが作成されます。
このバッチファイルを実行させる(ショートカット)アイコンをデスクトップに貼付ければ、そのアイコンをダブルクリックすることでも実行させることができます。
なお、このアイコンのプロパティの設定は、Windows95系のOSでは次のようにします。
プログラムタブ | コマンドライン | c:\tools\wallpaper.bat |
作業ディレクトリ | c:\tools | |
実行時の大きさ | 「通常のウィンドウ」を選択 | |
プログラム終了時にウィンドウを閉じる | 通常はチェックします | |
メモリタブ | 各項目 | 「自動」を選択 |
スクリーンタブ | 使い方 | 「ウィンドウ表示」を選択 |
ショートカットタブ | リンク先 | c:\tools\wallpaper.bat |
作業フォルダ | c:\tools | |
実行時の大きさ | 通常のウィンドウ |
;コメント |
[define] |
名称=値 |
…… |
[options] |
FI=前景イメージ情報ファイル名 |
BI=背景イメージ情報ファイル名 |
noPrintLineNumber |
[size] |
x=壁紙の横のサイズ |
y=壁紙の縦のサイズ |
max_size=縦または横のmaxサイズ |
[display] |
["][ドライブ:][パス\]表示プログラム名["] |
[wallpaper] |
["][ドライブ:][パス\]wallchg.exe["] |
[resize] |
upper_limit=最大拡大率 |
lower_limit=最小縮小率 |
expanding_limit=残余率 |
wallchgが mkwallから呼び出されたとき、これはタスクバーに格納されます。
mkwallの終了時には、終了メッーセージを wallchgに送ります。
すると、以下のメッセージを表示したダイアログが現れます。
mkwall ended, and so does it close the window? |
ファイル名には、次のワイルドカードや"$input"を使用できます。
* | 任意の文字列 |
? | 任意の1文字 |
$input | [input]パラメータ |
PATH=[compath] |
(2)ファイル名及び配置情報
ファイル名及び配置情報は次の形式で指定します。
path,sub_dir, pos_x,pos_y,image_x, image_y, weight |
以下、上記パラメータについて説明します。
pathはファイル名またはディレクトリ名(フォルダ名)のパスです。
共通的パス指定がされている場合、実際のパスは次になります。
compath\path |
sub_dirはpathがディレクトリの場合サブ・ディレクトリも含めるかどうかの指定で、これが1の場合にはサブ・ディレクトリも含めます。
pos_xは配置x座標です。
これに-1を指定した場合には、イメージが画面の横方向で中央になるように配置します。
pos_yは配置y座標です。
これに-1を指定した場合には、イメージが画面の縦方向で中央になるように配置します。
iamge_xはイメージ開始x座標です。
これに-1を指定した場合には、イメージ全体が画面の横方向で中央になるように開始位置を決定します。
iamge_yはイメージ開始y座標です。
これに-1を指定した場合には、イメージ全体が画面の縦方向で中央になるように開始位置を決定します。
イメージ開始位置を指定した場合、元の画像はその位置から切り取られます。
したがって、イメージの編集での位置指定は切り取られた画像からの指定となります。
weightはランダム選択における重み(1000未満の値)を指定します。省略時には 1となります。
ただしランダム選択は、以下の順序で行われます。
1,0 |
2,0 |
2,1 |
2,2 |
2,3 |
2,4 |
3,0,r,g,b |
3,1,rate |
注.ガンマ補正について
ガンマ補正というのは、表示装置の特性に合わせて輝度となる各色の階調値を補正するものです。
例えば、ブラウン管の場合には、輝度が出力値と線形にならなく、これは2次曲線のように湾曲してしまいます。
つまり、小さい値はさらに輝度が低下してしまい、画面が暗くなってしまいます。
この場合には、ガンマ値を上げるようにします。
また、画像がブラウン管の特性に合わせて作られている場合、輝度が出力値とほぼ線形に増加するような液晶の表示装置を使用している場合には、本来暗い部分が明るくなってしまい、締まりのない画像となってしまいます。
この場合には、ガンマ値を下げるようにします。
3,2,rate |
3,3,rate |
3,4,rate |
3,5,rate,[radius],[threshold] |
1. | 4,1,0 | … 1/2に縮小(平滑的) |
2. | 4,1,1 | … 2/3に縮小(平滑的) |
3. | 4,1,2 | … 3/2倍に拡大(補間的) |
4. | 4,1,3 | … 2倍に拡大(補間的) |
このサイズ変更は簡易処理で行なうものなので、処理時間を短くしたいときに使用するのに向いています。
1. | 4,2,0,x_rate[,y_rate] |
2. | 4,2,1,x_rate[,y_rate] |
1は低精度のもので、2は高精度のものとなります。
1. | 4,3,0,[width],[height] | |
2. | 4,3,1,[width],[height] | |
3. | 4,3,2,[width],[height] | |
4. | 4,3,3,[width],[height] | |
5. | 4,3,4,[width],[height] | |
6. | 4,3,5,[width],[height] |
widthは横のサイズ、heightは縦のサイズです。
ただしwidth, heightが 0の場合にはエラーになります。
1と2は幅および高さを指定サイズに変更にします。
3と4は幅および高さをそれぞれ x,yを超えないようにします。
5と6は幅と高さをそれぞれ x,y以上となるようにします。
また、1、3、5は低精度のもので、2、4、6は高精度のものになります
1. | 5,0,0,width,height | |
2. | 5,0,1,width,height |
1. | 5,1,0,width[,color] | |
2. | 5,1,1,width[,color] |
1. | 5,2,0,"frame_file"[,color] | |
2. | 5,2,1,"frame_file"[,color] |
frame_fileは枠となる画像ファイル、colorは枠以外の部分の色を指定します。
colorを省略した場合、これは黒(0:0:0)となります。
1. | 5,3,0,rate,[radius],[threshold],[hue_limit],[emphasis] | |
2. | 5,3,1,rate,[radius],[threshold],[hue_limit],[emphasis] | |
4. | 5,3,2,rate,[radius],[threshold],[hue_limit],[emphasis] |
1は水彩画タイプ、2はエッチンググラス風タイプ、3はモザイク風タイプです。
(2は近傍のピクセル同士が微妙に異なる場合に効果的となります。)
rateはぼかしの度合(0〜100%)、radiusは周辺との平均化を行なう「半径」、thresholdは変更対象ピクセルのしきい値(0〜100%)の指定です。
(radiusとthresholdは、シャープニングの場合と同じ意味のものです。)
hue_limitは、周辺のピクセルの平均値をとる際の色相の許容度を指定します。
つまり、これは似た色のもののみに制限することによって、色の変化を抑制するものです。
これが0の場合には、近傍の全てのピクセルが選択されます。
この値を低くすることによって色の滲みを低減させることができます。
特にこれはエッチンググラス風の変換に対して効果的となります。
emphasisは、変更対象ピクセルにおいて、1の場合には明るい部分の強調度合、2の場合には輪郭強調度合、3の場合には明暗強調のパラメータとなります。
これは0〜10までの値を指定します。
省略した場合、これは0になります。
なお、3の場合を除き、rateよりもこちらの方が強く効きます。
特に1には水彩画変換というよりは、シャープ化という変換に近くなります。
注.3は明暗効果をつけるためだけのものなので、色については彩度を上げたりして調整する必要があります。
6,0,x,y,string,[font_type],[color],[width],[spacing],[alignment] |
stringは、次のように指定します。
"文字列" |
$filename | … ファイル名(横表示の場合) |
0xhh | … 16進コード(hh)の文字を表示します。 ただし、Symbolフォント, Wingdingsフォントの場合。 なお文字コード表は0x20から始まっていることに注意して下さい。 |
font_typeは下記のものを指定します。
0 | … FixedSysフォント(MSゴシックとほぼ同じ) |
2 | … Symbolフォント(ギリシャ文字の小文字のフォントは少し変えてあります) |
3 | … Arialフォント |
4 | … Arial Narrowフォント |
5 | … Book Antiquaフォント |
6 | … Bookman Old Styleフォント |
7 | … Centuryフォント |
8 | … Comic Suns MSフォント |
9 | … Curierフォント |
10 | … Curier Newフォント |
11 | … Garamondフォント |
12 | … Haettenshweilerフォント |
13 | … Impactフォント |
14 | … Impact(like)フォント |
15 | … Modernフォント |
16 | … MS Sans Serifフォント |
17 | … MS Serifフォント |
18 | … Times New Romanフォント |
19 | … Wingdingsフォント |
FixedSysフォントの場合には、漢字を使用できます。
Symbolフォントの場合、小文字はBook Antiquaの字体のものが表示され、全角のシンボル文字の場合または"0xhh"の場合、Symbolの字体が表示されます。
シンボル文字以外の全角文字は、FixedSysの字体で表示されます。
colorは、次のいずれかで指定します。
r:g:b |
"reverse" |
widthは文字列描画領域の幅をピクセル数で指定します。
これを省略した場合には、画像データの右端までとなります。
もし描画領域に文字が入りきらない場合には、その文字は描画されません。
spacingは文字間の間隔をピクセル数で指定します。
この形式は、次のようになっています。
[+]n |
alignmentは下記のものを指定します。
0 | … 左寄せ |
1 | … 中央 |
2 | … 右寄せ |
6,1,x,y,string,[font_type],[color],[width],[spacing],[alignment],[fontRotation] |
0 | … 上寄せ |
1 | … 中央 |
2 | … 下寄せ |
fontRotationは下記のものを指定します。
0 | … フォントの回転なし |
1 | … フォントを右に90°回転 |
2 | … フォントを左に90°回転(さらに文字列は逆の並びになります) |
注.文字列を横方向に描画する場合、文字列が描画領域を超える場合には、"..."と表示するのですが、縦に描画する場合にはこの変換は行われません。
7,1,DB=filename,[ID=data_id],[color_pattern],[brightness] |
color_patternはカラーセットの番号の指定で、これを指定した場合、DBデータのカラーセットを置き換えます。
brightnessは描画の明るさの指定で、1以下の値を設定します。
なお、当DBファイル及び他のフラクタル図形のDBファイルは、imgEditというソフトのアーカイブファイル(imgEdit.lzh)に入っています。
描画計算にはかなり時間がかかる場合があり、このことに対処するために、この処理の中断ができるようにしました。 これは、計算時に[Ctrl]+[C]と押下することによってできます。この時以外に行なった場合には、プログラムが終了します。
7,2,DB=filename",[ID=data_id],[color_pattern],[brightness] |
7,3,DB=filename,[ID=data_id],[color_pattern],[brightness] |
7,4,DB=filename,[ID=data_id],[color_pattern],[brightness] |
7,5,DB=filename,[ID=data_id],[color_pattern],[brightness] |
1. | 8,1,0,width[,rate] | |
2. | 8,1,1,width[,rate] |
1は矩形にぼかし、2は角を丸めてぼかします。
widthは枠の幅のレート指定で、これは画像の縦・横の短い方の長さに対するパーセント(小数点可)を指定します。
rateは枠以外の部分で、背景に対する前景の重ね合わせ率(1〜100)の指定です。
これを省略した場合、rateは100となります。
1. | 8,2,0,width[,rate] | |
2. | 8,2,1,width[,rate] |
1は矩形にぼかし、2は角を丸めてぼかします。
widthは枠の幅のレート指定で、これは画像の縦・横の短い方の長さに対するパーセント(小数点可)を指定します。
rateは枠以外の部分で、背景に対する前景の重ね合わせ率(1〜100)の指定です。
これを省略した場合、rateは100となります。
動作環境としては以下となります。
OS Windows95/98/Me/XPなど