================================================================
Imagine - 画像最適化アプリ v0.1.0
================================================================

画像ファイル(JPG/PNG/GIF/WebP)をドラッグ&ドロップで一気に上書き圧縮するWindows用ローカルアプリです。
インストール不要・登録不要・通信不要(全処理ローカル完結)。

  公式ページ : https://webliss.info/free-apps/imagine/
  作成者     : 株式会社WEBLISS
  ライセンス : 個人利用は無料 / 商用利用は別途有償(要お問い合わせ)
               詳しくは同梱の LICENSE.txt をご覧ください


─────────────────────────────────────────
■ 使い方
─────────────────────────────────────────

【1】Imagine.exe をダブルクリックで起動
【2】画像ファイルまたはフォルダをウィンドウにドラッグ&ドロップ
   (「ファイルを選択」「フォルダを選択」ボタンからでも可)
【3】クオリティを選択
       Very High … 完全可逆+メタ削除のみ (LP納品・大事な写真向け)
       High      … 見分け不可レベル (Web納品・自分で書き出した高品質ソース向き)
       Mid       … 注視で差 (iPhone写真・SNS・ブログに推奨)
       Low       … 明らかに差 (サムネ・LINE・容量優先)
       カスタム  … %値で自由指定
【4】「圧縮開始」ボタンをクリック

→ 元ファイルが直接置き換わります。
   元保存したい場合は詳細オプション「_backup/ にコピー作成」をON、
   または事前にフォルダごとバックアップを取ってください。


─────────────────────────────────────────
■ 主な機能
─────────────────────────────────────────

  ・JPG / PNG / GIF / WebP 対応
  ・上書き圧縮(元の場所に保存)
  ・数千〜数万ファイルの一気処理
  ・CPU使用率調整(30% / 50% / 80% / 95% プリセット)
  ・処理対象フォーマット選択(GIFだけ / PNGだけ等)
  ・メタデータ制御
      - 全て保持
      - GPS/カメラ機種削除(推奨)
      - 撮影日時だけ保持
      - 全削除
  ・ファイル日時保持(作成日時・更新日時を維持)
  ・サブフォルダ再帰処理
  ・サイズ上限スキップ(巨大ファイル除外)
  ・一時停止 / 再開 / 中止
  ・圧縮で逆に大きくなるファイルは元保持(無駄な劣化を防止)
  ・偽装拡張子(.jpg中身PNG等)を自動判定して救済
  ・JPGロスレス再Huffman圧縮(Very High時・画素1bitも変えず36%削減)


─────────────────────────────────────────
■ 動作環境
─────────────────────────────────────────

  ・Windows 10 / 11 (64bit)
  ・Microsoft Edge WebView2 ランタイム
    (Windows 10/11 には標準搭載・不在時は自動インストール)


─────────────────────────────────────────
■ 高度な使い方
─────────────────────────────────────────

【大ファイル本気圧縮】
  10MB超のPNG等を時間かけてでもしっかり圧縮したい場合は、
  詳細オプションを開いて「タイムアウト」のチェックを外してください。
  処理時間は伸びますが、削減効果は最大化されます。
  並列処理は続くので、壁時計時間は意外と短くなることが多いです。

【Defenderリアルタイムスキャン対策】
  処理が遅いと感じる場合、Windows Defenderのリアルタイム保護を
  Imagineに対して除外設定するとパフォーマンスが改善します。
  管理者権限のPowerShellで以下を実行:

  Add-MpPreference -ExclusionProcess "imagine.exe"

  解除する場合:
  Remove-MpPreference -ExclusionProcess "imagine.exe"

【メンテナンスモード】Ctrl+Shift+M でON/OFF
  圧縮処理の診断ログ(CSV・サマリ・CPU推移)を出力します。
  動作が不安定な時の問題切り分け用。
  出力先: %APPDATA%\Imagine\

─────────────────────────────────────────
■ コマンドライン(CLI) - 上級者向け
─────────────────────────────────────────

Imagineはコマンドライン引数を受け取れます。バッチファイル・タスクスケジューラ・
PowerShellスクリプト・他ツールとのパイプラインから自動実行できます。

【基本構文】
  imagine.exe [入力] [オプション]

  入力は ファイル または フォルダ を 1個以上 指定。空白を含むパスは ""で囲む。
  進捗ログは標準エラー出力(stderr)へ。標準出力(stdout)は使わないので
  他コマンドへのリダイレクトと衝突しません。

【オプション一覧】

  短  長                        既定値          意味
  ──  ────────────────────────  ──────────────  ───────────────────────────
  -q  --quality                  high            very-high / high / mid / low / 10-100の数値
  -f  --format                   original        original / jpg / png / webp (出力形式)
  -m  --metadata                 strip-gps-camera  keep-all / strip-gps-camera / keep-date / strip-all
  -r  --recursive                OFF             ディレクトリのサブフォルダも処理
  -b  --backup                   OFF             _backup/ に原本コピーを残す
      --no-preserve-creation     OFF             作成日時を維持しない
      --no-preserve-modified     OFF             更新日時を維持しない
      --skip                     なし            除外形式(jpeg/png/gif/webp、カンマ区切り)
      --threads                  0(自動)         並列スレッド数。0=cpu-percent優先
      --cpu-percent              80              CPU使用率(10-100、threads=0時に有効)
      --max-size-mb              0(無制限)       このMB以上のファイルはスキップ
      --per-file-timeout-sec     60              1ファイル処理タイムアウト秒。0=無効(大ファイル本気圧縮)

  --help または -h でヘルプ表示。--version でバージョン表示。

