我試圖顯示比JFrame尺寸更大的圖像。如果我嘗試調整圖像的大小,那麼圖像質量會丟失。將Java圖像合併到JFrame中
如果我使圖像變大,質量不會丟失。這是在Java圖像包中的正常行爲?
我想我想知道的是,可能我在減少圖像大小時做錯了什麼。那麼Java是否提供了一種方法來自動執行此操作而不會丟失圖像質量?
與JButtons相同的行爲,其中java自動調整JPanel中JButton佔用的空間。
bufferedImage = resize(bufImage,500,600);
ImageIcon imageIcon = new ImageIcon(bufferedImage);
resizedIMage = imageIcon.getImage();
實際調整大小如下。我從互聯網上拿走了它。
private static BufferedImage resize(BufferedImage image, int width, int height) {
int type = image.getType() == 0? BufferedImage.TYPE_INT_ARGB : image.getType();
BufferedImage resizedImage = new BufferedImage(width, height, type);
Graphics2D g = resizedImage.createGraphics();
g.setComposite(AlphaComposite.Src);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(image, 0, 0, width, height, null);
g.dispose();
return resizedImage;
}
你是如何重新調整大小的?如果你不把它做得更小,如何將圖像放入更小的盒子中? – 2011-02-02 21:44:16
如何縮小圖像而不縮小圖像?裁剪? – I82Much 2011-02-02 21:44:28
我看到你編輯了你的問題,但你還沒有告訴我們你是如何縮小圖像的,所以我不知道如何通過猜測來提供答案。 – 2011-02-02 22:01:04