picBinarize ver1.02    2026/07/01

■はじめに

  本ソフトは、HSP : Hot Soup Processor ver3.6 / onion software 1997-2021(c) で、
  私(masadaisuke)が作成した二値化画像作成のフリーソフトです。
  処理に時間がかかるところは、Microsoft Visual C++ で作成しました。

  imgctl.dllは、ルーチェ.さんが作った画像操作DLLです。
  （imgctl.dll  Version 1.27  Copyright (C) ルーチェ.）
  8bitのPNGとGIFファイルの作成に使わせていただきました。
  （ありがとうございます）

  単純二値化処理と適応的二値化処理、及びその二つを合成した画像を作成します。

■動作環境

  Windows XP 以降のOS（32ビット(互換)のWindows環境）

■開発環境

  Windows 11 Home  （CPU 1.40 GHz、memory 16.00 GB）
  Hot Soup Processor ver3.6
  Visual Studio 2026

■インストールについて

  インストールは必要ありません。
  管理者権限とかの必要のない好きなところに解凍して
  picBinarize.exeを起動すれば使えます。

■アンインストールについて

  レジストリは触っていません。
  設定は、picBinarize.ini に保存しています。
  なので、フォルダごとゴミ箱に捨てるだけでＯＫです。

■解凍後に出来るファイル

  a2dBinarize.dll    11264 Byte  時間の掛かる二値化処理をしています。
  hspcv.dll        1744896 Byte  Artlet2D(GDI+)で読めない画像の読み込みをしています。
  imgctl.dll        442368 Byte  8bitのPNGとGIFファイルを作成しています。
  picBinarize.exe   518027 Byte  本体です。
  readme.txt         19324 Byte  このファイルです。

■起動後に作成されるファイル

  picBinarize.ini          設定ファイル。削除してもまた作られます。
  picBinarize_temp.tmp     一時ファイル。自動で削除されます。

■メニューの説明

  左から

1.ファイル (F)      ファイルの入出力をします。

  ・開く (O)...

    画像を開いて読み込みます。

  ・保存 (S)...

    名前を付けて画像を保存します。

    ※注意 デフォルト名が開いたファイル名になっているので、元の画像を残したい
           場合は、名前を変更してください。

  ・クリップボードから貼り付け (P)

    クリップボードに画像データがある場合に有効になります。
    選択するとクリップボードから画像を読み込みます。

  ・クリップボードにコピー (C)

    クリップボードに画像をコピーします。
    透明色の指定は無視されて、表面色と背景色の画像がコピーされます。

  ・終了 (X)

    プログラムを終了します。

2.編集 (E)          画像を変更します。

  ・横方向を中心に合わせる (H)

    画像の中心がセンターに来るように、横のオフセットを調整します。
    設定 (S) の 自動サイズ合わせ (S) が、チェックされていると選択できません。

  ・縦方向を中心に合わせる (V)

    画像の中心がセンターに来るように、縦のオフセットを調整します。
    設定 (S) の 自動サイズ合わせ (S) が、チェックされていると選択できません。

  ・横サイズに合わせて拡大縮小 (X)

    現在の画像横サイズに合わせて、拡大縮小倍率を調整します。
    設定 (S) の 自動サイズ合わせ (S) が、チェックされていると選択できません。

  ・縦サイズに合わせて拡大縮小 (Y)

    現在の画像縦サイズに合わせて、拡大縮小倍率を調整します。
    設定 (S) の 自動サイズ合わせ (S) が、チェックされていると選択できません。

  ・拡大縮小倍率に画像サイズを合わせる (Z)

    拡大縮小倍率に合わせて、画像サイズを調整します。
    設定 (S) の 自動サイズ合わせ (S) が、チェックされていると選択できません。

  ・単純二値化処理 (N)

    閾値を元に、単純に二値化処理を行います。

  ・適応的二値化処理 (A)

    ピクセル毎に、周囲のピクセルの平均と比較して二値化処理を行います。

  ・２つの二値化処理を合わせる (M)

    単純二値化処理と適応的二値化処理で作られる画像を合成します。

  ・ネガポジ反転 (I)

    画像をネガポジ反転します。

  ・表面色指定... (F)

    画像の明るい部分に使う色を指定します。

  ・表面色を透明にする (T)

    チェックすると画像の明るい部分を透明にします。

  ・背景色指定... (B)

    画像の暗い部分に使う色を指定します。

  ・背景色を透明にする (U)

    チェックすると画像の暗い部分を透明にします。

