2017-09-05 16 views
0

다음 코드는 더 높은 크기의 이미지를 생성합니다. 원본 이미지 200x200은 6KB였습니다. 이 후에 나는 100KB 밖에 넣지 않았다. Graphics2D에서 처리 한 후 이미지 크기가 증가합니다.

I 다시 입력으로 출력 대원

, 상기 포맷, 압축 선택채널에 따라 크기 조정

File imageFile = "path to image" 
    BufferedImage subImage= ImageIO.read(new FileInputStream(imageFile)); 
    BufferedImage dest = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g2 = dest.createGraphics(); 
    g2.drawImage(subImage, 0, 0, 200, 200, null); 
    g2.dispose(); 
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    ImageIO.write(dest, "png", out); 
+1

마법사에서 읽은 코드와 다시 저장 한 코드를 추가 할 수 있습니까? 원본 파일이 JPG이고 다른 것으로 저장 한 경우 파일 크기가 변경되는 데 놀라운 일이 발생하지 않습니다. – Lothar

+0

@Lothar. 네, 원본 이미지는 JPG였습니다. 지금 코드를 업데이트했습니다. – Patan

답변

0

이미지 크기를 다양하게 변화되지 않는다. 는 JPEG에 비해 알파 채널를 제공합니다 (여기에 사용되는)과 무손실 압축를 않기 때문에

은 PNG는 일반적으로 더 크기를 사용합니다.

이미지를 쓸 때 "JPEG"을 시도해보고 크기와 품질이 더 나은지 확인하십시오.