回答編集履歴

1

コード追記

2017/02/22 01:45

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -1,3 +1,33 @@
1
1
  [http://qiita.com/tool-taro/items/1f414424b31a86e97446](http://qiita.com/tool-taro/items/1f414424b31a86e97446)
2
2
 
3
3
  ここの「コメント」のとこに書かれている方法ならどうでしょうか。標準ライブラリだけでそこそこきれいな縮小だそうですよ。速度とかはわかりませんが…
4
+
5
+ ```Java
6
+
7
+ public static void scaleImage(File in, File out, double scale) throws IOException {
8
+
9
+ BufferedImage org = ImageIO.read(in);
10
+
11
+ ImageFilter filter = new AreaAveragingScaleFilter(
12
+
13
+ (int)(org.getWidth() * scale), (int)(org.getHeight() * scale));
14
+
15
+ ImageProducer p = new FilteredImageSource(org.getSource(), filter);
16
+
17
+ java.awt.Image dstImage = Toolkit.getDefaultToolkit().createImage(p);
18
+
19
+ BufferedImage dst = new BufferedImage(
20
+
21
+ dstImage.getWidth(null), dstImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
22
+
23
+ Graphics2D g = dst.createGraphics();
24
+
25
+ g.drawImage(dstImage, 0, 0, null);
26
+
27
+ g.dispose();
28
+
29
+ ImageIO.write(dst, "jpeg", out);
30
+
31
+ }
32
+
33
+ ```