3.設定 (S)          プログラムの動作を指定します。

  ・自動作成 (A)

    チェックすると入力欄を変更した時に自動で二値化画像を作成します。
    結果を見ながら閾値などの調整を行えますが、大きな画像の場合、
    処理に時間が掛かってしまいます。

  ・自動サイズ合わせ (S)

    チェックすると画像サイズと拡大縮小倍率が同期します。
    この時、オフセットは常に 0 になります。

    画像の一部分だけを切り出して処理したい場合は、チェックを外してください。

  ・画像を開く時、補正値を初期化 (E)

    チェックすると、画像を開いた時に、明るさ、コントラスト、ガンマ補正の値を
    初期化します。

  ・ImgCtxでJPGを開く (X)

    チェックすると、JPG形式の画像の場合に、ImgCtxで読み込もうとします。
    チェックを外すと、OpenCVで読み込もうとします。

    JPG形式以外の画像の場合は、透過情報の為にGDI+で読み込みます。

  ・表示サイズで保存 (V)

    チェックすると画像を表示しているサイズで保存します。
    拡大表示している時に、保存すると拡大したサイズで保存できます。

  ・マウスホイール逆転 (R)

    チックするとマウスホイールでの増減が逆転します。

  ・枠線を表示 (G)

    チックすると画像の周りに枠線を表示します。

  ・白で初期化 (W)

    チェックすると画像の透明色部分を白にします。
    チェックを外すと画像の透明色部分は黒になります。

    透明色がある画像の場合に意味があります。
    また、トリミングで余白が出来た場合にも意味があります。

  ・保存先を合わせる (M)

    チェックすると保存する時に、画像を開いたフォルダがデフォルトになります。
    チェックを外すと、最後に保存したフォルダがデフォルトになります。

4.右クリックメニュー    メインメニューの項目をいくつか集めたものです。

  ・開く (O)...

    画像を開いて読み込みます。

  ・保存 (S)...

    名前を付けて画像を保存します。

    ※注意 デフォルト名が開いたファイル名になっているので、元の画像を残したい
           場合は、名前を変更してください。

  ・クリップボードから貼り付け (P)

    クリップボードに画像データがある場合に有効になります。
    選択するとクリップボードから画像を読み込みます。

  ・クリップボードにコピー (C)

    クリップボードに画像をコピーします。
    透明色の指定は無視されて、表面色と背景色の画像がコピーされます。

  ・単純二値化処理 (N)

    閾値を元に、単純に二値化処理を行います。

  ・適応的二値化処理 (A)

    ピクセル毎に、周囲のピクセルの平均と比較して二値化処理を行います。

  ・２つの二値化処理を合わせる (M)

    単純二値化処理と適応的二値化処理で作られる画像を合成します。

  ・ネガポジ反転 (I)

    画像をネガポジ反転します。

  ・表面色指定... (F)

    画像の明るい部分に使う色を指定します。

  ・表面色を透明にする (T)

    チェックすると画像の明るい部分を透明にします。

  ・背景色指定... (B)

    画像の暗い部分に使う色を指定します。

  ・背景色を透明にする (U)

    チェックすると画像の暗い部分を透明にします。

  ・終了 (X)

    プログラムを終了します。

