現状と詳細な環境は下記のとおりです。
OS:Linux(centOS5)
WEBサーバ:apache2.2.3
言語:php5.2.8
phpを使用したバッチ処理でpdfファイルをjpeg画像に変換させています。
現状、pdf→jpg 変換にはghostScriptコマンドのgsを利用しています。
gs利用時に-rオプションをつけて実行させたところ、元PDFの一部分だけが切り取られたjpgが生成されましたので、jpgに変換した後にimagickコマンド群利用で実現できるだろうかとあたりをつけています。
なお、バッチ処理での実行を考えておりますので、guiツールを使った解決は遠慮いただけますでしょうか。
恐らく、dJPEGQ オプションのことだと存じます。dJPEGQオプションの指定では、縦横のサイズは変わりませんでした。
ピクセル数を減らさずに縦横サイズを小さくしたいのです。
切り取るというのではなく、縮小といえます。ピクセル数を変えずに縦横サイズ(BoundingBoxでしょうか)MicroSoftのPhotoEditorやフォトショのElementsで出来ることなので別のツールを使ってできないものですかねぇ。
ピクセル数は変えずに解像度を変えるということは、Exif情報の X Resolution や Y Resolution を変更するとうことでしょうか。
それであれば、 exiftool (libimage-exiftool-perl)を使い、たとえば 150dpi×150dpiにするなら下記のようにします。
exiftool -XResolution=150 -YResolution=150 画像ファイル名
なお、オリジナルの X Resolution, Y Resolution を取得するには、コマンドラインから下記のようにするか
exiftool -s -EXIF:XResolution -EXIF:YResolution 画像ファイル名
PHPのExif関数がインストールされているなら exif_read_data で取得することができます。
回答ありがとうございます。
jpegファイルのプロパティ編集(JFIFのAPP0、縦横ピクセル濃度あたりでしょうか)だと思っていたのでexifまでは視野に入れていませんでした。
いろいろ試行錯誤してみようかと思います。
申し訳ありません、説明が不足しておりました。
やりたかったことは”解像度を変えずに”ではなくて縦横のピクセル数を変えずに、縦横の長さを割合、またはポイントやインチを指定することで解像度を上げたり下げたりするということですので、回答頂いた方法ですとピクセル数が減少してしまいます。