일러스트레이터 자동화 스크립트 - .ai 파일을 JPG로 일괄 변환

요즘 일러스트레이터 버전에서는 이런게 지원되는지 모르겠는데, 간혹 필요하시다는 분들이 있어서 다시 올립니다.  특정한 폴더 내의 모든 일러스트레이터 파일을 자동으로  JPG로 변환하여 다른 폴더에 저장해주는 스크립트입니다.

파일 다운로드 링크 : https://app.box.com/s/nefi9wjejb2jnsgfsh848abmiog7hvqz

사용방법

  1. 다운로드 받은 파일을 압축을 풀어둡니다.
  2. 일러스트레이터를 실행합니다.
  3. File > Script > Other Scripts… 를 선택하여 압축을 풀어서 나온 스크립트 선택
  4. 원본 .ai 파일들이 들어있는 폴더를 묻는 대화상자가 나옵니다. 원본 파일 폴더를 선택합니다.
  5. jpg 파일을 저장할 폴더를 묻는 대화상자가 나옵니다. 대상 폴더를 선택합니다.
  6. 자동으로 한 개씩 파일이 열리며 jpg 파일로 저장합니다. 저장되는 파일 이름은 원본 파일과 같은 대신에 .jpg 로 끝나게 됩니다.

예전에 작성했던 코드가 워낙에 엉망이어서 정리를 좀 했고,원본 파일명에 한글 등이 들어있는 경우에 경고 박스가 뜨면서 동작이 중지되는 문제를 해결했습니다.
참고로 실행중에는 상당히 많은 메모리를 쓰는데, 이 때 일러스트레이터를 최소화 시키면 메모리 부족으로 중단될 수 있습니다.그리고 원본 파일이 1000개를 넘는 경우에 중간에 일러스트레이터가 자동으로 꺼졌다가 재시작할 수 있습니다.
아래는 소스코드.


// 지정한 폴더내의 모든 .ai 파일을 JPG 파일로 변환하여 일괄 저장한다.
// coded by sooop – 2017.07.12
// 파일이름에 한글이 들어있더라도 경고를 표시하지 않는다.
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
main();
function main(){
var sourceFiles = getSourceFiles();
if(sourceFiles != null){
var targetFolder = Folder.selectDialog("Select destination folder", new Folder('C:/'));
for(var i=0; i<sourceFiles.length; i++){
processFile(sourceFiles[i], targetFolder);
}
}
}
// 원본폴더로부터 처리할 파일의 배열을 리턴하는 함수
function getSourceFiles(){
var sourceFolder = Folder.selectDialog("Select source folder", new Folder('C:/')); // 폴더 지정 대화상자
if(sourceFolder != null){
var sfiles = sourceFolder.getFiles("*.ai");
if(sfiles != null && sfiles.length > 0){
alert(sfiles.length + " AI files found"); // ai 파일의 갯수를 보고한다.
return sfiles;
}
else{
alert("No AI file found. Process canceled."); //ai 파일이 없으면 장난치냐며 작업 종료.
}
}
return null;
}
// 파일 하나를 처리하는 함수
function processFile(aFile, destinationFolder) {
if(destinationFolder == undefined){
destinationFolder = Folder.selectDialog("Select destination folder", new Folder('C:/'));
}
var currentDoc = app.open(aFile, DocumentColorSpace.RGB);
var savingOptions = (function (){
var opts = new ExportOptionsJPEG();
opts.antiAliasing = true; //안티앨리어싱 적용
opts.artBoardClipping = false; //대지에 맞게 자르기 안함
opts.blurAmount = 0.0; //블러 없음
opts.qualitySetting = 100; //퀄리티는 100으로 (기본값이 30)
//opts.horizontalScale = 100; //가로크기지정
//opts.verticalScale = 100; //세로크기지정
return opts;
})();
var targetFile = makeFilePath(currentDoc.name, destinationFolder)
currentDoc.exportFile(targetFile, ExportType.JPEG, savingOptions);
currentDoc.close(SaveOptions.DONOTSAVECHANGES);
}
function makeFilePath(title, path){ //문서의 이름과 목적폴더를 파라메터로 받음
var newName = title.substring(0,title.lastIndexOf('.')) + '.jpg';
return new File(path + '/' + newName);
}

 

Read more

워드프레스에서 고스트로 이전

워드프레스에서 고스트로 이전

이 글을 쓰면서도 믿기 힘든 사실인데, 블로그라는 걸 처음 시작한지가 20년이 되었습니다. 이글루스에서 처음 시작했다가, SK컴즈가 인수한다고 발표함과 동시에 워드프레스로 플랫폼을 옮겼죠. 워드프레스오 옮긴 이후에는 호스팅 환경을 이리 저리 옮기긴 했지만 거의 18년 가까이 워드프레스를 사용해온 것 같습니다. 그 동안 워드프레스는 블로깅 툴에서 명실상부한 범용CMS로 발전했습니다. 사실 웬만한 홈페이지들은 이제

By sooop
띄어쓰기에 대한 생각

띄어쓰기에 대한 생각

업무 메일을 쓸 때 가장 많이 쓰는 말 중에 하나가 메일 말미에 ‘업무에 참고 부탁 드립니다.‘인데요, 어느 날부터 아웃룩에서 이 ‘부탁 드립니다’가 틀렸다고 맞춤법 지적을 하기 시작했습니다. 맞는 말은 ‘부탁드립니다’라고 붙여 쓰는 거라고. 사실 아래아한글 시절부터 이전의 MS워드까지, 워드프로세서들의 한국어 맞춤법 검사 실력은 거의 있으나 마나 한

By sooop

구글 포토에서 아이클라우드로 탈출한 후기

한 때 구글 포토가 백업 용량을 무제한으로 제공해 주겠다고해서, 구글 포토를 사용해서 사진을 백업해왔습니다. 물론 이 이야기의 결말은 저나 이 글을 읽고 있는 여러분이나 모두 알고 있습니다. 사실 AI에게 학습 시킬 이미지 데이터를 모으기 위한 것일 뿐이라거나 하는 이야기는 그 당시에도 있었습니다만, 에이 그래도 구글인데 용량은 넉넉하게 주겠지…하는 순진한

By sooop

Julia의 함수 사용팁

연산자의 함수적 표기 Julia의 연산자는 기본적으로 함수이며, 함수 호출 표기와 같은 방식으로 호출하는 것이 가능합니다. 또한 그 자체로 함수이기 때문에 filter(), map() 과 같이 함수를 인자로 받는 함수에도 연산자를 그대로 적용하는 것이 가능합니다. 특히 + 연산자는 sum() 함수와 같이 여러 인자를 받아 인자들의 합을 구할 수 있습니다. 2 + 3 # = 5 +(2,

By sooop