티스토리 뷰

반응형

Frame이 있는 이미지

 

여러 이미지 테두리 삭제(How to crop margin or frame of images)

 

얼마 전에 100~1,000개가 넘는 파일명을 동시에 바꾸는 "파일명 일괄 변경"에 대해서 알아봤는데요, 리눅스를 사용하면 100~1,000개가 넘는 이미지 파일을 한 번에 원하는 부분만 잘라낼 수 있습니다.

사진에 동일한 액자가 적용된 경우, 액자(Frame) 부분만 삭제하고 사진 부분만 잘라내기(crop) 하고 싶은 경우가 있습니다.

10개 미만의 경우 수작업으로 잘라내기 하면 되지만 100개~1,000개 이상의 이미지 파일이라면 포토샵의 action 기능을 활용하거나 리눅스의 convert, mogrify 명령어를 사용하면 쉽게 crop 할 수 있습니다.

 

Frame이 있는 여러 이미지 예시

 

여백 및 이미지 사이트 확인

 

이미지 사이즈 및 대략적인 margin 확인

 

Photoshop, Affinity Photo, Gimp와 같은 프로그램을 사용하여 이미지를 열어주세요.

Shape - Rectangle(사각형)을 선택하고 사진의 영역을 대략적으로 크기를 조절해서 만들어주세요.
Transform panel에 보면 생성된 Shape의 X, Y 값 및 W, H 값을 확인할 수 있습니다.

대략적으로 X, Y가 14px, W(800 px), H(600 px) 임을 확인할 수 있습니다.

 

convert -crop 또는 mogrify -crop 명령어로 원하는 부분 잘라내기(crop)

 

원본 사진을 작업할 폴더로 복사해 주세요. 명령어를 사용하면 파일이 덮어쓰기 되기 때문에 복사한 파일을 사용해서 진행해 주세요.

 

identify 및 mogrify 명령어 사용

 

먼저 이미지의 사이즈를 확인하기 위해서 identify 파일명을 입력해서 사이즈를 확인합니다.

위 이미지에서 확인할 수 있는 사이즈 830x685+0+0 즉, 좌측 상단 모서리 (0,0) 위치에서 전체 사이즈가 830x685라는 의미입니다.

 

여러 이미지 한 번에 crop

 

전체 이미지를 crop 하기 전에 사진 1장만 먼저 테스트로 변환해 보겠습니다.

mogrify -crop 800x600+15+15 1.jpg와 같이 사진사이즈 800x600을 15,15부터 추출하겠다는 의미입니다.

한 장 crop 해보니 정상적으로 잘 추출이 됩니다.

전체 이미지를 다 변경하려면 mogrify -crop 800x600+15+15 *.jpg와 같이 명령어를 실행하시면 됩니다.

 

원본과 crop된 이미지 비교

 

사진 좌표값 계산

 

사진의 좌측 모서리가 0,0 (X=0, Y=0)입니다. X=15, Y=15로 변경을 하면 아래와 같은 이미지가 될 것입니다.
추출할 이미지 사이즈가 800X600이기 때문에 800x600+15+15와 같이 입력하면 전체 이미지에서 해당 부분만 crop 할 수 있게 됩니다.

 

이미지 crop시 좌표 계산

 

반응형
댓글