이미지 리사이즈·압축·최적화를 온라인으로 검색하는 게 지겨워 CLI를 만들었습니다
Source: Dev.to
매번 이미지를 일괄로 크기 조정하거나 메타데이터를 제거하고 WebP로 변환해야 할 때마다 같은 루틴에 빠집니다: 구글에 “resize image online”을 검색해 사이트를 고른 뒤 사진을 업로드합니다(혹시 그들이 사진을 계속 보관할까 우려). 다운로드 대기 후 다시 시작합니다. 혹은 GIMP을 열거나, 내일은 사라질 또 다른 10줄짜리 Pillow 스크립트를 작성합니다.
그래서 저는 ImageX를 만들었습니다. 가장 어리석고 단순한 도구입니다:
pip install imagex
cd ~/Pictures # Python가 설치되어 있으면 크로스플랫폼으로 동작합니다
imagex
메뉴가 뜨고 원하는 옵션을 선택하면 끝입니다. 업로드도 없고 광고도 없으며 프리미엄 업셀도 없습니다.
회전, 크기 조정, 변환, 압축, 워터마크, 메타데이터 제거, 일괄 이름 바꾸기, 노이즈 추가. 이 기능만으로도 내가 필요로 하는 대부분의 작업을 해결합니다.
각 기능은 폴더 안에 별도의 .py 파일로 구현됩니다. NAME, DESCRIPTION와 run() 함수를 추가한 새 파일을 넣어두면 자동으로 메뉴에 표시됩니다. 그게 전부입니다.
NAME = “Rotate” DESCRIPTION = “이미지를 90° 왼쪽, 90° 오른쪽 또는 180° 회전합니다.”
def run(file, output_path, args): img = Image.open(file) rotated = img.transpose(args[“method”]) rotated.save(output_path) return True
20줄 정도 추가했습니다. 설정도 없고 등록도 없으며 보일러플레이트도 없습니다.
오픈 소스 PR을 만들고 싶었던 적이 있다면 이것은 좋은 시작점이 됩니다. 코드베이스는 작고 순수 파이썬 + Pillow이며 프레임워크나 빌드 시스템도 없습니다. 기능을 추가하려면 파일 하나만 쓰면 됩니다. 자동 색보정? 블러? 테두리? 사이드바 병합? 가능합니다.
GitHub: github.com/kushal1o1/ImageX
PyPI: pip install imagex
레포에 CONTRIBUTION.md가 있어 빠른 시작 가이드가 있습니다. PR은 환영합니다. 20줄 정도의 기능만 추가해도 충분합니다.