|
■No75976 (Hongliang さん) に返信 >>解析結果の表示が異なっているため、何らかの情報が出力前後で異なると考えています。 >>その異なる原因と出力後の解析も96/1にする方法があるのか…といった質問になります。 > 元のファイル→GDI+によってデコード→GDI+によってエンコード > という手順を経る以上、当然一部データは変更されます。
ビッグエンディアン形式(ファイル先頭が4D,4D,00,2A)の TIFF を読み取ってみましたが、 No75973 の方法で再保存すると、リトルエンディアン形式(49,49,2A,00) になるようですね。
また、IFDポインタを確認してみたところ、読込元のファイルでは ファイル先頭(画素データの前)にあった IFD が、 ファイル末尾(画素データの後)に移動されてしまう現象も確認できました。
>> propertyitemのPropertyTagXResolutionを変更してみましたが、 > TIFFなどでは解像度は32bit整数値の分数で表現しますが、 ResolutionUnit は、コード3(Int16)で、 X/YResolution は、コード5(Int32分子,Int32分母)ですね。
今回使われる タグId となる、 0x011A 水平方向解像度(分数) [PropertyTagXResolution] 既定値:なし 0x011B 垂直方向解像度(分数) [PropertyTagYResolution] 既定値:なし 0x0128 解像度単位 [PropertyTagResolutionUnit] 既定値:inch(=2) はいずれも必須タグですが、実際にはこれらを含まない画像もたびたび目にします。
PropertyItem は、タグの「取得」「変更」には利用できても タグの「追加」は行えないので、GDI+ からの調整は無理そうです。 (SetResolution で指定できるわけでもないようで…)
|