有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java更改图像的高度和宽度

有一个宽450像素、高450像素的图像。我想把这个图像转换成75 x 75像素。我该怎么做


共 (2) 个答案

  1. # 1 楼答案

    BufferedImage scaledImg = new BufferedImage(75, 75, BufferedImage.TYPE_INT_RGB);
    scaledImg.createGraphics().drawImage(sourceImg, 0, 0, 75, 75, null);
    
  2. # 2 楼答案

    How to resize an image in Java?

    public class ImageResize {
    
        private static final int IMG_WIDTH = 75;
        private static final int IMG_HEIGHT = 75;
    
        public static void main(String [] args){
    
        try{
    
            BufferedImage originalImage = ImageIO.read(new File("c:\\image\\img1.jpg"));
            int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
    
            BufferedImage resizeImageJpg = resizeImage(originalImage, type);
            ImageIO.write(resizeImageJpg, "jpg", new File("c:\\image\\img1_jpg.jpg")); 
    
            BufferedImage resizeImagePng = resizeImage(originalImage, type);
            ImageIO.write(resizeImagePng, "png", new File("c:\\image\\img1_png.jpg")); 
    
            BufferedImage resizeImageHintJpg = resizeImageWithHint(originalImage, type);
            ImageIO.write(resizeImageHintJpg, "jpg", new File("c:\\image\\img1_hint_jpg.jpg")); 
    
            BufferedImage resizeImageHintPng = resizeImageWithHint(originalImage, type);
            ImageIO.write(resizeImageHintPng, "png", new File("c:\\image\\img1_hint_png.jpg")); 
    
        }catch(IOException e){
            System.out.println(e.getMessage());
        }
    
        }
    
        private static BufferedImage resizeImage(BufferedImage originalImage, int type){
        BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
        Graphics2D g = resizedImage.createGraphics();
        g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
        g.dispose();
    
        return resizedImage;
        }
    
        private static BufferedImage resizeImageWithHint(BufferedImage originalImage, int type){
    
        BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
        Graphics2D g = resizedImage.createGraphics();
        g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
        g.dispose();    
        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);
    
        return resizedImage;
        }   
    }