バッチ処理でpdf→jpg変換をする際に、解像度を変えずに縦横の長さを縮小することは出来るでしょうか。

現状と詳細な環境は下記のとおりです。

OS:Linux(centOS5)
WEBサーバ:apache2.2.3
言語:php5.2.8

phpを使用したバッチ処理でpdfファイルをjpeg画像に変換させています。
現状、pdf→jpg 変換にはghostScriptコマンドのgsを利用しています。
gs利用時に-rオプションをつけて実行させたところ、元PDFの一部分だけが切り取られたjpgが生成されましたので、jpgに変換した後にimagickコマンド群利用で実現できるだろうかとあたりをつけています。

なお、バッチ処理での実行を考えておりますので、guiツールを使った解決は遠慮いただけますでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/06/08 11:54:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:Bombastus No.1

回答回数409ベストアンサー獲得回数52

ポイント18pt

ImageMagickconvertコマンドを用い、たとえば50%に縮小したいのであれば以下のようにします。

convert -geometry 50% 元ファイル名 縮小ファイル名
id:gen_ger_gem

申し訳ありません、説明が不足しておりました。

やりたかったことは”解像度を変えずに”ではなくて縦横のピクセル数を変えずに、縦横の長さを割合、またはポイントやインチを指定することで解像度を上げたり下げたりするということですので、回答頂いた方法ですとピクセル数が減少してしまいます。

2010/06/07 20:27:09
id:kick_m No.2

回答回数1372ベストアンサー獲得回数54

id:gen_ger_gem

恐らく、dJPEGQ オプションのことだと存じます。dJPEGQオプションの指定では、縦横のサイズは変わりませんでした。

ピクセル数を減らさずに縦横サイズを小さくしたいのです。

2010/06/07 20:42:42
id:kick_m No.3

回答回数1372ベストアンサー獲得回数54

ポイント18pt

切り取るということですか?同じ画像をピクセル数を変えずに縮小することはできませんが。http://www

id:gen_ger_gem

切り取るというのではなく、縮小といえます。ピクセル数を変えずに縦横サイズ(BoundingBoxでしょうか)MicroSoftのPhotoEditorやフォトショのElementsで出来ることなので別のツールを使ってできないものですかねぇ。

2010/06/07 20:53:10
id:Bombastus No.4

回答回数409ベストアンサー獲得回数52

ポイント36pt

ピクセル数は変えずに解像度を変えるということは、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 で取得することができます。

id:gen_ger_gem

回答ありがとうございます。

jpegファイルのプロパティ編集(JFIFのAPP0、縦横ピクセル濃度あたりでしょうか)だと思っていたのでexifまでは視野に入れていませんでした。

いろいろ試行錯誤してみようかと思います。

2010/06/08 10:48:38
  • id:gen_ger_gem
    とりあえず自己解決しました。

    ピクセルを変えずに解像度のみ変更させる場合、imagemagick:convertのdensityオプションで出来ました。

    縦軸横軸の検証はしていませんが、150dpiの画像を作成は以下のコマンドでいけるようです。

    convert 入力ファイル -density 150x150 出力ファイル

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません