반응형
아래 소스코드는 이미지를 리사이징하고, 새로운 크기로 조절된 이미지를 저장하는 예제입니다.
1. resize 메서드
public static BufferedImage resize(InputStream inputStream, int width, int height) throws IOException {
BufferedImage inputImage = ImageIO.read(inputStream);
BufferedImage outputImage = new BufferedImage(width, height, inputImage.getType());
Graphics2D graphics2D = outputImage.createGraphics();
graphics2D.drawImage(inputImage, 0, 0, width, height, null);
graphics2D.dispose();
return outputImage;
}
-resize 메서드는 InputStream에서 이미지를 읽어들여 BufferedImage로 변환 후 새로운 크기의 BufferedImage를 생성합니다.
-Graphics2D 객체를 사용하여 이미지를 새로운 크기에 맞게 그리고 dispose 메서드를 사용하여 그래픽 객체를 정리합니다. 이후 리사이즈된 이미지를 반환합니다.
2. saveImage 메서드
public static void saveImage(BufferedImage image, String outputPath) throws IOException {
// 저장
ImageIO.write(image, "png", new File(outputPath));
}
-saveImage 메서드는 BufferedImage를 지정된 형식(png)으로 파일로 저장합니다.
3. main 메서드
-특정 이미지 파일의 경로를 입력으로 받고, 원하는 크기로 리사이징하여 다시 파일로 저장하는 예제 코드입니다.
-inputImagePath는 원본 이미지 파일의 경로를 나타내고, outputImagePath는 리사이즈된 이미지를 저장할 경로를 나타냅니다.
-targetWidth와 targetHeight는 원하는 리사이즈된 이미지의 크기를 나타냅니다.
4. 전체코드
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
public class TEST {
public static BufferedImage resize(InputStream inputStream, int width, int height) throws IOException {
BufferedImage inputImage = ImageIO.read(inputStream);
BufferedImage outputImage = new BufferedImage(width, height, inputImage.getType());
Graphics2D graphics2D = outputImage.createGraphics();
graphics2D.drawImage(inputImage, 0, 0, width, height, null);
graphics2D.dispose();
return outputImage;
}
public static void saveImage(BufferedImage image, String outputPath) throws IOException {
// 저장
ImageIO.write(image, "png", new File(outputPath));
}
public static void main(String[] args) throws Exception {
try {
// 입력 이미지 파일 경로
String inputImagePath = "D:/test/1.png";
// 출력 이미지 파일 경로
String outputImagePath = "D:/test/1_new.png";
// 원하는 크기
int targetWidth = 300;
int targetHeight = 200;
// 이미지 리사이즈
BufferedImage resizedImage = resize(new FileInputStream(inputImagePath), targetWidth, targetHeight);
// 리사이즈된 이미지 저장
saveImage(resizedImage, outputImagePath);
System.out.println("이미지 리사이즈 완료");
} catch (IOException e) {
e.printStackTrace();
}
}
}
반응형
'개발이야기 > Java' 카테고리의 다른 글
[Java] Gson 사용해서 Json String DTO 변환하기 (2) | 2024.01.29 |
---|---|
[Java] ObjectUtils 클래스 메서드 사용법, 예제 (isEmpty, nullSafeEquals, isArray) (0) | 2024.01.18 |
[Java] File 내용 읽고 파일 정보 출력하기 (File 클래스 사용법, 예제) (0) | 2023.12.14 |
[Java] AES 암호화, 복호화 예제 및 키 생성 (AES-128) (0) | 2023.12.11 |
[Java] 엑셀 파일 생성 후 스타일 적용하고 다운로드 하기(사용법, 예제) (2) | 2023.12.08 |
댓글