
================================================================================================
■EnergyDrain | エナジードレイン

画像連続減色ツール
================================================================================================

-------------------------------------------------------
■このソフトウェアについて
-------------------------------------------------------
画像を減色するツールです。

アニメーション用の素材データを画像変換する事を考慮して開発しているため、
ツールにドラッグ＆ドロップした複数の画像を一括変換する事が出来ます。

-------------------------------------------------------
■ファイル構成
-------------------------------------------------------
  EnergyDrain.exe  プログラム本体
  EnergyDrain.txt  本ドキュメント
  libwebp_x64.dll  WEBP形式の画像を取り込み/表示するためのライブラリ

-------------------------------------------------------
■基本操作
-------------------------------------------------------
BMP/ICO/JPEG/PNG/GIF/TIFF/WEBPといった画像ファイルをファイル一覧の場所にドラッグ＆ドロップします。
各種パラメータを設定したのち、実行ボタンを押下すると連続して減色処理を実行します。
減色した結果はクリップボードにコピー、あるいはBMPまたはPNG形式で保存する事が出来ます。

-------------------------------------------------------
■注意点
-------------------------------------------------------
通常の減色ツールでは、減色処理後もできるだけ元画像に近い画像になるよう作られていますが、
このツールはどちらかというと、少ない色数で多色を表現した8bit/16bitパソコン時代の
タイリング画像的な美しさを目標にしています。
そのため、元画像と遜色のない減色画像が欲しい場合には不向きなツールかもしれません。

またこのツールは、作者が自分用に作っているインハウスツールなので、
実験的なアルゴリズムを実装していたり、ソースコードがスパゲッティのように絡まった俺様仕様です。
バージョンが変わると内部パラメータやアルゴリズムが大幅に変更される事もあるため、
変換結果の精度は必ずしも最新版が最善とは限りません。

-------------------------------------------------------
■ツールの名前の由来
-------------------------------------------------------
――エナジードレイン

別名、レベルドレイン。
ロールプレイングゲームにおいて、おもに高位のアンデッドモンスターが
使用する強制レベルダウン攻撃。

この攻撃がヒットするとキャラクターのレベルが強制的に下がるので、
時としてプレイヤーの心も折る無慈悲な特殊攻撃。

レベルダウンと減色処理、どちらも減算するものなのでこの名前にしました。

-------------------------------------------------------
■余談
-------------------------------------------------------
PCの画面表示が高解像度フルカラーなのが当たり前のご時勢ですが、
8bit/16bitパソコンが一般的な頃には、一部の環境を除いて少ない色数をタイリングペイント
する事で多色を表現していました。
そして数多くの神がかり的な作品が作られていました。

そういったCGの過渡期は今後二度と訪れるものではありませんが、
この時代の手法で描かれた絵には一種独特の美しさがあるとともに、
そういった手法の絵が廃れていくのは一抹の寂しさを覚えます。

フルカラー画像に対するひとつのアンチテーゼとして、
CGの過渡期に培われた技巧的なタイリングペイントの手法が今後も使われ続ける事を願うとともに、
その手段としてこのツールが使用されればうれしく思います。

-------------------------------------------------------
■ライセンス
-------------------------------------------------------
・ツールの著作権は原作者に帰属しています。

・ユーザーに害をなす悪意ある改変を禁じます。

・このツールを使用して変換した画像の著作権については、変換前の画像の著作権者に準ずるものとします。

・個人、法人問わずツールの商用利用が可能です。

・義務ではありませんが、このツールを使って制作した作品のスタッフロールやクレジットといったものに
　作者名やウェブサイトの記載を頂けるとうれしく思います。


-------------------------------------------------------
■連絡先
-------------------------------------------------------
作者：           リリノ
ウェブサイト：   魔 法 想 庫 | https://magicware.jp/


-------------------------------------------------------
■使用ライブラリ
-------------------------------------------------------
----------------------
libwebp.dll
Copyright (c) 2010 Google LLC
https://developers.google.com/speed/webp/
Released under the BSD license.
https://opensource.org/licenses/BSD-3-Clause

----------------------
libwebp_x64.dll , libwebp_x86.dll
Copyright (c) 2020 Jose M. Piñeiro
https://github.com/JosePineiro/WebP-wrapper
Released under the MIT license.
https://opensource.org/licenses/MIT
----------------------


