Illustrator 레이어를 개별 이미지로 내보내는 방법은 무엇입니까?


15

패턴이 포함 된 Illustrator 파일이 있습니다. Sketch라고하는이 새로운 프로그램에서 사용할 수 있도록 각 패턴을 개별 이미지로 내보내고 싶습니다. 레이어를 PNG 또는 SVG로 내보내는 일괄 처리 스크립트가 있습니까? 하나의 큰 파일이 아니라 PNG로 사용할 수있는 각 기하학적 패턴을 갖고 싶습니다.

이견있는 사람?

png

답변:


14

패턴이 실제로 개별 레이어에있는 경우 스크립팅을 사용하여 각 레이어를 개별 png로 내보낼 수 있습니다.

Carlos CantoIllustrator 용 스크립트를 작성 하여 Adobe 포럼에 게시했습니다.

링크 썩음의 경우 Carlos의 스크립트는 다음과 같습니다.

#target Illustrator

//  script.name = exportLayersAsCSS_PNGs.jsx;
//  script.description = mimics the Save for Web, export images as CSS Layers (images only);
//  script.requirements = an open document; tested with CS5 on Windows. 
//  script.parent = carlos canto // 05/24/13; All rights reseved
//  script.elegant = false;


/**
* export layers as PNG
* @author Niels Bosma
*/
// Adapted to export images as CSS Layers by CarlosCanto


if (app.documents.length>0) {
    main();
}
else alert('Cancelled by user');


function main() {
    var document = app.activeDocument;
    var afile = document.fullName;
    var filename = afile.name.split('.')[0];


    var folder = afile.parent.selectDlg("Export as CSS Layers (images only)...");


    if(folder != null)
    { 
        var activeABidx = document.artboards.getActiveArtboardIndex();
        var activeAB = document.artboards[activeABidx]; // get active AB        
        var abBounds = activeAB.artboardRect;// left, top, right, bottom


        showAllLayers();
        var docBounds = document.visibleBounds;
        activeAB.artboardRect = docBounds;


        var options = new ExportOptionsPNG24();
        options.antiAliasing = true;
        options.transparency = true;
        options.artBoardClipping = true;

        var n = document.layers.length;
        hideAllLayers ();
        for(var i=n-1, k=0; i>=0; i--, k++)
        {
            //hideAllLayers();
            var layer = document.layers[i];
            layer.visible = true;


            var file = new File(folder.fsName + '/' +filename+ '-' + k +".png");

            document.exportFile(file,ExportType.PNG24,options);
            layer.visible = false;
        }

        showAllLayers();
        activeAB.artboardRect = abBounds;
    }


    function hideAllLayers()
    {
        forEach(document.layers, function(layer) {
            layer.visible = false;
        });
    }


    function showAllLayers()
    {
        forEach(document.layers, function(layer) {
            layer.visible = true;
        }); 
    }


    function forEach(collection, fn)
    {
        var n = collection.length;
        for(var i=0; i<n; ++i)
        {
            fn(collection[i]);
        }
    }
}

이 파일을 복사하여 텍스트 파일에 붙여넣고 텍스트 파일을 .jsx 접미사로 저장하십시오. 그런 다음 .jsx 파일을 Adobe Illustrator CS (x) / Presets / [언어] / 스크립트에 넣습니다. Illustrator를 다시 시작한 후 Illustrator File > Scripts내 에서 스크립트를 볼 수 있습니다 .


참고로, 위에 게시 된 스크립트는 Illustrator CC에서 작동하지 않습니다. 오류 8, 구문 오류가 발생합니다. 1 행 :

1
이 스크립트는 Illustrator CC에서 완벽하게 작동합니다.
Scott

2
1 줄에서 구문 오류가 발생했습니다. .jsx를 다시 열 때 위의 코드에서 원래 줄 1 위에 추가 코드가있었습니다. #target Illustrator 위의 모든 항목을 삭제하여 .jsx 파일을 저장했습니다. Illustrator를 다시 시작했으며 이제 스크립트가 제대로 작동합니다. 또한 CC를 사용하고 있습니다

다음은 숫자 카운터 대신 파일 이름에 레이어 이름을 사용하는 업데이트 된 버전입니다 (따라서 "mydoc-1.png"대신 "mydoc-layername.png"). gist.github.com/34e54d199de123b8e3c50a305f23115e
Chris Emerson

5

작업 흐름의 단순성과 속도를 위해 조각 도구를 사용하여 개별 패턴에 대한 조각을 만든 다음 웹에 저장을 클릭하여 "내보내기 :"드롭 다운에서 "모든 조각"을 선택했는지 확인합니다. 처음부터 작성하는 경우 각 패턴을 자체 아트 보드 (여전히 할 수있는)에 놓고 "아트 보드 사용"옵션을 선택한 상태에서 파일> 내보내기를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.