콘텐츠로 이동

2021 08 11

2021-08-11

Java 이미지 리사이징

  • javax.imageio.ImageIO
    public static void main(String[] args){
        String path = "C:\\Image.png";
        File file = new File(path);
    
        BufferedImage originalImage = ImageIO.read(new File(file));
        BufferedImage resizedImage = resizeImage(originalImage, 2);
    }
    
    private static BufferedImage resizeImage(BufferedImage originalImage, int type) {
        BufferedImage resizedImage = new BufferedImage(300, 300, type);
        Graphics2D g = resizedImage.createGraphics();
        g.drawImage(originalImage, 0, 0, 300, 300, null);
        g.dispose();
    
        return resizedImage;
    }
    
    public static void main(String[] args){
        Image image = ImageIO.read(new File(path));
        int imageWidth = image.getWidth();
        int imageHeight = image.getHeight();
    
        Image resizedImage = image.getScaledInstance(300, 300, Image.SCALE_SMOOTH);
    }
    
  • 밸덩 ImageResize 1. java.awt.Graphics2D - 2D 모양 리사이징
    BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) {
        BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics2D = resizedImage.createGraphics();  
        graphics2D.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null);
        graphics2D.dispose();
        return resizedImage;
    }
    
      - graphics2D.setRenderingHint() 를 통해 이미지 퀄리티, 이미지 프로세싱 속도 설정 가능
    

    2. Image.getScaledInstance() java BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) { Image resultingImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_DEFAULT); BufferedImage outputImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB); outputImage.getGraphics().drawImage(resultingImage, 0, 0, null); return outputImage; }