Wordに埋め込まれたイメージ画像の解像度はどうなるか?


Microsoft Wordで原稿を書くとき、イメージ画像(イメージ)をWord文書の中に埋め込むことが多い。そのWord文書をCAS-UBに取り込んで、特にPDFを生成してプリントオンデマンド(POD)で印刷本にするとイメージの解像度が低くてぼやけてしまう経験がある。こうしたイメージはできればベクトル図形にするべきだが、画面のスナップショットなどはそうもいかない[1]

PODで本を作るときなど、これは大きな問題なので対応策を考える必要がある。

そこで、Wordに埋め込まれたイメージの解像度の扱いについて調査してみた。なお、以下の調査結果は次の条件による。
・PNG形式とJPEG形式についての調査結果を説明する。以下の調査結果は、JPEG、PNGとも共通である。
・Wordのバージョンは2013(32ビット)、動作環境はWindows10(64ビット)で調査した。

なお、解像度は縦横のピクセル数(px)とインチあたりのピクセル数(ppi)という2つの意味で用いているので注意(参考資料[2]を参照)。

Wordに埋め込まれたイメージの解像度の扱いは、Wordの内部でのイメージの持ち方に依存する。Office Open XML(OOXML)[3]でWordの内部のイメージはVMLのシェープ形式(旧形式)またはOOXMLのシェープ形式(新形式)のどちらかである。

(1) Wordの編集の画面に、イメージファイルをドラッグ&ドロップするとイメージは旧形式として保存される。
(2) イメージファイルをコピーしてWordの編集画面にペーストするか、Wordの「挿入」の「画像」で表示されるダイヤログでイメージを編集中の文書に挿入すると新形式として保存される。

Wordの「ファイル」「オプション」には、ファイル内のイメージの扱いについての設定がある(次の図)。この設定は新形式で保存されたときのみ有効である。

・「ファイル内のイメージを圧縮しない」にチェックがない状態(デフォルト)では、イメージの解像度は次の条件で圧縮される。
取り込んだイメージの解像度をZ0pxとする。
文書の中のイメージの幅をXmmに編集したとする。オプションで設定した既定の解像度をRppiに設定しているとき、その幅に入るイメージの解像度Z1pxは次のようになる。
Z1=X/25.4(mm/inch)*R(ppi)
Wordの中のイメージの解像度Zpxは、Z=min(Z0,Z1)

例えば、A4用紙(幅210mm)に左右各30mmの余白を設定しているとき、版面の幅は150mmである。150mmの幅は既定の解像度220ppiのとき、150mm/25.4*220=1299pxに相当する。

このため横幅がそれよりも大きい解像度のイメージは圧縮される。横幅は1299よりも小さい解像度のイメージはそのままの解像度でファイルに保存される。厳密には多少の許容範囲があり、例えば横幅1300pxのイメージは圧縮されない。

もし、Wordの編集画面でイメージの表示幅を55mm設定にして保存すると、元のイメージの解像度が55mm/25.4*220=477pxよりも大きなとき、477pxに圧縮されてしまう。
Wordで保存したファイルには圧縮された画像だけが保存されるので元に戻せない。

・「ファイル内のイメージを圧縮しない」にチェックすると、Word上でのイメージの表示幅にかかわらずイメージは圧縮されない。

イメージの解像度をWordに勝手に変更されたくない場合は、「ファイル内のイメージを圧縮しない」にチェックしておく必要がある。

なお、ドラッグ&ドロップで配置したイメージは旧形式となるが、旧形式に対しては、「ファイル」「オプション」の、ファイル内のイメージの扱いについての設定は影響を与えない。つまりドラッグ&ドロップで配置したイメージはWordの編集でサイズを表示サイズを変更しても影響を受けない

旧形式で保存されるイメージを圧縮するには、イメージを選択して表示される「図ツール」「書式」タブの「図の圧縮」ボタンをクリックして表示される「図の圧縮」ダイヤログで設定する。

【参考】
1.『XSL-FOの基礎』画像制作のこと。Word経由でインポートした画像は印刷品質の劣化が激しいため、第2版ではできるだけSVG形式に変更した件。
2.解像度とは
3.Office Open XML(OOXML)

関連記事
1. Office Server Document Converter Word文書(docx文書)に埋め込まれたイメージ画像はどのように扱われているか
2. Wordに埋め込まれたイメージ画像の解像度はどうなるか? Word2019の場合

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA値として計算に合う値を入力してください。 *