問題タブ [bit-depth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2596 参照

c# - Magick.NET Read でビット深度を設定する方法

バイナリ ファイルを読み取るときに MagickImage.Read() 関数のビット深度を指定するにはどうすればよいですか?

8 ビットのグレースケール値で表される 1024x1024 の画像があります (ファイルの合計長 = 1024x1024 = 1048576 バイト)。ImageMagick v.7.0.8-7 Q16 x64 を使用して、次を使用してファイルを変換できます

Magick.NET Q16-AnyCPU v7.5.0.1 を使用してファイルを変換しようとすると、

エラーが発生します

メッセージ: ImageMagick.MagickCorruptImageErrorException : 予期しないファイルの終わり '': そのようなファイルまたはディレクトリはありません @ error/gray.c/ReadGRAYImage/241

プログラムがファイルの末尾を超えて読み取ったことを示します。Magick.NET が、必要な 8 ビット深度ではなく 16 ビット深度に戻っていることを確認しました。1024 の代わりに使用してファイルを読み取ることができますsettings.Height = 512。これにより、グレースケール イメージの圧縮されたバージョンが得られます。

Magick.NET のメモリ消費量から、Magick.NET Q16 がピクセルを 16 ビット精度でメモリに保存することを知りました。私はそれで問題ありませんが、8 ビットの読み取り機能を排除する必要はないようです。

Magick.NET Q16 に 8 ビット深度でピクセルを読み込ませるにはどうすればよいですか?