-------------------------------------------------------
■履歴
-------------------------------------------------------
2025/10/12		0.1.2.2		画像を縦横2倍に拡大して出力するオプションを追加
					16x16ディザ法の画像変換処理のパラメータ調整、内部処理の追加

2025/09/06		0.1.2.1		16x16ディザ法の画像変換処理のパラメータ調整
					ガンマ補正、アルファ抜き、白色閾値設定の対応

2025/08/05		0.1.2.0		16x16ディザ法による8/16/24/32/40/48色の画像変換処理を実装
					画像変換中にタブ変更が効かないよう修正

2024/05/20		0.1.1.5		WebP形式の画像読み込みに対応
					最新版のlibWebpライブラリをビルドして同梱
					PC-8801モード,8色時の画像出力パラメータ調整
2024/05/12		0.1.1.4		ディザ法8色ディザパターン2のパターン変更
					ディザ法8色ハイブリッドモード使用時、ディザパターン同士の境界部の描写処理を変更
					デフォルトの最大色数を8色に変更
					ウェブサイトのhttps化に伴いリンクを修正
					開発環境をVisual Studio 2022 (.Net Framework 4.8.1)に変更

2022/10/16		0.1.1.3		画像のファイル出力時に0埋め桁数を指定できるように機能追加
					画像ファイルリスト上でDELキーを押下した時に、行表示が崩れるプロパティ設定を修正

2020/05/10		0.1.1.2a	8色ディザ法ハイブリッドモード時の境界値判定処理の変更

2020/04/05		0.1.1.2		ディザ法の画像変換を行った後、画像ファイルの解像度を間違った値で表示してしまう不具合をFix。

2020/03/15		0.1.1.1		8色ディザ法/ディザパターン1にて、暗部の階調を増やした。
					8色ディザ法/ディザパターン1/PC-8801アスペクト比1:2モードON/インターレースON モードにて、暗部の階調を増やした。
					8色ディザ法/ディザパターン1/PC-8801アスペクト比1:2モードON/インターレースOFFモードにて、暗部の階調を増やした。
					8色ディザ法/ディザパターン1/PC-8801アスペクト比1:2モードON/インターレースOFFモード時の白色の再現性を改善。

2020/02/24		0.1.1.0		Ver 0.1.0.9で発生していた、誤差拡散法/PC-88モードOFF時の画像ファイル出力が画像処理中のものに
					なってしまうバグをFix。(THANKS: ewifanさん)

2020/02/23		0.1.0.9		誤差拡散法において、左端および上端にL字型の拡散漏れが発生するアルゴリズム上の問題点を改善。
					表示上の軽微なバグを修正。

2020/02/02		0.1.0.8		8色ディザ法/PC-8801アスペクト比1:2モードにて暗部の階調を1段階増やした。

2020/01/26		0.1.0.7		8色ディザ法ディザパターン2にて暗部の階調を1段階増やした。
					8色ディザ法ディザパターン2の微調整

2020/01/03		0.1.0.6		Ver 0.1.0.5の機能変更について、旧来の処理と選択できるようにした。

2019/11/17		0.1.0.5		16色モード以外の誤差拡散法にて、キャンバスの初期設定を仕様変更。RGBの拡散初期値がそれぞれ別の値で散るようにした。
					※利点：モノトーン背景＋カラーのキャラクターの画像の場合でも、途中から背景の誤差拡散に変化が生じず、均一になる。
					※副作用:モノクロ画像を誤差拡散した場合でも、黒、灰、白以外の色が出現する。
					一般公開の初版

2019/10/17		0.1.0.4		ディザ法/PC-8801アスペクトON/64色～512色の時の処理を分岐

2019/09/07		0.1.0.3		PC-8801アスペクト比モード/インターレースON時の走査線濃度をGUIで調整可能にした

2019/08/24		0.1.0.2		アイコンを32x32,48x48の2パターンに差し替え
					
2019/07/07		0.1.0.1		ディザ法8色/PC-8801アスペクト比モード/インターレースON時の走査線表示調整
					ディザ法8色のパラメータ調整
2019/05/12		0.1.0.0		ディザ法16色,27色モード時のパラメータ調整
					解像度の低い画像をディザ法で変換した時に、変換進捗率が100%にならない不具合を修正

2019/03/17		0.0.9.9		画像ファイルの保存先を指定する際、前回指定したパスが規定値になっているように修正

