PDF Tool API でPDFを軽量化する(画像のダウンサンプリング)

PDF Tool APIを利用したPDF加工の解説本、PDF CookBook 巻1巻2巻3が現在好評発売中です。
各種ドキュメントのPDFへの変換ならばともかく、『加工』と言われてもイメージが湧きにくい方もいらっしゃると思いますので、CookBookに収録された加工機能の一部を紹介したいと思います。
今回は「画像の最適化(ダウンサンプリング)」をご紹介します。
この機能は端的に言うと、PDFの軽量化に用いる機能です。

画像の最適化(ダウンサンプリング)

「画像の最適化」はPDFに含まれている画像に対しダウンサンプリングをしたり圧縮をかけることでドキュメントの容量を抑える機能で、今回紹介するのはその中のダウンサンプリングです。

PDFドキュメントは入力画像をそのままドキュメント上に配置することができますが、反面、大きい画像が多い場合などにサイズが非常に大きくなってしまいます。
特にファイルサイズがかさんでしまう例としては、サムネイルとして利用したいだけの画像なのに不必要に高精細な画像を用いてしまった場合で、画面上では小さく見える画像がファイルサイズを圧迫してしまうことにになりかねません。
そのときに有効なのが画像のダウンサンプリングです。

■ 画像のダウンサンプリングのオプション
PDF Tool APIでは多数のオプションを細かく設定することで用途に応じた適切な画像のダウンサンプリングができます。
画像のダウンサンプリング時に指定できる数値のうち、代表的なものは以下のような項目です。

  • ダウンサンプリング方法
  • ダウンサンプリング後のPPI値
  • ダウンサンプリング対象画像の最低サイズ
  • ダウンサンプリング対象画像の最低PPI値
  • ダウンサンプリング率の下限値
  • ダウンサンプリング方法:
    バイリニア法、バイキュービック法、ニアレストネイバー法の3種からダウンサンプリング方法を選択できます。これらの画像サイズ変更アルゴリズムは一長一短があり、用途によって使い分けることでダウンサンプリングの粗が目立たないようにすることができます。
    (※バイリニア法、バイキュービック法、ニアレストネイバー法の違いについてはこちらのサイト《画像サイズと解像度・再サンプル ―Adobe Photoshop マニュアル》に詳しい説明があります。)
  • PPI値:
    画像の解像度を下げるために、目標のPPI値を設定します。PPIとはpixels per inchの略です。
  • 対象画像の最低サイズ:
    小さい画像をダウンサンプリング対象にしないよう、画像の幅・高さの下限値を設定します。
  • 最低PPI値:
    PPIが小さすぎる画像をダウンサンプリング対象にしないよう、対象画像のPPIの下限値を設定します。
  • ダウンサンプリング率の下限値:
    ダウンサンプリングをしすぎて画像が粗くなりすぎないよう、ダウンサンプリング率の下限値を設定します。

■ ダウンサンプリング以外の最適化
画像の最適化は大きくカラー画像・モノクロ画像・グレースケール画像に対して実行でき、ダウンサンプリング以外にも画像にJPEGなどの圧縮をかけることもできます。

最後に

今回紹介した「画像の最適化」についてはそれぞれの項目についてPDF CookBook第3巻でサンプルプログラム付きで詳しく紹介しています。PDFを扱うプログラマーやエンジニアはもちろんですが、企画・営業担当の方でもPDFの豊富な機能や使い方についての知識やアイデアが得られるでしょう。

また、今回取り上げたトピック以外にも、PDF CookBookでは様々な加工方法を紹介しています。
それぞれ、
PDF CookBook第1巻では
・ページの順序、サイズの設定
・本文への文字・画像・他のPDFのページ要素挿入
等の内容について、
PDF CookBook第2巻では
・パスワードによるセキュリティ設定
・透かし機能の追加
・しおり情報の編集・作成
等の内容について、
PDF CookBook第3巻では
・PDF内のテキスト検索
・PDFの最適化
・範囲を指定した内容データ削除
等について解説しております。

その他のシリーズ既刊本はHTMLで全文公開しておりますので、ご興味のある方はこちらもご覧ください。

HTML版 PDF Cook Book
『PDF CookBook 第1巻』
『PDF CookBook 第2巻』
『PDF CookBook 第3巻』