2011-01-04 5 views
3

RenderedImage를 사용하여 내 응용 프로그램의 DisplayJAI에 tiff를 표시하고 있습니다.RenderedImage 크기 조정

누군가가 RenderedImage 인스턴스의 크기를 조정하는 방법을 알고 있습니까?

답변

-1

그냥 여기에 게시 예제 코드가 있습니다 : http://answers.yahoo.com/question/index?qid=20090827075608AA12kEZ

관련 코드 : 나는 JAI와 아무 짓 한 이후 오랜 시간이되었습니다

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); 
+0

간단한 형식 캐스트로 RenderedImage를 BufferedImage로 변환 할 수 없습니다. – Robert

+0

@ 로버트, 나는 포스터가 정확하다고 가정하는 대신 그것을 테스트해야했습니다. 그러나 나머지는 여전히 유용 할 수 있습니다. – jzd

+0

@ 로버트. 응? BufferedImage 용 JavaDoc은 "모든 구현 된 인터페이스 : * RenderedImage, * WritableRenderedImage, Transparency"라고 주장합니다. 내가 뭔가 잘못 이해 한거야? –

3
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; 
}