- 締切済み
javaで画像を回転縮小
javaで画像を回転、縮小するにはどのようにすればよいでしょうか? なるべく画質の良い方法で教えてください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- foxa-gogo
- ベストアンサー率44% (38/85)
javaで標準で使える画像のアフィン変換(補填)アルゴリズムは、 nearest-neighbour、bilinear、bicubicで、左から順に画質が基本的に向上し、そのかわり計算コストが高くなります。 下記ソースは http://www.java-tips.org/java-se-tips/javax.imageio/java-2d-api-enhancements-in-j2se-5.0.html からもらってきたもので、いらんとこを消してあります。 一番画質の良いbicubicを使っています。 import java.awt.*; import java.awt.image.*; import java.io.*; import javax.swing.*; import javax.imageio.*; public class Bicubic { public static void main(String args[]) throws IOException { if (args.length == 0) { System.err.println( "Provide image name on command line"); System.exit(-1); } Image image = ImageIO.read(new File(args[0])); int w = image.getWidth(null); int h = image.getHeight(null); BufferedImage bicubic = new BufferedImage(2*w, 2*h, BufferedImage.TYPE_INT_RGB); bg = bicubic.createGraphics(); bg.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); bg.scale(2, 2); bg.drawImage(image, 0, 0, null); bg.dispose(); }