Как получить размер слоя (ширину и высоту)?

У меня есть несколько слоев в документе Photoshop.

Я хочу узнать, какова ширина и высота конкретного слоя. Как я могу это сделать?

Боже мой, как неловко для Adobe, что людям действительно приходится спрашивать эти основные вещи о Photoshop. И еще более смущает то, что как профессиональный пользователь многих других инструментов (даже от Adobe) я и еще 63000 человек должны искать его в Интернете. Adobe явно не дружит с юзабилити.

Ответы (2)

Опция 1.

У меня есть действие, которое делает это:

Cmd+ A, Cmd+ C, Cmd+N

Когда я запускаю это действие, у меня остается New document window. И widthв heightокне размеры изображения буфера обмена = размеры ваших объектов/слоев.

Затем вы можете нажать Esc, чтобы закрыть окно.

(В окнах просто подумайте о том, Cmdкак Ctrl)


Вариант 2.

Вы можете сделать выбор слоя, например, ctrlили cmdщелкнув миниатюру слоя, а затем посмотрев на info panel F8, он покажет вам размеры выделения.

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

В правом верхнем углу, где вы можете видеть стрелку, указывающую вниз, вы можете найти параметры, и там вы можете установить ruler unitпиксели или то, что вы хотите, чтобы оно отображалось.


Вариант 3.

Используйте Free transform Ctrl+ Tи, когда свободное преобразование активно, проверьте, Info panel F8как показано выше. Это работает, даже если объект находится за пределами области документа.


Вот еще один ответ, который немного связан: Как измерить расстояния в .psd

Особенно нижняя часть ответа, в которой перечислены методы экспорта стилей слоя в виде css, включая, конечно, ширину и высоту.

Я пробовал все ваши методы, но кажется, что все они могли выдавать только размер документа (размер холста?), а не размер определенного слоя (у меня был выбран этот конкретный слой)
@ Philip007 Вы уверены, что ваш слой не такого размера, как ваш документ?
Теперь я понимаю, что происходит: «непослушный» слой — это смарт-объект, прежде чем я попытался проверить его размер. Когда слои не превращаются в смарт-объекты, ваши методы полностью работают.
@ Philip007 Ну, я не уверен, что понимаю, что происходит. Эти методы должны быть такими же простыми для измерения смарт-объекта, как и растровый слой. Иногда смарт-объект может быть даже лучше. Например: если к слою применен стиль слоя «Тень», тень не будет включена в размеры. Однако, если вы используете смарт-объект или растрируете стиль слоя, вы сможете измерить слой с включенной тенью.
Спасибо за подсказку с тенью :) Что касается размера, предположим, что слой является смарт-объектом, cmd-Tа cmd-clickминиатюра слоя будет показывать разную ширину и высоту на панели «Информация», при условии, что canvas sizeони smart object sizeдействительно разные. Я не могу вспомнить, что показывает, хотя, вы можете попробовать
@ Philip007 Разве вы не говорили раньше, что все эти методы давали вам размеры документа? Теперь вы сказали, что они не все одинаковые...? :) Угадать вслепую очень сложно.
Вариант № 3 кажется самым быстрым при попытке проверить ширину нескольких вещей для воспроизведения в HTML. Чтобы изменить единицу измерения линейки по желанию, щелкните линейку правой кнопкой мыши (перед использованием transform), и появится меню со всеми параметрами.
Вариант 2 не работает. Info panelне показывает widthи height.
@Green Единственное, о чем я могу думать, это то, что у вас ничего не выбрано. Это может означать, что слой, из которого вы пытались сделать выбор, на самом деле ничего не содержит... или что-то пошло не так. Что, если вы просто возьмете инструмент «Прямоугольное выделение» и сделаете случайный выбор? Показывает ли он размер этого выбора на информационной панели?
@green Убедитесь, что вы Cmdнажимаете на миниатюру слоя , а не на имя слоя.
Йоонас: джентльмен, ученый, художник.
@Joonas, спасатель.

Для тех, кто хочет захватить ширину/высоту одним щелчком мыши и скопировать ее, я создал скрипт (на основе этого ответа ). Вы также можете привязать скрипт к горячей клавише, как описано ниже.


Шаг 1: Сохраните скрипт

Скопируйте приведенный ниже код и сохраните его в файле с именем «getLayerSize.jsx». Если вы используете Блокнот, сохраните файл В двойных кавычках.

function getLayerSizeToCopy(){
    var layer = activeDocument.activeLayer; //Grab the currently selected layer

    // Calculate length and width based on the rectangular bounds of the selected layer
    var length = layer.bounds[2]-layer.bounds[0]; //Grab the length
    var width = layer.bounds[3]-layer.bounds[1]; //Grab the width

    // Remove pixels from the length/width "200 px" => "200"
    length = length.toString().replace(' px', '');
    width = width.toString().replace(' px', '');

    prompt( "Layer Size: ", length + ", " + width );
}
getLayerSizeToCopy();

Шаг 2: Создайте действие

Откройте меню действий, если это еще не сделано (Окно > Действия). Создайте группу, если хотите. Добавьте новое действие, здесь можно установить F-клавишу.

привязка действия "Получить размер слоя" к клавише "F6"


Шаг 3: Запишите макрос, запускающий скрипт

Нажмите «Запись», чтобы начать запись событий для макроса. Затем запустите скрипт из меню «Файл» > «Сценарии» > «Обзор». Как только вы запустите его, закройте всплывающее окно с шириной/высотой. Теперь остановите запись.


Законченный!

Протестируйте макрос, нажав назначенную горячую клавишу, или запустите макрос вручную. Надеюсь, это работает!

Размер слоя полигона отображается во всплывающем окне

Примечание. Photoshop может отставать, если вы выберете большое количество слоев или большую группу вместо одного слоя. Я не знаю, как это исправить, но просто подождите несколько секунд, и он должен наверстать упущенное.


Исправление проблем:

Если вы получаете ошибку скрипта, убедитесь, что выбран слой, а не группа или корректирующий слой.

Если вы не видите скрипт для шага 3, убедитесь, что тип файла — «.jsx». Windows может назвать его «.jsx.txt», который будет считаться текстовым файлом, и вы его не увидите.