RenderedImage を使用して、アプリの DisplayJAI に tiff を表示しています。
誰かが RenderedImage のインスタンスのサイズを変更する方法を知っていますか??
public static RenderedImage scale(RenderedImage image, float scaleFactor)
RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
RenderedOp resizeOp = SubsampleAverageDescriptor.create(image,
Double.valueOf(scaleFactor), Double.valueOf(scaleFactor), hints);
BufferedImage bufferedResizedImage = resizeOp.getAsBufferedImage();
return bufferedResizedImage;
}
久しぶりにJAIをやってみたのですが、「スケール」や「アフィン」の操作で十分ではないでしょうか?
編集: "Scale"と"Affine"のProgrammer's Guideへのリンクがいくつかあります。
ここにそのためのサンプルコードが投稿されています: http ://answers.yahoo.com/question/index?qid = 20090827075608AA12kEZ
関連コード:
BufferedImage img = ImageIO.read(new File("~/your/file/system/example.jpeg"));
BufferedImage thumb = new BufferedImage(w2, h2, BufferedImage.TYPE_INT_RGB);
thumb.createGraphics().drawImage(
img.getScaledInstance(w2, h2, java.awt.Image.SCALE_SMOOTH), 0, 0, null);
File file = new File(fullpath + filename);
ImageIO.write(thumb, "png", file);