【基本的な使用例】

  # iPhoneの写真フォルダをMidで一括圧縮(サブフォルダ含む)
  imagine.exe "C:\Users\WEBLISS\Pictures\iPhone" --quality mid --recursive

  # GIFアニメだけ処理(JPEG/PNG/WebPは触らない)
  imagine.exe "D:\Asset" --skip jpeg,png,webp --recursive

  # サムネ用にLow品質+メタ全削除+CPU40%(他作業しながら)
  imagine.exe "D:\thumb" --quality low --metadata strip-all --cpu-percent 40 -r

  # 大きいPNG(10MB超)をしっかり圧縮(タイムアウトOFF=待つ覚悟)
  imagine.exe "D:\posters" --quality high --per-file-timeout-sec 0 -r

  # 完全可逆+メタ削除のみ(LP納品用)
  imagine.exe "D:\delivery" --quality very-high --recursive

【他ツールとの組み合わせ例】

  ─ PowerShellで複数フォルダを順番に処理 ─
    Get-ChildItem "D:\Sites" -Directory | ForEach-Object {
        & "C:\Tools\imagine.exe" $_.FullName --quality mid --recursive
    }

  ─ findで条件指定したフォルダを圧縮(MSYS/Git Bash) ─
    find /d/Sites -type d -name "images" -exec imagine.exe {} -q mid -r \;

  ─ FTPアップロード前の前処理 ─
    imagine.exe "D:\upload-staging" --quality high -r ^
        && Deploy-FTP.ps1 -Source "D:\upload-staging"

  ─ Windowsタスクスケジューラ(夜間バッチ) ─
    プログラム: C:\Tools\imagine.exe
    引数:       "D:\Photos" --quality mid --recursive --metadata strip-gps-camera
    実行時刻:   毎日 03:00
    → 寝てる間にiPhone写真の自動最適化が完了

  ─ バッチファイル(.bat)で複数指示を順次実行 ─
    @echo off
    imagine.exe "D:\Client-A\images" -q high -r
    imagine.exe "D:\Client-B\images" -q mid -r
    imagine.exe "D:\Personal\photos" -q very-high -r

【終了コード】

  0 = 正常終了(対象0件で何もせず終了も0)
  非0 = 異常終了(引数エラー・致命的例外など)

  個別ファイルのエラー(decode失敗・タイムアウト等)はerrorとしてstderrに記録
  されますが、バッチ全体は継続して 0 で終わります。1件のエラーで全体停止しません。

【進捗ログの形式】

  [Imagine] 処理対象 1234 ファイル
  [Imagine] 収集中... 567 ファイル走査
  [Imagine] 開始: 1234 ファイル (6並列・サイズ降順)
    ...処理中 (大): D:\photo\IMG_0001.JPG (12 MB)
    [1/1234] OK D:\photo\IMG_0001.JPG (12500000→8200000 bytes, -4300000 bytes)
    [2/1234] OK D:\photo\IMG_0002.JPG (8400000→6100000 bytes, -2300000 bytes)
    ...
  [Imagine] 完了: 成功1200 / 失敗3 / 元保持31 / 合計1234 / 32.5% 削減 (... bytes) / 47230 ms

  ※ 全てstderr出力。stdoutへgrepしたい時は 2>&1 でマージしてください。


─────────────────────────────────────────
■ ご利用にあたって
─────────────────────────────────────────

  ・本アプリケーションは株式会社WEBLISSが提供するソフトウェアです。
    個人での私的利用に限り無料でご利用いただけます。
    商用利用(事業活動・法人での業務利用・収益発生する活動・
    受託業務等)には別途有償ライセンスの取得が必要です。
    商用利用をご希望の方は公式ページよりお問い合わせください。

  ・本アプリケーションの著作権は株式会社WEBLISSに帰属します。
    以下の行為を固く禁止します:
       - 無断での改変
       - リバースエンジニアリング・逆コンパイル・逆アセンブル
       - 本アプリケーションの解析・内部仕様の調査
       - 二次配布(再配布)
       - 本アプリケーションを組み込んだ別製品の作成・販売

  ・本アプリケーションをご紹介いただく際は、
    公式ページ(https://webliss.info/free-apps/imagine/)へのリンクを
    お願いいたします。実行ファイルへの直接リンク・直接配布は
    お断りしております。

  ・上書き圧縮型のため、元ファイルが置き換わります。
    重要なファイルは事前にバックアップを取った上でご利用ください。

  ・本アプリケーションの使用により生じたいかなる損害についても、
    株式会社WEBLISSは一切の責任を負いません。

  ・本アプリケーションは無償で提供しており、サポート義務は負いません。


─────────────────────────────────────────
■ 不具合・ご要望
─────────────────────────────────────────

  https://webliss.info/contact.html

  「こんな機能が欲しい」「こんな不具合が出た」など、
  お気軽にお問い合わせください。


─────────────────────────────────────────

  (C) 株式会社WEBLISS  https://webliss.info/
