Repository navigation
Releases: okaz-code/HDRScopeWin
Release list
HDRScope for Windows 1.0.3
ウィンドウをリサイズすると、下部の測定値表示や「1:1」ボタンの文字が消える、あるいは古い文字列と新しい文字列が重なって描画される不具合を直しました。最小化して戻すと直っていた症状です。
レイアウト時の SetWindowPos に SWP_NOCOPYBITS がなかったためです。これがないとWindowsはコントロールを移動するときに既存のピクセルをコピーし、コピーで埋まらなかった部分しか無効化しないため、移動したコントロールが古い位置の文字を持ったままになります。最小化からの復帰では全子ウィンドウが再描画されるので、直ったように見えていました。
連続リサイズ30回でも再現しないことを確認しています。
これまでの変更
- 1.0.2 バージョン情報をCMakeに一元化。Aboutダイアログにバージョンを表示
- 1.0.1 アプリアイコンを追加(macOS版と同じ図案。余白のみWindows向けに9%→4%)
使い方
HDRScope.exe を落として実行するだけです。インストール不要、DLLの同梱も、Visual C++ 再頒布可能パッケージも要りません。画面収録の許可設定も不要です。
コード署名をしていないため、Microsoft Defender SmartScreen に止められます。「詳細情報」→「実行」で起動できます。気になる場合はソースからビルドしてください(build.cmd --test)。
できること
- ウィンドウをHDRのままキャプチャして、拡張リニアsRGB(Rec.709原色・D65、1.0 = SDR基準白)でRGBを測る
- 1超えも負値もクリップしない。縮小表示時は面積加重平均、拡大時は最近傍
- 測定用の32bit float TIFF(macOS版とバイト構成互換)と、表示用のHDR JPEG XR(Windowsフォトが HDR 表示する)で保存
- TIFF / JPEG XR / HEIC / HEIF / PNG / JPEG を開いて同じ条件で測定
- 表示上限を読み取るテストパターン2種(固定の×30と、ディスプレイのヘッドルームに合わせて刻みを決めるもの)
--diagnoseで環境確認、--inspectでファイルの測定、どちらもGUIなしで使えます
Windowsでの値の扱い
WindowsのコンポジタはscRGBで合成します。scRGBは1.0 = 80 nit固定で、SDR白はそこにありません(「SDRコンテンツの明るさ」が決めるSDR白レベルの位置に来ます)。実測でも純白のSDRウィンドウはscRGB 3.000000で返りました(SDR白240 nitの環境)。
macOS版と同じ意味の数値にするため、キャプチャ値をSDR白レベル÷80で割ってから保持します。使った係数はキャプチャのたびにステータス行に出ます。詳細はREADMEの「scRGBとSDR基準白」を参照してください。
動作要件
Windows 11(Windows.Graphics.Capture が使えること)。HDR表示の確認にはHDR対応ディスプレイが必要ですが、測定・保存・読み込み自体はSDR環境でも動きます。
検証
自己テスト276アサーション、およびmacOS版と同一の Tests/verify_tiff.py による独立検証を通しています。macOS版が書いたfloat TIFFとPQ HEICを読み、階調が0.3〜1.1%以内で一致することも実機で確認済みです。詳細はREADMEの「検証記録」を参照してください。
HDRScope for Windows 1.0.2
実行ファイルのバージョン情報を修正しました。動作の変更はありません。v1.0.1 のバイナリは、リリースのタグが v1.0.1 なのにファイルのプロパティが 1.0.0.0 のままでした(リソースに直書きした値を上げ忘れていたため)。
バージョンの記述をCMakeLists.txtの1行に一元化し、リソースブロックもAboutダイアログもそこから読むようにしたので、同じずれ方はしなくなります。Aboutダイアログにバージョンを表示するようにもしました。
v1.0.1 での変更(アプリアイコン)
図案はmacOS版と同じです。暗い角丸背景(連続曲率に近い超楕円)に加算合成したR/G/Bのにじみ、その上に白い測定用レティクル。中央のセルはアプリ内の測定枠と同じ「黒の太線+白の細線」で描いています。64px未満では細い線が消えるため、リングだけの簡略版になります。macOS版との違いは余白だけで、全アプリ共通のグリッドという慣習がWindowsにはないため9%から4%に詰めています。
画像素材にも外部ツールにも依存せず、tools\make-icon.cmd が計算だけで16 / 20 / 24 / 32 / 40 / 48 / 64 / 128 / 256 px を描いて .ico を作ります。
ファイルのバージョン情報(VERSIONINFO)も入れたので、プロパティに製品名とバージョンが出るようになりました。
以下はv1.0.0から変わっていません。
使い方
HDRScope.exe を落として実行するだけです。インストール不要、DLLの同梱も、Visual C++ 再頒布可能パッケージも要りません。画面収録の許可設定も不要です。
コード署名をしていないため、Microsoft Defender SmartScreen に止められます。「詳細情報」→「実行」で起動できます。気になる場合はソースからビルドしてください(build.cmd --test)。
できること
- ウィンドウをHDRのままキャプチャして、拡張リニアsRGB(Rec.709原色・D65、1.0 = SDR基準白)でRGBを測る
- 1超えも負値もクリップしない。縮小表示時は面積加重平均、拡大時は最近傍
- 測定用の32bit float TIFF(macOS版とバイト構成互換)と、表示用のHDR JPEG XR(Windowsフォトが HDR 表示する)で保存
- TIFF / JPEG XR / HEIC / HEIF / PNG / JPEG を開いて同じ条件で測定
- 表示上限を読み取るテストパターン2種(固定の×30と、ディスプレイのヘッドルームに合わせて刻みを決めるもの)
--diagnoseで環境確認、--inspectでファイルの測定、どちらもGUIなしで使えます
Windowsでの値の扱い
WindowsのコンポジタはscRGBで合成します。scRGBは1.0 = 80 nit固定で、SDR白はそこにありません(「SDRコンテンツの明るさ」が決めるSDR白レベルの位置に来ます)。実測でも純白のSDRウィンドウはscRGB 3.000000で返りました(SDR白240 nitの環境)。
macOS版と同じ意味の数値にするため、キャプチャ値をSDR白レベル÷80で割ってから保持します。使った係数はキャプチャのたびにステータス行に出ます。詳細はREADMEの「scRGBとSDR基準白」を参照してください。
動作要件
Windows 11(Windows.Graphics.Capture が使えること)。HDR表示の確認にはHDR対応ディスプレイが必要ですが、測定・保存・読み込み自体はSDR環境でも動きます。
検証
自己テスト276アサーション、およびmacOS版と同一の Tests/verify_tiff.py による独立検証を通しています。macOS版が書いたfloat TIFFとPQ HEICを読み、階調が0.3〜1.1%以内で一致することも実機で確認済みです。詳細はREADMEの「検証記録」を参照してください。
HDRScope for Windows 1.0.1
アプリアイコンを追加しました。機能の変更はありません。v1.0.0 はアイコンが移植されておらず、Windows標準のアプリアイコンのままでした。
図案はmacOS版と同じです。暗い角丸背景(連続曲率に近い超楕円)に加算合成したR/G/Bのにじみ、その上に白い測定用レティクル。中央のセルはアプリ内の測定枠と同じ「黒の太線+白の細線」で描いています。64px未満では細い線が消えるため、リングだけの簡略版になります。macOS版との違いは余白だけで、全アプリ共通のグリッドという慣習がWindowsにはないため9%から4%に詰めています。
画像素材にも外部ツールにも依存せず、tools\make-icon.cmd が計算だけで16 / 20 / 24 / 32 / 40 / 48 / 64 / 128 / 256 px を描いて .ico を作ります。
ファイルのバージョン情報(VERSIONINFO)も入れたので、プロパティに製品名とバージョンが出るようになりました。
以下はv1.0.0から変わっていません。
使い方
HDRScope.exe を落として実行するだけです。インストール不要、DLLの同梱も、Visual C++ 再頒布可能パッケージも要りません。画面収録の許可設定も不要です。
コード署名をしていないため、Microsoft Defender SmartScreen に止められます。「詳細情報」→「実行」で起動できます。気になる場合はソースからビルドしてください(build.cmd --test)。
できること
- ウィンドウをHDRのままキャプチャして、拡張リニアsRGB(Rec.709原色・D65、1.0 = SDR基準白)でRGBを測る
- 1超えも負値もクリップしない。縮小表示時は面積加重平均、拡大時は最近傍
- 測定用の32bit float TIFF(macOS版とバイト構成互換)と、表示用のHDR JPEG XR(Windowsフォトが HDR 表示する)で保存
- TIFF / JPEG XR / HEIC / HEIF / PNG / JPEG を開いて同じ条件で測定
- 表示上限を読み取るテストパターン2種(固定の×30と、ディスプレイのヘッドルームに合わせて刻みを決めるもの)
--diagnoseで環境確認、--inspectでファイルの測定、どちらもGUIなしで使えます
Windowsでの値の扱い
WindowsのコンポジタはscRGBで合成します。scRGBは1.0 = 80 nit固定で、SDR白はそこにありません(「SDRコンテンツの明るさ」が決めるSDR白レベルの位置に来ます)。実測でも純白のSDRウィンドウはscRGB 3.000000で返りました(SDR白240 nitの環境)。
macOS版と同じ意味の数値にするため、キャプチャ値をSDR白レベル÷80で割ってから保持します。使った係数はキャプチャのたびにステータス行に出ます。詳細はREADMEの「scRGBとSDR基準白」を参照してください。
動作要件
Windows 11(Windows.Graphics.Capture が使えること)。HDR表示の確認にはHDR対応ディスプレイが必要ですが、測定・保存・読み込み自体はSDR環境でも動きます。
検証
自己テスト276アサーション、およびmacOS版と同一の Tests/verify_tiff.py による独立検証を通しています。macOS版が書いたfloat TIFFとPQ HEICを読み、階調が0.3〜1.1%以内で一致することも実機で確認済みです。詳細はREADMEの「検証記録」を参照してください。
HDRScope for Windows 1.0.0
Windows 11向けの、HDRウィンドウキャプチャ・表示・RGB測定ツールです。macOS版HDRScopeの移植で、測定値の意味と保存形式の考え方はそちらと同じです。
使い方
HDRScope.exe を落として実行するだけです。インストール不要、DLLの同梱も、Visual C++ 再頒布可能パッケージも要りません。画面収録の許可設定も不要です。
コード署名をしていないため、Microsoft Defender SmartScreen に止められます。「詳細情報」→「実行」で起動できます。気になる場合はソースからビルドしてください(build.cmd --test)。
できること
- ウィンドウをHDRのままキャプチャして、拡張リニアsRGB(Rec.709原色・D65、1.0 = SDR基準白)でRGBを測る
- 1超えも負値もクリップしない。縮小表示時は面積加重平均、拡大時は最近傍
- 測定用の32bit float TIFF(macOS版とバイト構成互換)と、表示用のHDR JPEG XR(Windowsフォトが HDR 表示する)で保存
- TIFF / JPEG XR / HEIC / HEIF / PNG / JPEG を開いて同じ条件で測定
- 表示上限を読み取るテストパターン2種(固定の×30と、ディスプレイのヘッドルームに合わせて刻みを決めるもの)
--diagnoseで環境確認、--inspectでファイルの測定、どちらもGUIなしで使えます
Windowsでの値の扱い
WindowsのコンポジタはscRGBで合成します。scRGBは1.0 = 80 nit固定で、SDR白はそこにありません(「SDRコンテンツの明るさ」が決めるSDR白レベルの位置に来ます)。実測でも純白のSDRウィンドウはscRGB 3.000000で返りました(SDR白240 nitの環境)。
macOS版と同じ意味の数値にするため、キャプチャ値をSDR白レベル÷80で割ってから保持します。使った係数はキャプチャのたびにステータス行に出ます。詳細はREADMEの「scRGBとSDR基準白」を参照してください。
動作要件
Windows 11(Windows.Graphics.Capture が使えること)。HDR表示の確認にはHDR対応ディスプレイが必要ですが、測定・保存・読み込み自体はSDR環境でも動きます。
検証
自己テスト276アサーション、およびmacOS版と同一の Tests/verify_tiff.py による独立検証を通しています。macOS版が書いたfloat TIFFとPQ HEICを読み、階調が0.3〜1.1%以内で一致することも実機で確認済みです。詳細はREADMEの「検証記録」を参照してください。