Painter ワークショップarrow  home   [print] prev  index      

circleJPEG イメージ縦横比修正

Painter の JPEG ファイルの問題

まず、Painter が作る JPEG ファイルでとくに問題に遭遇していないかたは、この問題は無視してもいいと思います。かなり古いバグらしいですが、英語版 7.1 パッチでもまだそのままです。

(Painter 8.1 英語版で修正されました。)

問題は画像の縦と横のサイズの表示比率データにあります。これは JPEG ファイルのヘッダ部分に記述されるデータなのですが、Painter が書き出すデータが間違っているんです。ここに「画素密度」が x、y と記述されるうちの y が常に 1 になっています。このデータにもとづいて表示すると、やたらに縦に引き伸ばされた画像になってしまいます。

ヘッダに何が記述されるのか、など、詳しいことについては、たとえば 【 Essential JPEG 】 (英語)などを参照してください。

問題が起きるのは、こちらで確認したなかでは、Microsoft Word 97, 98 への画像の挿入があります。イメージ選択のプレビュー画面で正常に表示されないほか、挿入して一見まともに見えるのですが、画像のプロパティでサイズ変更するときに比率がヘンになってしまいます。ほかに日本の有名な画像閲覧ツール Susie でも、データに忠実であるがために問題が出るそうです。

ヘッダの編集

画像ファイルのヘッダデータを編集するには、バイナリエディタが必要です。Windows ユーザーのかたには、【 BZ エディタ 】 がおすすめ。

BZ エディタで Painter が作った JPEG ファイルを開くとこんなふうになってます。編集するためにはツールバーの左から3つめのボタンで「編集不可」をオフにします。(編集作業はバックアップファイルを作ってから行ってください。)

BZ エディタの編集画面

上の図で選択されている部分の4バイトが、x 方向画素密度データ2バイト + y 方向画素密度データ2バイトです。正しく作成されたファイルなら、ここが同じ比率になっているはずですが、Painter のファイルではそうなってません。同じにすればいいわけですから、上の場合なら後ろの「00 01」を前の「00 96」に合わせて 「00 96」にします。(この4バイトの直前の1バイトが、密度の基準となる単位です。0 がピクセルそのまま、1 がインチすなわち DPI、2 がセンチ単位になります。ここで 96 と表示されているのは 16 進数ですから 150 のことで、ここで編集している JPEG ファイルの DPI は 150 です。)

あとは保存して終了。ヘッダを編集するだけなので、画像部分にはまったく影響がなく、JPEG 再保存による画質劣化もありません。ファイルのタイムスタンプは変わりますので、そのへんについては必要ならファイル操作ツールなどで対処してください。

(Last Modified: 2002/02/18)

    もどるreturn  home prev  index