본문 바로가기

Programming/Python Program

이미지에 나의 서명(signature) 만들어 넣기 with python program - 1

안녕하세요. 이번에는 파이썬 프로그래밍을 이용해 이미지(사진)에 나만의 서명(signature)를 만들어 넣어 보겠습니다. 단순하게 하나의 이미지에 넣어 보는 방법을 알아보고, 추후에 특정 폴더내에 있는 모든 이미지에 넣는 방법을 알아보겠습니다. 그런 연후에는 폴더에 떨구기만 하면 서명이 된 이미지들을 뱉어내게 하는 자동화 스크립트도 만들어 보겠습니다. 그럼 시작하겠습니다.



우선 아래와 같은 파이썬 로고 이미지가 있습니다. 여기에 제 블로그 이름인 'creative works for jason' 이라는 글을 넣어 보겠습니다. 글이 아니라 이미지도 넣을 수 있지만, 여기서는 다루지 않겠습니다.

이미지를 다룰 예정이므로, 관련 모듈들을 불러옵니다. ImageDraw 는 그림에 글을 써 넣을때 사용하는 모듈입니다. ImageFont는 컴퓨터에 내장되어 있는 글꼴을 불러올 때 사용하는 모듈입니다. 

원본 이미지가 있는 파일의 경로를 아래와 같이 지정해 줍니다.

컴퓨터내에 있는 폰트 폴더의 경로를 fontsFolder 변수에 넣어줍니다.

상기 경로를 파인더에서 띄워보면 아래와 같이 자신의 컴퓨터에 있는 폰트들을 확인할 수 있습니다. 


폰트의 경로를 확인 하였다면, 수 많은 폰트중에 사용할 폰트를 정해 주어야겠지요? 그래서 selectedFont 라는 변수를 정의하고, 아래와 같이 ImageFont를 사용해 폰트의 경로와 사용할 폰트명을 정해주고, 사용할 폰트의 크기(여기서는 15로 정하였습니다.)를 설정합니다.

ImageDraw 에서 서명을 할 이미지에 그리기 할 수 있는 Draw 메소드를 적용시켜 draw 라는 변수에 넣어주었습니다.

이제 준비는 끝났습니다. 그럼 그려 넣어보겠습니다. draw를 사용해 그려 넣을것이라고 알려주고, 텍스트의 시작점은 이미지에서 가로 200, 세로 150에서 시작 포인트로 잡았다고 알려줍니다. 들어갈 문구 'creative works for jason' 을 넣고, fill 에는 글자의 색상을 정해줍니다. 여기서는 'white' 라고 정의하였지만, 색상코드로 넣어줄 수도 있습니다. 그리고 font는 위에서 정의한 selectedFont 값을 넣어줍니다.

이렇게 해서 서명한 이미지를 파일로 저장을 해 보겠습니다. 아래와 같이 파일명과 경로를 설정하고 save 를 하면 파일 저장은 완료가 됩니다.

실행을 시켜보겠습니다.


바탕화면에 위 코드에서 지정한 파일명의 파일이 생성되었습니다.

확인을 해 보니 처음 이미지에서 서명부분이 'white' 로 이쁘게(?) 자리 잡고 있네요.

이미지만 보면 아래와 같이 깔끔하게 나타납니다.


맺음말


지금까지 이미지에 서명을 넣는 방법을 알아 보았습니다. 이미지 툴을 사용하여 위와 같은 효과를 구현할 수도 있지만, 위와 같은 코딩을 통해 그 방법을 응용해 본다면 보다 간단하게 자신만의 편리한 도구를 만들어 사용할 수 있을 것입니다. 서명의 위치를 이미지 파일의 이미지에 맞게 동적으로 자동으로 위치하게 만들고, 여러장의 이미지에 동시에 서명할 수 있게 하는 코딩을 위해 위의 코드들을 조금 수정해 보시기 바랍니다.