Illustrator CS5에서 여러 객체의 너비를 동시에 픽셀 단위로 지정할 수 있습니까?


17

Illustrator에는 '각기 변형'대화 상자가 있지만 백분율을 지정하여 여러 객체의 크기 만 조정할 수 있습니다.

크기를 픽셀 단위로 지정하는 방법이 있습니까?

보다 구체적으로, 캔버스에 10 개의 직사각형이 있고 모두 특정 높이를 원한다고 가정합니다. 캔버스의 막대 순서와 위치가 중요하므로 '세로를 수직으로 정렬 한 다음 그룹 높이 크기 조정'트릭을 수행 할 수 없으므로 크기를 조정해야합니다.

답변:


11

존 존스 ( John Wundes) 의 훌륭한 스크립트가 있습니다 .

여기설명 된대로 모두 설정 이라고 하며 선택한 객체의 너비와 높이를 설정할 수 있습니다.

여기에 이미지 설명을 입력하십시오

선택한 항목의 이름을 알고 있거나 Illustrator 스크립팅 안내서 또는 링크 된 블로그 게시물에서 해당 이름을 찾은 경우 선택한 항목에 대해 다른 많은 값을 설정할 수도 있습니다 .

여기에는 직접 다운로드 링크가 있으며, 어떤 이유로 링크가 끊어 지거나 사용할 수없는 경우 맨 위에있는 John의 유용한 참고 사항과 끝에 추가 된 원래 저작권 표시를 포함하여 복사하여 붙여 넣은 현재 (2012 년 10 월) 코드가 있습니다. CS-CS4라고하지만 CS5 및 CS6에서 제대로 작동했습니다. 존 Wundes에 대한 모든 신용, 권리 등.

/////////////////////////////////////////////////////////////////
//  Set All The Things v.1.2 -- CS,CS2,CS3,CS4
//>=--------------------------------------
// Wanna Batch Transform objects?  Illustrator has built in tools to resize each selected item, 
// but only by percentage, not by hard values. I made this script because I could find no
// native way to set the width of all selected objects to 100px at once.
//
// This script can accept multiple parameters at once.
// To change, for instance, both width and height at the same time, 
// at the 'attributes' prompt, enter <b>width,height</b>
// then at the 'values' prompt, enter a comma separated value list like <b>20,30</b>
//  If a single value is passed for 'values', that value will be applied to all chosen properties. 
//
// Common legal parameter names include, but are not limited to: <b>width,height,top,left</b>.
// Install and use <a href='http://wundes.com/JS4AI/#explore.js'>explore.js</a> on an object to see what other properties can be set.
//  
// Update: Based on feedback from user Jode, You are now given the option to transform objects from center. 
// You can now also use whatever standard units you like and the script will convert them into pixels.
//  e.g., you can enter "30mm" or "12in" and the script will know what you mean.
//  v1.2 adds decimal support and explicit 'px' and 'pt' units to the regex. (thanks to Cristofer Cruz for noticing the bug)
//>=--------------------------------------
// JS code (c) copyright: John Wundes ( john@wundes.com ) www.wundes.com
//copyright full text here:  http://www.wundes.com/js4ai/copyright.txt
////////////////////////////////////////////////////////////////// 
var centerObjects= false;
function main(){
    var item,center_point;
    var toPixels=function(v){

    var units={
                        'in':72,
                        'mm':2.8346455078125,
                           'px':1,
                           'pt':1,
            },re = /(\d*[.]*\d+)(mm|in|ft|cm|px|pt)/i,m,u,rep;
        //derivitave
        units['cm'] = units['mm']*10;
        units['ft'] = units['in']*12;

        while(m=v.match(re)){
            u = m[2].toLowerCase();
            if (units[u]){
                rep = (m[1]*units[u]);
                v = v.replace(re,rep);
            }
        }
        return v;
    }

    var trace = function (m){alert(m)};
    if(activeDocument == null){trace("No open document found. Please open a document.");return;}
    if(activeDocument.selection.length == 0){trace("Nothing selected. Please select one or more items.");return;}
    var i = prompt("What attribute(s) do you want to set?","width,height");
    if( i===null ){return false;}
    var v = prompt("What value(s) do you want to assign?","100,50");
    if (v === null ){return false;}
    centerObjects=confirm("Transform Objects around center?");
    v=toPixels(v);
    // here's where we walk through all objects.
    var assign = function (i,v){
        for (var x=0 ; x < activeDocument.selection.length ; x++){

                item = activeDocument.selection[x];
                //get top and left width and height values
                center_point = [item.top-(item.height/2),item.left+(item.width/2)];

            item[i] = eval(v);
            //redraw();
            if(centerObjects){
                //center_point = [item.top+(item.height/2),item.left+(item.width/2)];
                item.top = center_point[0] + (item.height/2);
                item.left = center_point[1] - (item.width/2);
            }
        };
    }
    if(  i.indexOf(',') !== -1){  i =  i.split(',');}
    //split if a list, but not if function is found.
    if( v.indexOf(',') !== -1){ v = v.split(',');}

    if(typeof i !== "string")
    {
        for ( var len=i.length,c=0;c<len;c++)
        {
            assign(i[c],typeof v !== 'string' ? v[c] : v);
        }
    } else
    {
        assign(i,v);
    }
    redraw();
    return true;

}
main();

/*-
 * Copyright (c) 2005 wundes.com
 * All rights reserved.
 *
 * This code is derived from software contributed to or originating on wundes.com
 *
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *        This product includes software developed by wundes.com
 *        and its contributors.
 * 4. Neither the name of wundes.com nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY WUNDES.COM AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

2

Adobe 도움말 에 따르면 그렇지 않습니다.

여러 객체의 크기를 조정하기 위해 특정 너비를 입력 할 수 없습니다. Illustrator에서는 백분율 측정으로 만 객체의 크기를 조정할 수 있습니다.


울고 ... 왜 어도비?! 같은 크기 여야하는 크기가 다른 원이 많이 있습니다. 그러한 옵션없이 어떻게 할 수 있습니까?
A. Vieira

0

모든 객체가 실제로 일부 디렉토리에서 찾은 이미지 인 경우 먼저 imagemagick을 사용하여 크기를 조정할 수 있습니다.

mkdir -p temp_dir
mogrify -resize 80x -path temp_dir *.png

현재 디렉토리의 모든 png 파일 크기를 80px로 조정하여 temp_dir디렉토리에 씁니다 .

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