- PR -

印刷サイズを指定した画像ファイルの出力

1
投稿者投稿内容
かず
会議室デビュー日: 2004/08/11
投稿数: 2
投稿日時: 2004-08-11 19:25
お世話になります。
かずと申します。

作成した画像をBMPファイルなどに出力するプログラムを作っていて、
印刷用のデータなのでピクセルサイズの指定を行いたいのですが
できずに困っています。
BMPファイルのBITMAPINFOHEADERに含まれる縦・横方向の解像度を指定できればいいと思うのですが、JAI,JIMI,Image I/Oいろいろ見てみたのですが、セットするメソッドなどが見つかりません。(見落としているだけだとは思うのですが。)

どなたかご存知の方がいらっしゃいましたら、ご教授のほどよろしくお願いいたします。


念のため現状の画像ファイルの出力のソースを記述しますが、
ピクセルサイズの指定ができれば他の方法でもよいと思っております。
/**
* BMPファイルとしてファイルを生成する。
* @param inBufImg 生成するイメージ
* @param filePath ファイル保存先のフルパス
* @throws java.io.IOException ファイル出力に失敗したときに発生する。
*/
public static void saveImageAsBMP(BufferedImage inBufImg,String filePath)
throws java.io.IOException{
FileOutputStream out = new FileOutputStream(filePath);
BMPEncodeParam parameter = new BMPEncodeParam();
ImageEncoder encoder = ImageCodec.createImageEncoder("BMP", out, parameter);
encoder.encode(inBufImg);
out.close();
}
かず
会議室デビュー日: 2004/08/11
投稿数: 2
投稿日時: 2004-08-12 16:59
お騒がせしました。自己レスです。

結局、JPG、PNGではそれぞれ
//JPG
JPEGEncodeParam encodeParam = encoder.getDefaultJPEGEncodeParam(inBufImg);
encodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_CM);
encodeParam.setXDensity(pixelPerMeter/100);
encodeParam.setYDensity(pixelPerMeter/100);

//PNG
PNGEncodeParam.RGB parameter = new PNGEncodeParam.RGB();
parameter.setPhysicalDimension(pixelPerMeter,pixelPerMeter,1);
のような形でセットすれば良いようなのですが、
BMPではそういったメソッドが用意されていないようで(BMPにWindowsとOS/2形式があるからなのかもしれませんが。)どうしようもないので、
http://www.javaworld.com/javaworld/javatips/jw-javatip60-p2.html
こちらを参考に自分でクラスを作ることにしました。
失礼しました。
もし、Sun等で提供されているAPIでこのようなことができるものあれば
教えていただければ幸いです。
1

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