2019/02/04		0.0.9.8		ディザ法27色,8色,8色(PC-8801モード時)のディザパターン処理変更
					ドメイン名変更対応
					画像変換処理のループ時に出力結果が段々暗くなる不具合を修正
					パターンディザ変換時の例外エラー対策
2018/12/22		0.0.9.7		PC-8801モード時にインターレース走査線を描写するか選択するオプションを追加

2018/09/02		0.0.9.6		誤差拡散法16色,27色モード時の画質改善
					組織的ディザ法/8色/PC-8801アスペクト1:2モード時の画質改善
					画像ファイル無登録時にファイルのドラッグを促すメッセージを表示するように機能追加
					画像ファイルのショートカットをドロップした場合、リンク先の画像ファイルを取り込むよう機能追加
					誤差拡散法時の拡散配列の数値を微調整
					16色モード以外でも白色(RGB(255,255,255))オプションを有効にするよう機能追加

2018/07/07		0.0.9.5		濃度補正機能(実質ガンマ補正)にて1単位ではなく、0.1単位に補正が効くように修正。
					(trackBarがInt32固定なので内部で小数点変換しているのですが、キャストする前の
					「/10」と「*0.1」とでは計算結果が違うのですね。。。)
					それに伴い濃度補正の実装ルーチンを改訂し、画質を改善
					27色以上の誤差拡散法にて灰色条件を減らす処理を追加
					アプリケーション名のタイトルに32bit/64bit識別子を表示するよう機能追加

2018/06/16		0.0.9.4		ソースファイル分割
					処理にかかった時間を表示する機能を実装
					16色ディザ法の上位8色と下位8色のグラデーション表現を改善
					8色ディザ法のディザパターン調整
					8色ディザ法のPC-8801モードでのディザパターン調整

2018/05/20		0.0.9.3		8色ディザ法のアルゴリズム改善(元の色の値によってディザパターンを切り替えて使用)
					それに伴い、8色ディザ法選択時のパターン選択機能を抑止
					64色以上のディザ法でもディザパターンを切り替えて使用するように変更、内部ガンマ値調整
					マルチスレッド例外エラー対策
					アプリケーションの32bit/64bit表示機能追加
					GUIのデザインを変更 (サポート外となるモニタ環境用にウィンドウサイズ可変機能を搭載)
					ファイル一覧の各列の横幅の合計値がビュー自体の横幅より狭い場合、[場所]の横幅を延ばす処理を実装

2018/02/27		0.0.9.2		誤差拡散法27色,64色モードのパレット調整
					変数宣言の修正(宣言と値の代入の分離)
					誤差拡散法/ディザ法 16色モード時の白色のRGB値を(255,255,255)固定にするオプション機能を追加
					変換処理のループ機能を追加(店頭デモ向け:-P) / 変換元の画像ファイルの格納場所はRAMドライブを推奨
					ファイル名取得の途中中断機能を追加
					27色モード以上の時、色変換テーブルの値をRGBに割り当てる際、それぞれ異なる値になるように調整。
					誤差拡散法 8色時と16色時の画質アルゴリズムのデフォルト値を揃える調整。

2018/01/31		0.0.9.1		64bit版としてリコンパイル
					誤差拡散法モードでの4k2k以上の画像変換を仮実装 (64bit版/12k7kで動作確認テスト)
					誤差拡散法8色時のパラメータ調整、画質改善
					拡張機能2タブを追加。誤差拡散法8色/16色時のパラメータ調整機能を追加
					濃度補正の数値ジャンプの閾値を0.5単位に変更

2017/05/14		0.0.9.0		16色パターンディザ法の新アルゴリズムルーチンを実装、旧来のアルゴリズムと選択出来るようにした
					PC-8801モード出力 時のディザリングパターンを見直し、3つのパターンから選択出来るようにした
					ディザ法にて、灰色の閾値超過がそれほど高くない場合、黒色にする処理を追加。チェックボタンで選択出来るようにした
					機能が増えたため、画面をタブ化
					アルファ値が255以下の画像をPC-8801アスペクト1:2モードで処理した際に、画像のゴミが発生する不具合をFix

2017/03/11		0.0.8.9		アルファ値を常に255として出力するオプションを追加
					ガンマ補正スライドバーによる影響度の調整(特にパターンディザ法)
					パターンディザ法16色時のパラメータを調整
2016/11/12		0.0.8.8		誤差拡散法にて、最初にキャンバス上に蒔いておく誤差の初期値アルゴリズムを変更し、
					数値再現性のあるランダム値を配列に格納するようにした
					誤差拡散法の変換時の処理を(int)によるキャストからConvert.ToInt32()に変更。
