- PR -

JMagickでのPDFサムネイルの作成について

投稿者投稿内容
teru
会議室デビュー日: 2007/08/20
投稿数: 5
投稿日時: 2007-08-20 11:29
下記の環境でPDFのサムネイル作成を考えています。
・ImageMagick-6.3.5
・jmagick-6.2.6
・Ghostscript 8.60

コードを以下のように記述すると画像変換は問題なくされるのですが、
縦横比率を維持したままでの、画像サイズの拡大、縮小の方法がわかりません。
「scaleImage(int a, int b)」メソッドを使えば、単純にサイズ変更はできる
のですが、縦横比が維持できません。
どなたか、実現する方法を知っている方はいらっしゃいませんでしょうか?
宜しくお願い致します。

--------------------------------------------------
 ImageInfo info = new ImageInfo("d:\\test.pdf");
 MagickImage image = new MagickImage(info);
 image.setFileName("d:\\test.jpg");
 image.writeImage(info);
--------------------------------------------------

nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-08-20 12:57
元の画像のサイズから縦も横も同率で小さくすればよいのでは?
teru
会議室デビュー日: 2007/08/20
投稿数: 5
投稿日時: 2007-08-20 13:13
nagiseさん、ご回答ありがとうございます。

確かに、同メソッドに同率で縮小した値をセットすればよいとは思いますが
入力となるPDFが、どのような画像サイズであるかはPDF文書によって異なるので
その方法もとれません。(画像サイズを取得できる手段があれば別ですが。。)
単純に、比率を指定するとその比率で出力されるようなメソッドがあれば助かる
のですが。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-08-20 13:39
ImageMagickとやらのライブラリは知りませんが、
Fileに画像を書き出せるんだったら、少なくとも2段階に分けて
縮小なしで画像を作ってからサイズ取得して縮小すればいいわけですよね。

ライブラリの性質によると思いますが、オンメモリで生成した画像を
扱えるなら縮小なしで画像を作る場合にはFileへの書き出しをする
必要も無いわけですし。
teru
会議室デビュー日: 2007/08/20
投稿数: 5
投稿日時: 2007-08-20 14:41
ImageMagckのライブラリ内で完結できるとよかったのですが、情報が見つけ
られなかったので、縮小なしの画像を生成し、サイズを取得し縮小することで解決
しました。
nagiseさんありがとうございました。
vlkr
会議室デビュー日: 2005/12/02
投稿数: 6
投稿日時: 2007-08-20 16:27
手元にソースがないのでうろ覚えですが、
image.getDimension().getWidth();
image.getDimension().getHeight();

こんな感じで縦横のサイズ取れませんでしたっけ。

[ メッセージ編集済み 編集者: vlkr 編集日時 2007-08-20 16:31 ]
teru
会議室デビュー日: 2007/08/20
投稿数: 5
投稿日時: 2007-08-20 17:13
>image.getDimension().getWidth();
>image.getDimension().getHeight();

これで問題なく縦横のサイズが取得できました。
vlkrさん、ありがとうございます!
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-08-20 17:30
ドキュメントをよく探せという教訓が得られましたね(苦笑

なれないAPIではよくやっちゃいます… orz

スキルアップ/キャリアアップ(JOB@IT)