현재 수만 개의 png 파일 크기를 조정해야하는 개인 프로젝트를 진행하고 있습니다. 나는 스크립팅, PS 또는 프로그래밍에 대해 거의 아무것도 모른다 (나는 그래픽 아티스트이다)
이미지 크기를 조정하는 ImageResizer 라는 소프트웨어를 사용하고 있습니다.
이 소프트웨어에는 명령 줄 매개 변수가 있습니다. 내가 사용하는 매개 변수는 다음과 같습니다
/resize auto "XBR 2x <NoBlend>"
내 이미지를 가져 와서 xBRx2 알고리즘을 사용하여 크기를 두 배로 늘립니다. 필요한 것은이 출력입니다.
사실, 소프트웨어의 Github에서 가져온 배치 파일이 있는데, 필요한 작업을 정확히 수행하지만 단일 이미지에 대해서만 수행합니다. 이것은 참조 용입니다.
@echo off
for %%F in (Input*.*) do ImageResizer-r129.exe /load "%%F" /resize auto "XBR 2x <NoBlend>" /save "Output\%%~nF%%~xF"
여기 내 딜레마가 있습니다. 내가 언급했듯이 나는 수만 개의 이미지를 가지고 있습니다. 그리고 당신은 "글쎄, cmd는 그렇게 할 수있다"고 생각할지도 모른다
제외하고,이 pngs는 다소 광범위한 하위 디렉토리 레이아웃에 중첩되어 있습니다 ... 내 출력 폴더는 필요한 것과 작동하기 위해 입력과 동일한 하위 디렉토리 레이아웃을 유지해야합니다.
그래서 내가 더 필요한 것을 설명하기 위해 ...
INPUT 폴더가 있습니다. 이 폴더에는 여러 개의 하위 폴더가 있습니다. 그리고 각 폴더에는 더 많은 폴더가 있습니다. 얼마나 멀리 가고 있으며 폴더 이름이 다릅니다. 결국, 각 '지점'의 끝에는 내 소프트웨어가 처리해야하는 내 png가 있습니다.
따라서 입력 폴더는 다음과 같습니다.
L 입력
L_ 치즐
L__ 텍스처
L___ 항목
L____ one.png
L____ two.png
L___ 모델
L____ one.png
L____ two.png
L_ 아티팩트
L__ 텍스처
L___ 항목
L____ groupOne
L_____ one.png
L_____ two.png
L____ groupTwo
등
내 예에서 알 수 있듯이 균일 한 명명 구조가 없으며 스크립팅에 대해 아는 바가 거의 없으므로 모든 PNG를 가져 오기 위해 재귀 스위치가 필요합니다.
이 입력 폴더의 모든 PNG는 내 매개 변수와 함께 ImageResizer.exe를 통과해야합니다.
그런 다음 처리 된 PNG는 SAME 하위 디렉토리 레이아웃을 입력으로하여 출력 폴더로 출력해야합니다.
따라서 Input / chisel / textures / items / one.png 는 / save to Output / chisel / textures / items / one으로 저장해야합니다. 입력 폴더의 모든 png에 대해 .png 등이 있습니다.
또는 스크립트가 입력 폴더에서 원본 이미지를 덮어 쓸 수 있습니다. 어느 쪽이든 같은 목표를 달성합니다.
내 현재 작성했던 PS 스크립트는 다음과 같습니다. http://pastebin.com/fveGJkRJ
이렇게 처리해야하는 약 18,000 개의 png가 있으므로 도움을 주셔서 감사합니다. 배치 스크립트를 반복해서 복사하여 붙여 넣기 시작하여 각 입력 및 출력을 각 파일 경로로 바꾸었지만 너무 많은 시간을 소비했습니다.