- PR -

画像のトリミング保存について

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2007/09/29
投稿数: 78
投稿日時: 2008-07-07 19:32
Java 1.5.0

画像関係の質問ですが。
縮小保存した画像から更に、決められた縦・横サイズに足りなかったらその画像以外の部分を余白にして画像を生成したいのですが、この場合どのようなClassを使えばよろしいのでしょうか?

テンプレート背景画像(決められた縦・横サイズ)に乗っけて保存するのでも、良いのですが。

お分かりになる方、ございましたらよろしくお願いします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2008-07-07 20:44
既定サイズのBufferedImageを作ってgetGraphics()して中央に描画して保存しなおせばよいのでは?
未記入
ベテラン
会議室デビュー日: 2007/09/29
投稿数: 78
投稿日時: 2008-07-07 23:41
ありがとうございます。

教えていただいたメソッドで、実現しようとしたらエラーが出てしまい、
APIを見たら、Graphics2D.drawImage()を推奨しており、下記のような
ソースでやってみました。

FileInputStream fis = new FileInputStream(path + "/" + filename);
BufferedImage image = ImageIO.read(fis);
sBufferedImage hrinkImage = new BufferedImage(1500,1800, image.getType());
fis.close();

Graphics2D g2d = shrinkImage.createGraphics();
g2d.drawImage(image, 200, 100, width, height, null);

この場合、確かに実現できてるんですが、余白部分が黒くなってしまいました。
こちら背景色、又は画像を指定するにはどのようにすれば良いのでしょうか?

聞いてばかりで申し訳ありませんが、よろしくお願いします。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2008-07-08 08:30
引用:
こちら背景色、又は画像を指定するにはどのようにすれば良いのでしょうか?


背景色を指定するには任意の色で塗りつぶしてからdrawImageすればいいでしょう。
画像にするならdrawImageの前にdrawImageです。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html
_________________
「ご教授」はできません
ranco
大ベテラン
会議室デビュー日: 2007/11/02
投稿数: 112
投稿日時: 2008-07-08 09:54
最初にwhiteでfillRect()すればいいですよ。
未記入
ベテラン
会議室デビュー日: 2007/09/29
投稿数: 78
投稿日時: 2008-07-08 14:55
rancoさん、ありがとうございます。

おっしゃるとおりに背景が白で実現できたのですが、
fillRectの引数には座標情報はありましたが、色指定をする所がないように感じるのですが・・。

setBackground(Color.BLUE)など、やってみたのですが、色は変わりませんでした。
引き続きよろしくお願いします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2008-07-08 14:58
Graphics2Dもってるんだから、最初に背景を塗りつぶせるでしょう。
手持ちの道具を使って工夫してやれるかどうかを考えましょうよ。
その工夫こそがプログラミングなんだから。
ranco
大ベテラン
会議室デビュー日: 2007/11/02
投稿数: 112
投稿日時: 2008-07-08 19:54
> 色指定をする所がないように感じるのです
色指定のできないグラフィクスAPIなんて、この世にあるのかっ???
グラフィクスコンテキストのドキュメンテーション(とくにメソッドリスト)を、ざっと見てください。
1

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