- - PR -
画像のトリミング保存について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-07-07 19:32
Java 1.5.0
画像関係の質問ですが。 縮小保存した画像から更に、決められた縦・横サイズに足りなかったらその画像以外の部分を余白にして画像を生成したいのですが、この場合どのようなClassを使えばよろしいのでしょうか? テンプレート背景画像(決められた縦・横サイズ)に乗っけて保存するのでも、良いのですが。 お分かりになる方、ございましたらよろしくお願いします。 | ||||
|
投稿日時: 2008-07-07 20:44
既定サイズのBufferedImageを作ってgetGraphics()して中央に描画して保存しなおせばよいのでは?
| ||||
|
投稿日時: 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); この場合、確かに実現できてるんですが、余白部分が黒くなってしまいました。 こちら背景色、又は画像を指定するにはどのようにすれば良いのでしょうか? 聞いてばかりで申し訳ありませんが、よろしくお願いします。 | ||||
|
投稿日時: 2008-07-08 08:30
背景色を指定するには任意の色で塗りつぶしてからdrawImageすればいいでしょう。 画像にするならdrawImageの前にdrawImageです。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html _________________ 「ご教授」はできません | ||||
|
投稿日時: 2008-07-08 09:54
最初にwhiteでfillRect()すればいいですよ。
| ||||
|
投稿日時: 2008-07-08 14:55
rancoさん、ありがとうございます。
おっしゃるとおりに背景が白で実現できたのですが、 fillRectの引数には座標情報はありましたが、色指定をする所がないように感じるのですが・・。 setBackground(Color.BLUE)など、やってみたのですが、色は変わりませんでした。 引き続きよろしくお願いします。 | ||||
|
投稿日時: 2008-07-08 14:58
Graphics2Dもってるんだから、最初に背景を塗りつぶせるでしょう。
手持ちの道具を使って工夫してやれるかどうかを考えましょうよ。 その工夫こそがプログラミングなんだから。 | ||||
|
投稿日時: 2008-07-08 19:54
> 色指定をする所がないように感じるのです
色指定のできないグラフィクスAPIなんて、この世にあるのかっ??? グラフィクスコンテキストのドキュメンテーション(とくにメソッドリスト)を、ざっと見てください。 |
1