이상한 MYPI

이상한
접속 : 6957   Lv. 113

Category

Profile

Counter

  • 오늘 : 5 명
  • 전체 : 8369294 명
  • Mypi Ver. 0.3.1 β
[공부 - PG] 사진에 글자 넣기 자동화 처리 (6) 2022/01/30 AM 12:49
동기 :
유튜브 보고 재밌는거 유게에 올리는게 최근 취미가 되어서
영상 캡쳐한 후 자막을 넣다보니.. 장수가 늘어나면서 꽤나 노동이 되고 있다는게 느껴짐

작업분석 :
영상 보고 재밌는 포인트 확인 -> 캡쳐 ->번역 ->
[그림툴을 이용해 번역 문구 삽입 및 편집] -> 게시물 작성
가장 많은 시간이 드는 그림툴 편집을 자동화 하기로 결정

목표 :
1. 다중 레이어가 되는 이미지 파일로 후 수정을 쉽게 한다
2. 입력 하는 문자의 폰트는 필요에 따라서 다르게 입력 가능하게 한다
3. 정보값은 JSON파일에 적어두는 방식으로 한다

과정 :
●툴은 Krita를 주로 썼으니 kra파일로 저장하는 방법을 연구
→Krita내에 파이썬 스크립트를 지원하기에 할용하기로 작정
→조사 결과 이미지툴의 디테일한 처리가 불가능 하다는걸 확인(이거는 내가 못 찾은 것일 수도 있음)
→Krita kra는 결국 포기

●Openraster라는 오픈소스 계열 ora파일 포멧 조사
→PSD파일을 표준을 하는 업계에 특정 기업의 포멧을 표준화 시키는 것을 우려해 만든 포멧
→오픈오피스 포멧을 표준화를 위해 노력하는 것과 비슷하지만 성과는 거의 없는 듯함
→그래픽은 툴마다 기능이 전혀 다른데 표준화 시키기에는 문서보다 더욱 어려울 듯 함
→몇 년 전부터 프로젝트는 더 이상 진전이 없어 보임 라이브러리도 미비함
→더 중요한 건 내가 쓰는 툴 중에 완전히 지원하는 게 없어 보이므로 이것도 포기

img/22/01/30/17ea6735a24224d0.jpg

위키에서 찾은 지원표

제작 목표로 SVG까지 완전히 지원하지 않으면 안되지만 더 이상 발전은 어려워 보임


●Gimp밖에 답이 없어보임
→라이브러리 검색해보니 C#이 보이길레 사용하기로 마음 먹음
→Wraper로 보이는데 옛날에 중단된 프로젝트라 MONO로 만들어짐
→요즘 시대에 왠 MONO냐 하면서 역시 포기
→공식적으로 프로그램 Python과 Lisp을 지원하니 결국 Python으로 하는 걸로 결정
→Lisp은 해본 적도 없으니까;;;

이번에도 반나절 이걸 짜고 있었네요;;;
휴일에 이걸 하니 현타가 와서 집중이 안되는데 겨우 프로토타입버전 만들었음;;


img/22/01/30/17ea679a92e224d0.jpg
Json파일은 Libre Office Calc로 입력하게 함수 대충 박아 넣음


img/22/01/30/17ea679aad1224d0.jpg
전에 화면 캡쳐해서 이미지 폴더에 있는거 대충 테스트용으로 박음




img/22/01/30/17ea686417d224d0.jpg
소스는 주석 빼면 약 60줄 정도 나온 듯



덕분에 Python-fu같은게 있는 줄 알았으니 됐나;



문제는 사진에 텍스트 박을 때 텍스트에 아웃라인 없으면 가독성이 엄청 떨어져서

아웃라인 수정하는 스크립트 또 짜야함...

Krita는 텍스트 유지하면서 아웃라인 넣을 수 있는데 Gimp는 안됨...

그래서 이번 작업에 아웃라인 소스는 빠짐...

그래서 처음부터 Krita로 하고 싶었는데;;;

신고

 

잎사귀소년    친구신청

파이썬만 쓰시는 거면, PIL만 쓰셔도 되지 않나요??

제가 게임 이미지 만든다고 파이썬으로 이미지 다룰때, 글씨 직접 넣는걸 기준으로 PIL이 가장 쉬웠습니다.

이상한    친구신청

이미지 툴로 후처리 할수 있도록 다중 레이어를 원했으니까요...
가능한가요?

잎사귀소년    친구신청

import PIL.Image as Image

font = ImageFont.truetype('폰트', 14)
image = Image.open('원본이미지.png')
d = ImageDraw.Draw(image ) #image에다가 그릴꺼야
d.text( ( 14, 11 ), '텍스트', fill=(255,255,0), anchor='mm', font=font, stroke_width=2, stroke_fill=(85,85,170) )
#text( (x,y좌표), 텍스트, fill='white'(글자색), anchor=글자의앵커조정, font=위에선언한폰트사용, 스트로크옵션(외곽선)

image.save('저장할이미지.png')

잎사귀소년    친구신청

for문으로 파일을 돌려서, json으로 텍스트를 받아와서 넣고, 바로 저장하시면 될 듯합니다.
엄청 디테일하게 하실게 아니시라면, PIL도 괜찮습니다.

라고 쓰는 와중에, 다중레이어가 나왔네요ㅠㅠ... 다중레이어 작업은 안되지 않을까요??

이상한    친구신청

이번 목표가 필요할 때 마우스로 포지션 수정할려고 한거여서요;;
아무튼 리플 감사합니다..

숏코딩빌런    친구신청

먼지 몰겟지만 개쩜
동영상으로 뭐가 어떻게 동작하는건지 보여주면 더 좋겟어요
X