■ボタンと入力欄の説明

  左から

  ・[開]

    画像を開くファイル選択ダイアログが表示されます。

  ・[保]

    画像を保存するファイル選択ダイアログが表示されます。

    ※注意 デフォルト名が開いたファイル名になっているので、元の画像を残したい
           場合は、名前を変更してください。

  ・左上座標横

    画像の左上オフセット。

  ・左上座標縦

    画像の左上オフセット。

  ・画像サイズ横

    作成する画像のサイズです。（1～8000 pixel）*1

  ・画像サイズ縦

    作成する画像のサイズです。（1～8000 pixel）*1

  ・拡大縮小倍率

    画像の拡大縮小倍率です。

  ・(単)

    単純二値化処理を行います。

  ・(適)

    適応的二値化処理を行います。

  ・(合)

    単純二値化処理と適応的二値化処理を行い合成します。

  ・単純二値化処理の閾値

    単純二値化処理の閾値を指定します。（0～256）

  ・適応的二値化処理の調整値

    適応的二値化処理で、周囲のピクセルの平均と比較した結果を
    調整する値を指定します。

    値を大きくすると、細かい差を拾わないようになります。

  ・明るさ

    画像の明るさを変更します。（-100～100）

  ・コントラスト

    画像のコントラストを変更します。（-100～300）

  ・ガンマ値補正

    ガンマ値補正を行います。（0.01～9.99）

  ・[作(見)]

    [作]は、二値化画像を作成します。
    [見]は、二値化画像を作成後に元画像と見比べる時に使います。
    （二値化画像の作成前後でボタン表示が変わります）

   二値化画像を表示中は、ボタンが点灯します。（チェック状態）
   元画像を表示中は、ボタンが点灯しません。（未チェック状態）

    [Enter]キーを押してもボタン押下と同じ動作をします。

    自動作成 (A)がチェックされている場合は[見]だけです。

  ・拡大表示

    画像を拡大表示します。（1～16倍で、8000 pixel を越えない倍率まで）*1
    （ぼやけない拡大になります）

  *1 picBinarize.ini の Max pixel size に初期値 8000 で設定してます。

     お使いの環境や状況によって異なると思いますが、あまり大きな画像だと
     Artlet2D(GDI+)で、画像が表示されないなどの不具合が発生します。

     もし、大きな画像が表示されない　又は、画像を保存できない場合は、
     画像サイズを小さくしてみて下さい。

■ステータスバーの説明

  左から

  ・ファイル名

    読み込んだ画像のファイル名

  ・拡縮後のサイズ

    拡大縮小後の画像サイズ

  ・画像サイズ

    読み込んだ元画像のサイズ

  ・色数

    表示画像の色数

■使い方

  1.[開]ボタンを押して、画像を選択するか、ドラッグドロップで
    画像を読み込みます。

    自動作成がチェックされている場合は、すぐに二値化画像が作成されます。

  2.二値化処理の種類を選択します。

  3.単純二値化処理の閾値、適応的二値化処理の調整値を調整します。

  4.必要なら画像サイズ、拡大縮小、明るさ、コントラスト、ガンマ値補正などを
    調整します。

    各入力欄は[TAB]キーで移動できます。
    [SHIFT]キーを押しながら{TAB}キーを押すと逆順に移動します。

    入力欄は、マウスホイールで変更できます。
    この時、[SHIFT]キーまたは[CTRL]キーを押しながらホイールすると
    10倍の値で変更されます。

    入力欄は、入力可能範囲を超えると処理をしないようになっています。

    入力可能範囲外のまま二値化処理を行うと入力可能範囲外の値は
    元に戻されます。

    入力欄の値は、何かボタンを押すと再表示されます。（1 => 1.00）

  5.自動作成がチェックされていない場合は、[作]ボタンを押して二値化画像を
    作成します。

  6.[保]ボタンを押して名前を付けて画像を保存します。

    保存形式は、8bitのPNG、GIF、32bitのTIFF、1bitのBMP形式です。

    メニューの表示サイズで保存(V)にチェックを入れて拡大表示中に保存すると、
    拡大表示のサイズで保存します。

    二値化処理をしていない、又は、二値化画像が表示されていない場合は、
    元の画像が32bitのPNGで保存されます。

■picBinarize.iniについて

[Setup]                     ソフトの状態を保存している

Window pos=365 212          ウインドウの位置

Window size=635 313         ウインドウのサイズ

Face color=255 255 255      明るい部分に使うの色

