무료 매크로 프로그램 다운로드
http://ngmsoftware.com/bbs/board.php?bo_table=product1&wr_id=32
엔지엠소프트웨어
엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.
www.ngmsoftware.com
#매크로 #매크로프로그램 #메크로 #g매크로 #마우스매크로 #키보드매크로 #엑셀매크로 #키매크로 #수강신청매크로 #로지텍마우스매크로 #매크로키보드 #파이썬매크로 #매크로뜻 #매크로마우스 #로지텍매크로 #ld플레이어매크로 #오토마우스매크로 #키보드마우스매크로 #오토핫키매크로 #이미지매크로 #이미지인식매크로 #하드웨어매크로 #화면인식매크로 #선착순구매매크로 #이미지서치매크로 #한글매크로
안녕하세요. 엔지엠소프트웨어입니다. 여러분들도 인스타그램(Instagram) SNS를 하시는지는 모르겠지만~ 이미지를 편집하는 일은 단순 노가다성 작업입니다. 반복적인 단순 작업들은 매크로를 만들기가 그렇게 어렵지는 않습니다. 물론, 개발자에게 그렇다는 뜻입니다. 비개발자 또는 일반인이 아이디어는 있을지라도 이걸 프로그래밍으로 구현하기란 쉽지 않은 일입니다. 수백, 수천장의 이미지를 하나씩 처리하는건 비효율적인데요. 이걸 프로그램으로 어떻게 처리하는지 알아보도록 할께요. Visual Studio Code를 실행하세요. 그리고, insert_logo.py 파일을 하나 생성해줍니다. 이미지를 처리하고, 저장하기 위해 아래와 같은 패키지들이 필요합니다.
import os
from PIL import Image
os 패키지는 윈도우 관련 함수들을 제공합니다. 이미지를 저장할 폴더를 만들거나 인스타그램 업로드용 이미지 파일에 로고를 추가하고, 저장할 폴더를 만듭니다. 원본 파일에 덮어쓰지 않아야겠죠? Image 패키지는 이미지를 불러와서 편집하고 저장할 때 사용하는 패키지입니다. 파이썬은 수많은 패키지들을 제공해줍니다. 업무 또는 상황에 맞는 패키지들을 잘 사용하는게 핵심입니다. 아래와 같이 인스타그램에 업로드할 이미지가 들어있는 폴더를 설정하세요. 그리고, 이 이미지들에 추가할 로고 파일 위치도 변수로 선언 해줍니다.
import os
from PIL import Image
# 사진이 저장된 폴더명 위치입니다.
directory = "C:\Users\ngmas\Desktop\instagram"
# 사진에 삽입할 로고 파일의 위치입니다.
logo_filename = "C:\Users\ngmas\Desktop\logo.png"
원본 이미지를 편집하지 않고, 로고가 추가된 새로운 이미지를 만들겁니다. 아래와 같이 로고가 추가된 이미지를 저장할 폴더를 만들어줍니다.
# 결과물을 저장할 폴더를 생성합니다.
out_dir ="C:\Users\ngmas\Desktop\instagram_result"
if out_dir not in os.listdir():
os.mkdir(out_dir)
이미지 파일 목록을 input_files 변수에 저장하고 로고 파일도 불러옵니다. 그리고, 로고 파일의 크기를 logo_x, logo_y 변수에 각각 저장 해줬습니다. 이 변수들은 원본 이미지와 로고를 합칠 때 어떤 비율로 처리할지 계산할 때 사용됩니다. 이건 각각의 취향 부분이라서 적절하게 조정해주시면 좋을거 같네요.
# 폴더의 내용물을 열람해 목록을 생성합니다.
input_files = os.listdir(directory)
# 로고 파일을 불러옵니다.
logo = Image.open(logo_filename)
logo_x, logo_y = logo.size
인스타그램에 업로드할 이미지가 들어있는 폴더의 파일을 하나씩 순차적으로 처리해줍니다. 이런 순차적인 반복 처리는 for를 사용합니다. 혹시라도, 이미지가 아닌 파일이 폴더에 섞여 있는 경우가 있을 수 있습니다. 핸드폰으로 촬영하는 경우 이런일이 잘 없지만, 디지털 카메라를 사용하면 간혹, 리눅스용 임시 파일 또는 정보 파일들이 딸려오는 경우가 있습니다. 에러를 발생시킬만한 요소는 미리 제거 해줍니다.
# input_files에 저장된 파일 이름을 하나씩 처리하기 위해 for 반복기를 사용했습니다.
for filename in input_files:
# 그럴일은 없겠지만~ 혹시라도 이미지 파일이 아닌것들이 포함되어 있는지 체크합니다.
exp = filename.strip().split('.')[-1]
if exp not in "JPG jpg JPEG jpeg PNG png BMP bmp":
continue
# 이미지를 불러옵니다.
image = Image.open(directory + "/" + filename)
# 이미지의 크기를 알아냅니다.
Xdim, Ydim = image.size
# 로고 파일을 이미지에 맞게 적당히 확대/축소합니다.
if logo_x / Xdim > logo_y / Ydim:
# 로고의 x축 길이를 이미지의 x축 길이의 1/5로 조절합니다.
new_logo_x = int(Xdim/5)
new_logo_y = int(logo_y * (new_logo_x / logo_x))
else:
new_logo_y = int(Ydim / 5)
new_logo_x = int(logo_x * (new_logo_y / logo_y))
# 이미지 크기에 맞게 축소/확대된 로고입니다.
resized_logo = logo.resize((new_logo_x, new_logo_y))
# 입력 받은 사진에 로고를 삽입합니다.
# 여백을 2%정도 주었습니다.
image.paste(resized_logo, (int(Xdim/50), int(Ydim/50)), resized_logo)
# 변경된 이미지를 저장합니다.
image.save(out_dir + "/" + filename)
# 이미지를 닫아 줍니다. (이 부분을 빼먹으면 메모리 릭이 발생합니다.)
image.close()
파이썬 스크립트를 실행하고 결과를 확인 해보세요. 원본 폴더에는 아래와 같이 이미지가 들어 있습니다.
실행한 후 결과는 아래와같이 엔지엠소프트웨어 로고가 삽입된걸 확인할 수 있습니다.
아래는 로고 파일입니다.
간단하죠? 몇줄의 코딩으로 특정 폴더의 수많은 이미지를 간단하게 처리할 수 있습니다.
[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]
원본 글 보기
http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech
엔지엠소프트웨어
엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.
www.ngmsoftware.com
#비활성매크로 #g102매크로 #철권매크로 #레이저마우스매크로 #ghub매크로 #녹화매크로 #키보드반복매크로 #로지텍마우스광클매크로 #플라스크매크로 #윈도우매크로 #비활성g매크로 #오토매크로 #자동사냥 #주식매크로 #오토핫키키보드 #오토핫키마우스 #오토핫키이미지 #지존오토 #기계식매크로 #하드웨어매크로 #무한반복매크로 #대량이메일발송매크로 #엑셀VBA매크로 #주식모니터링매크로 #이미지맥스 #심플핫키 #오토클리커 #UiPath #Brity #스푸퍼 #DKOM #모바일게임매크로 #다클라매크로 #다계정매크로 #인스타그램매크로
댓글