回答編集履歴
1
コード追記
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
|
+
```
|