我试图显示比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