|
Comparison
Comparison of using Thumbnailator and conventional image resizing techniques.
Featured ComparisonsThe following are comparison of images created using conventional image resizing techniques, such as using the Graphics.drawImage method and Image.getScaledInstance method, along with resizing using Thumbnailator. Image Quality and Rendering Speed
CodeThe following are the relevant sections of code used to generate the above images. Graphics.drawImageBufferedImage thumbnail = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics2D g = thumbnail.createGraphics(); g.drawImage(originalImage, 0, 0, WIDTH, HEIGHT, null); g.dispose(); Graphics.drawImage using bilinear interpolationBufferedImage thumbnail = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics2D g = thumbnail.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.drawImage(originalImage, 0, 0, WIDTH, HEIGHT, null); g.dispose(); Graphics.drawImage using bicubic interpolationBufferedImage thumbnail = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics2D g = thumbnail.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.drawImage(originalImage, 0, 0, WIDTH, HEIGHT, null); g.dispose(); Image.getScaledInstance using Image.SCALE_DEFAULTBufferedImage thumbnail = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics2D g = thumbnail.createGraphics(); g.drawImage(originalImage.getScaledInstance(WIDTH, HEIGHT, Image.SCALE_DEFAULT), 0, 0, WIDTH, HEIGHT, null); g.dispose(); Image.getScaledInstance using Image.SCALE_SMOOTHBufferedImage thumbnail = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics2D g = thumbnail.createGraphics(); g.drawImage(originalImage.getScaledInstance(WIDTH, HEIGHT, Image.SCALE_SMOOTH), 0, 0, WIDTH, HEIGHT, null); g.dispose(); ThumbnailatorBufferedImage thumbnail = Thumbnails.of(originalImage)
.size(WIDTH, HEIGHT)
.asBufferedImage();
| |||||||||||||||||||||||||||||||
► Sign in to add a comment