728x90
반응형
2024.01.22(월)
자바에서 이미지 저장 및 수정 기능을 개발 진행 중이어서 간단 예제 소스를 만들어보았다.
- 예제 소스
import java.io.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class ImageExample {
public static void main(String[] args) {
// 이미지 저장 경로
String imagePath = "C:\\example\\myImage.jpg";
// 이미지 저장 메소드 호출
saveImage(imagePath);
// 이미지 불러오기 및 수정 메소드 호출
BufferedImage loadedImage = loadImage(imagePath);
if (loadedImage != null) {
modifyImage(loadedImage);
saveModifiedImage(loadedImage, "C:\\example\\modifiedImage.jpg");
}
// 이미지 삭제 메소드 호출
deleteImage("C:\\example\\myImage.jpg");
}
// 이미지 저장 메소드
private static void saveImage(String imagePath) {
try {
BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
File outputImage = new File(imagePath);
ImageIO.write(image, "jpg", outputImage);
System.out.println("이미지가 성공적으로 저장되었습니다. 경로: " + imagePath);
} catch (IOException e) {
System.err.println("이미지 저장 중 오류가 발생했습니다: " + e.getMessage());
}
}
// 이미지 불러오기 메소드
private static BufferedImage loadImage(String imagePath) {
try {
File inputImage = new File(imagePath);
return ImageIO.read(inputImage);
} catch (IOException e) {
System.err.println("이미지 불러오기 중 오류가 발생했습니다: " + e.getMessage());
return null;
}
}
// 이미지 수정 메소드 (예시로 이미지를 회전시킴)
private static void modifyImage(BufferedImage image) {
// 예시로 이미지를 90도 회전
int width = image.getWidth();
int height = image.getHeight();
BufferedImage modifiedImage = new BufferedImage(height, width, image.getType());
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
modifiedImage.setRGB(height - 1 - j, i, image.getRGB(i, j));
}
}
System.out.println("이미지가 성공적으로 수정되었습니다.");
}
// 수정된 이미지 저장 메소드
private static void saveModifiedImage(BufferedImage image, String outputPath) {
try {
File outputImage = new File(outputPath);
ImageIO.write(image, "jpg", outputImage);
System.out.println("수정된 이미지가 성공적으로 저장되었습니다. 경로: " + outputPath);
} catch (IOException e) {
System.err.println("이미지 저장 중 오류가 발생했습니다: " + e.getMessage());
}
}
// 이미지 삭제 메소드
private static void deleteImage(String imagePath) {
File imageFile = new File(imagePath);
if (imageFile.delete()) {
System.out.println("이미지가 성공적으로 삭제되었습니다. 경로: " + imagePath);
} else {
System.err.println("이미지 삭제 중 오류가 발생했습니다.");
}
}
}
- 해설
ImageIO 클래스를 사용하여 이미지를 저장하고 불러오며, BufferedImage를 이용하여 이미지를 수정한다.
이미지를 저장, 불러오기, 수정, 삭제하는 과정을 간단하게 보여주고 있다. 경로는 각자의 시스템에 맞게 수정.
※ 이미지 경로를 다른 서버로 넘겨줄 때 경로 오타로 인해 삽질했는데, 오히려 사소한 게 시간을 많이 쓰게 된다.
사소한 거부터 놓치지 않아야겠다.
728x90
반응형
'개발일기' 카테고리의 다른 글
08. 리액트(React) (63) | 2024.01.25 |
---|---|
07. DOM(Document Object Model) (63) | 2024.01.23 |
05. JSP(JavaServer Pages) (49) | 2024.01.17 |
04. 자바스크립트 eval() 함수 (35) | 2024.01.11 |
03. 빌드(build) (36) | 2024.01.08 |