开发者

High Quality thumbnail in java

I tried the code below to generate a thumbnail.

I am able to get the thumbnail but the quality is not there. Please can any one help me in this one to generate a high quality thumbnail? The original image is high quality.

BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setBackground(Color.WHITE);
graphics2D.setPaint(Color.WHITE); 
graphics2D.fillRect(0, 0, thumbWidth, thumbHeight);
graphics2D.setComposite(AlphaComposite.Src);

graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
graphics2D.drawImage(image, 0, 0, thumbWidth, t开发者_运维技巧humbHeight, null);
graphics2D.dispose();      
File file = new File(thumbnailFile);
if (javax.imageio.ImageIO.write(thumbImage, "JPG", file))
    return file;


You might want to take a look at this: http://download.oracle.com/javase/tutorial/uiswing/components/icon.html

http://download.oracle.com/javase/tutorial/uiswing/examples/components/IconDemoProject/src/components/IconDemoApp.java

I used that as a reference for doing something similar before.


I had the same problem and found this great article with sample code and sample images at the end:

http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html


check this I found best jar file here

public static javaxt.io.Image resizeThumbnailImage(javaxt.io.Image image, int width, int height) {

    Integer imgWidth = image.getWidth();
    Integer imgHeight = image.getHeight();
    Double imgRatio = (imgWidth.doubleValue() / imgHeight.doubleValue());
    logger.info("\n======= imgRatio " + imgRatio);
    if (imgRatio >= 2) {
        image.setWidth(width - 1);

    } else if (imgRatio < 1) {
        image.setHeight(300);

    } else {
        Double expectedHeight = (imgRatio * (height / ProjectConstant.THUMBNAIL_IMG_ASPECT_RATIO));
        image.setHeight(expectedHeight.intValue());

        if (image.getWidth() > width) {
            image.setWidth(width - 20);
        }
    }
    logger.info("=======after Processing  image Width  " + image.getWidth()+" Hight "+image.getHeight());

    return image;
}

my constant

public static final double THUMBNAIL_IMG_ASPECT_RATIO = 1.4;

High Quality thumbnail in java

High Quality thumbnail in java

High Quality thumbnail in java

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