Чи можна вказати ширину в пікселях для кількох об'єктів одночасно в Illustrator CS5?


17

Illustrator має діалогове вікно "Перетворити кожного", але воно дозволяє лише масштабувати кілька об'єктів, вказавши відсоток.

Чи є спосіб вказати розмір у пікселях?

Більш конкретно, уявіть, що у мене на полотні є 10 прямокутників, і я хочу, щоб вони були певної висоти. Порядок і положення смуги на полотні мають значення, тому я не можу зробити трюк "вертикальне вирівнювання до верху, а потім зміни розміру групи" - їх потрібно змінити на місці.

Відповіді:


11

Існує сценарій для цього дивовижного Джона Вундеса (немає приналежності).

Він називається Встановити всі речі , пояснені тут , і дозволяє встановлювати ширину та висоту для вибраних об'єктів.

введіть тут опис зображення

Він також може встановити цілу купу інших значень для вибраних елементів, якщо ви знаєте назви для них (або, якщо ви шукаєте їхні імена в посібнику сценаріїв ілюстраторів чи в цьому пов'язаному дописі блогу).

Ось пряме посилання для завантаження , і якщо з якоїсь причини це посилання розривається або стає недоступним, ось поточний (жовтень 2012 р.) Код скопійований та вставлений, включаючи корисні примітки Джона вгорі та оригінальне повідомлення про авторські права, додане в кінці. Він говорить, що CS-CS4, але у мене він працював чудово у CS5 та CS6. Всі кредити, права тощо на Джон Вундеса.

/////////////////////////////////////////////////////////////////
//  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 Help , цього немає.

Ви не можете ввести конкретну ширину для масштабування кількох об'єктів. У Illustrator ви можете масштабувати об'єкти лише у відсотках.


Я плачу ... Чому Adobe ?! У мене є багато кіл різного розміру, які повинні бути однакового розміру. Як ще можна обійтися без такого варіанту?
A. Vieira

0

Якщо всі об’єкти насправді є зображеннями, спочатку знайденими в деякому каталозі, ви можете спочатку змінити їх розмір за допомогою Imagemagick:

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

Це змінює розмір усіх png-файлів у поточному каталозі до 80px ширини та записує їх у temp_dirкаталог.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.