Python Pillow로 스크롤 테스트용 이미지 생성하고 iOS 시뮬레이터에 순서대로 넣기

viiviii·2022년 9월 21일
0
post-thumbnail

iOS 시뮬레이터에 스크롤 테스트용 이미지를 넣고싶은데 노가다가 귀찮다.

Pillow로 이미지 생성하기

from PIL import Image, ImageDraw, ImageFont

# setting
image_size = (500, 500)
xy = tuple(n / 2 for n in image_size)
grey = (146, 146, 146)
font_path_mac = "/System/Library/Fonts/Helvetica.ttc"
font_size = 250


def make_image(s: str):
    img = Image.new("RGB", size=image_size, color=grey)
    font = ImageFont.truetype(font_path_mac, font_size)
    d = ImageDraw.Draw(img)
    d.text(xy, text=s, font=font, anchor="mm")
    img.save(f'{s}.jpg')


if __name__ == '__main__':
    for i in range(1000):
        make_image(f'{i}')
  • anchor는 텍스트 정렬인데 글자 순서대로 수평, 수직 정렬을 나타내서 mm으로 해봤음(m=middle)

ios simulator에 순서대로 넣기

  • 문제
    • 이미지들을 드래그&드랍 방식으로 옮기면 순서가 보장되지 않는다.
    • pillow 6.0부터 추가된 exif로 생성 시간 등을 저장해봤으나 mac은 정렬 시 exif 데이터를 사용하지 않고 파일의 추가된 날짜Date Added를 사용하며 이 값은 어딘가에서 DB로 저장되어 관리되는 듯 했음

그래서 파일명 순으로 이동시키기 위해 커맨드 명령어로 루프를 돌아서 이동시켰음

for img in $(ls *.JPG | sort -n); do xcrun simctl addmedia booted $img; done
  • ls *.JPG | sort -n
    • 해당 파일이 있는 곳에서 모든 JPG를 파일 이름의 숫자 기준으로 정렬해서 가져옴(zero padding 등 처리 되어있으면 sort -n 필요없음)
  • xcrun simctl addmedia booted $img
    • xcrun simctl - 커맨드라인으로 simulator에게 명령
    • addmedia - 사진, 비디오, 연락처 등을 디바이스에 추가
    • booted - 현재 실행중인 시뮬레이터

기타


참고 링크

0개의 댓글