2016/11/05		0.0.8.7a	画像変換中にプルダウンメニューから画像のクリップボードコピーや、
					設定値の初期化が可能だったのを抑止
2016/11/03		0.0.8.7		PC-8801アスペクト出力機能を作り直し
					減色後に奇数列ピクセルを立て伸ばしていたのを、先に画像を1/2に圧縮して
					変換してから縦方向2倍に伸長するようにした

2016/10/23		0.0.8.6		PC-8801ライクな、ドットアスペクト比1:2モード(縦長)の画像出力をサポート

2015/11/21		0.0.8.5		ファイルメニュー＞編集：「変換後の画像をクリップボードにコピーする機能」を実装
					ファイルメニュー＞設定：「変換パラメータをデフォルト値に戻す機能」を実装
					自サイトのドメイン名変更に対応
2015/08/23		0.0.8.4		画像表示をクリアするボタンを新設
2015/07/15		0.0.8.3		画像ファイル出力時のファイル名ヘッダをユーザ設定出来るように機能追加
2015/07/12		0.0.8.2		アプリケーションを複数起動し、同時に変換処理を行っている時に、クリップボードへの
					ペースト処理で例外が発生して、アプリケーションが停止する場合があるのを改善
					画像ファイルの登録時や変換時にアプリケーションを終了した場合の例外処理を追加
					バージョン情報ダイアログに国旗アイコンを追加
2015/05/10		0.0.8.1		GUIのコンパクト化、ガンマ補正値が0の時に「±」の表記を追加
					パターンディザ法使用時のスレッドスリープによる速度低下現象を解消
2015/04/19		0.0.8.0		誤差拡散マトリクスパターンの調整、16色モード時のノイズ要素の使用停止
					誤差拡散マトリクスの精度の細分化(1.0単位→0.5単位)
					ガンマ値補正機能追加
					画像変換時のスレッドの処理方法を変更
					スレッド内の画像変換処理とスレッドスリープの衝突によって速度が低下する現象を解消
					誤差拡散法のメソッド呼び出し時の、画像のメモリデータの受け渡し処理を変更
					GUIデザインの変更
2015/01/12		0.0.7.4		ファイル一覧の取り込み処理を別スレッド化
2015/01/11		0.0.7.3		複数のフォルダを一緒にドロップした時にファイルを読み込めない場合があるロジックを修正
2015/01/10		0.0.7.2		誤差拡散処理中にウィンドウを画面外から戻した時、プレビュー画面がデッドロックするのを解消
2014/12/31		0.0.7.1		UIデザインを変更
					画像変換中の操作抑止/変換終了後の抑止解除機能を追加
					途中中断した時に作業中の画像に書き換わるのを抑止
					処理の開始/終了時間を表示するようにした
					全てクリアボタン押下時に画像変換ステータスを初期化するようにした
2014/12/30		0.0.7.0		誤差拡散法16色モードの時にランダム要素を使用するのをやめた
					誤差拡散法16色モードの時の分散方法を他のモードに準拠させた
2014/12/27		0.0.6.1		画像保存機能仮組み→本実装
					クリップボードコピーのON/OFF選択肢を追加
					画像変換の途中中止機能を追加
2014/12/26		0.0.6.0		画像移動時に画面上に斜線が走る事がある現象を修正
2014/12/24		0.0.5.0		画面上に斜線が走る事がある現象を修正
2014/12/21		0.0.4.3		処理進捗度を示すプログレスバーを実装
					画像解像度(x,y)取得タイミング変更
2014/12/20		0.0.4.2		白色に乗せるノイズの出現偏りを改善
2014/12/14		0.0.4.1		誤差拡散パラメータ配列化
2014/12/06		0.0.4.0		誤差拡散法新エンジン実装(2^3～8^3色)
2014/11/30		0.0.3.0		ディザ法新エンジン実装(2^3～8^3色)
----/--/--		0.0.2.1		パラメータ調整、画像保存機能実装、クリップボード機能実装
----/--/--		0.0.2.0		8色/16色ディザ法実装
----/--/--		0.0.1.1		パラメータ調整
----/--/--		0.0.1.0		8色/16色誤差拡散法実装
----/--/--		0.0.0.0		インターフェイス実装/画像ファイル取り込み機能実装
2012/11/17		0.0.0.0		開発開始



//