BG color=0 0 0              暗い部分に使う色

Binarization mode=0         二値化の処理モード

Auto convert=1              自動作成モード

Size fitting=1              自動サイズ合わせ

Adjust initialize=1         画像読み込み時に、明るさ、コントラスト、ガンマ補正の
                            値を初期化します

ImgCtx Precedence=1         JPG形式の画像を読み込む時に、ImgCtxを使います

View size save=0            表示サイズで保存する

Wheel reverse=0             マウスホイール逆転

Borderline enable=1         枠線を表示

BG white=1                  元画像の透明部分を白にする

Same folder=1               保存先のデフォルトを開いたフォルダにする

Max pixel size=8000         最大画像サイズ（pixel）
                            この項目は、プログラムからは変更できません。
                            直に値を変更してください。

Open folder=                最後に読み込んだ画像のフォルダ

Save folder=                最後に保存したフォルダ

[Information]               情報表示用

picBinarize.exe version=1.02  本体のバージョン

a2dBinarize.dll version=1.01  DLLのバージョン
                              バージョンが合わないと起動できません。

■修正履歴

Ver 1.02  2026/07/01

  1.一部のJPG画像で、ImgCtx以外で読み込むと色が褪せてしまうものがあったので、
    ImgCtxを優先して読み込む処理を追加しました。

    今までJPG画像は、OpenCVで読む、読めなければ、ImgCtxで読む、読めなければ
    Artlet2D（GDI+）で読む、読めなければ諦めるとなっていました。

    JPG形式以外の画像は、透過情報が失われないように GDI+で読み込んでいます。

  ※そもそも、JPG形式の画像を GDI+以外で読み込もうとするのは、GDI+で読み込むより
    綺麗だからです。（個人的見解）
    アイコンもGDI+では、綺麗に読み込めないので自前で読み込んでいます。
    （アイコンは、一番大きくてビット深度の大きなものを読み込んでいます）

    OpenCVをImgCtxより優先しているのも（ほとんど差はないが）同じ理由です。

  2.画像の読み込みに失敗したときに、Beep音を鳴らすようにしました。

  3.画像読み込み時に、明るさ、コントラスト、ガンマ補正の値を初期化／維持
    するフラグをメニューの設定に追加しました。

Ver 1.01  2026/06/24

  1.大きな画像のロード方法を変更。

    Artlet2D(GDI+)では、大きな画像が読み込めないことがあり、Max pixel size
    以下に縮小することも出来ない場合がありました。

    Max pixel sizeよい大きな画像の場合、Artlet2D(GDI+)を使わずに画像を
    読み込んで、Max pixel size以下に縮小後、Artlet2D(GDI+)にコピーする
    ように変更しました。

    これにより、透過色のある大きな画像の場合、透過色情報が失われますが、
    大きな画像も開けるようになります。

    しかし、Max pixel size(=8000)自体が絶対に表示できる大きさとは言えないので、
    もし、表示できない場合は、一旦プログラムを終了してから、初期設定ファイル
    (picBinarize.ini)をメモ帳などで開いて、Max pixel size=8000を小さくして
    みてください。

  2.色数の表示を追加しました。

    二値化処理なので、２色だからいらないでしょと思ってましたが、
    元画像の色数を表示しようかなと思い追加しました。

  （a2dBinarize.dll の version=1.01）

  3.開発環境を、Visual Studio 2022から、Visual Studio 2026にしました。

Ver 1.00  2026/06/21

  1.pic2tone Version 1.12 から作成。

    二値化処理の部分を全部 C++ で再作成しました。
    だいぶ変更したので混乱をさけるため新しく作成し直しました。

  （a2dBinarize.dll の version=1.00）

■著作権について

  本ソフトウェアはフリーソフトですが、picBinarize の著作権は
  作者である私(masadaisuke)にあります。

■免責事項について

  本ソフトウェアを使用したことによって生じた全ての損害について、
  一切の責任を負いません。
  各自の責任においてご使用ください。

■連絡先

  バグ報告などのメールアドレス。

  masadaisuke36@gmail.com
