Notice
Recent Posts
Recent Comments
Link
나만의공간
Java 코드로 ProcessBuilder를 통해 ImageMagick 명령어 실행 본문
🧑💻 Java 코드로 ProcessBuilder를 통해 ImageMagick 명령어 실행하기
Java에서 외부 프로그램인 ImageMagick을 연동하여 이미지 리사이징 등의 작업을 수행하는 방법을 ProcessBuilder를 통해 소개합니다.
🔍 ProcessBuilder란?
Java에서 외부 명령어(예: CMD 명령, 쉘 명령 등)를 실행할 수 있도록 도와주는 클래스입니다. 이미지 변환, 시스템 호출 등 다양한 상황에서 활용됩니다.
🧩 개발 목적
ImageMagick을 Java 애플리케이션 내에서 실행하기 위해서는 운영체제에서 실행 가능한 명령어를 코드 내에서 구성하고, 실행 결과를 처리해야 합니다.
예를 들어, 다음과 같은 이미지 리사이징 명령을 자바에서 실행하고자 할 수 있습니다:
magick sample1.jpg -resize 800x600 sample_resized.jpg
🛠️ 예제 코드: 이미지 리사이징
💡 Windows 환경 기준
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class ImageMagickResizeExample {
public static void main(String[] args) {
// 리사이징할 명령어 구성
String[] command = {
"magick", // 또는 "C:\\Program Files\\ImageMagick-6.9.1-Q16\\magick.exe"
"sample1.jpg",
"-resize", "800x600",
"sample_resized.jpg"
};
ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.redirectErrorStream(true); // 오류 스트림도 함께 출력
try {
Process process = processBuilder.start();
// 출력 결과 읽기
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream())
);
String line;
while ((line = reader.readLine()) != null) {
System.out.println("[ImageMagick 출력] " + line);
}
int exitCode = process.waitFor();
System.out.println("프로세스 종료 코드: " + exitCode);
if (exitCode == 0) {
System.out.println("이미지 리사이징 성공 ✅");
} else {
System.out.println("이미지 리사이징 실패 ❌");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
📁 실행 전 체크리스트
- ✅ ImageMagick이 설치되어 있어야 합니다.
- ✅
magick명령어가 시스템 환경변수에 등록되어 있어야 합니다. - ✅ 이미지 파일
sample1.jpg는 프로젝트 실행 디렉터리에 있어야 합니다.
🔧 환경변수 등록 팁 (Windows 기준)
ImageMagick설치 폴더 경로를 확인- 예:
C:\Program Files\ImageMagick-6.9.1-Q16 - Windows 검색창에서 "환경 변수 편집" →
Path에 위 경로 추가
📚 마무리
ImageMagick은 Java와 ProcessBuilder를 통해 손쉽게 외부 이미지 처리 프로그램을 활용할 수 있는 강력한 도구입니다. 커맨드라인에서 가능했던 모든 기능을 Java 애플리케이션 내에서도 자동화할 수 있습니다.
향후에는 썸네일 생성, 이미지 포맷 일괄 변환, 파일명 자동 생성 등 다양한 예제를 함께 소개할 예정입니다. 🖼️
'IT > JAVA' 카테고리의 다른 글
| ImageMagick을 활용한 이미지 리사이징 방법 (1) | 2025.07.19 |
|---|---|
| 자바 입문자를 위한 객체지향 개념 정리 – OOP 완전 입문 (2) | 2025.06.21 |
| 자바 초보자가 자주 하는 실수 10가지와 해결법 (1) | 2025.06.21 |
| 자바로 크롤러 만들기 – Jsoup 사용법 완전 정리 (1) | 2025.06.21 |
| Spring Security로 로그인 기능 구현하기 (JWT 포함) (1) | 2025.06.20 |
Comments
