// ScalingReader transformReader = new ScalingReader() {
Component component = new JPanel();
MediaTracker mediaTracker = new MediaTracker(component);
public Image create(Dimension originalSize,Dimension maxSize) throws Throwable {
Dimension newSize = Scaling.scaleDimensionsProportionally(originalSize, maxSize);
URL url = getImageURL();
Image image = Toolkit.getDefaultToolkit().createImage(url);
mediaTracker.addImage(image, 0);
mediaTracker.waitForAll();
BufferedImage thumbnail = new BufferedImage(newSize.width, newSize.height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = thumbnail.createGraphics();
double scale = ((double)newSize.width)/((double)originalSize.width);
g.scale(scale, scale);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(image, 0, 0, null);
g.dispose();
mediaTracker.removeImage(image);
image.flush();
return thumbnail;
}
public String getName() {
return "transformReader";
}
};
Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/f8mY2BRUf9w/13405