나만의공간

Java 코드로 ProcessBuilder를 통해 ImageMagick 명령어 실행 본문

IT/JAVA

Java 코드로 ProcessBuilder를 통해 ImageMagick 명령어 실행

밥알이 2025. 7. 21. 14:08

🧑‍💻 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 기준)

  1. ImageMagick 설치 폴더 경로를 확인
  2. 예: C:\Program Files\ImageMagick-6.9.1-Q16
  3. Windows 검색창에서 "환경 변수 편집" → Path에 위 경로 추가

📚 마무리

ImageMagick은 Java와 ProcessBuilder를 통해 손쉽게 외부 이미지 처리 프로그램을 활용할 수 있는 강력한 도구입니다. 커맨드라인에서 가능했던 모든 기능을 Java 애플리케이션 내에서도 자동화할 수 있습니다.

향후에는 썸네일 생성, 이미지 포맷 일괄 변환, 파일명 자동 생성 등 다양한 예제를 함께 소개할 예정입니다. 🖼️

Comments