[PS CC-CC2021] Запись в Action абсолютных значений трансформации

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Всем привет.

Записываю в Action (F9) трансформацию смарт-объекта (линк изображения).
Задаю абсолютные значения отсчета координат (верхний левый угол), задаю точные размеры в px.
Action записывает всё по своему и в относительных значениях полностью ломая местоположение и размеры объекта.
Все вставляемые линки изображений разного размера, кидаю их в разные точки и хотел быстро ставить из на означенное место.

Значения которые надо получить из любой вставленной картинки независимо от соотношения сторон:

Посмотреть вложение 138401


Исходная картинка, с которой надо работать (не обращайте внимания на соотношение сторон):

Посмотреть вложение 138402


Результат Action и его данные:

Посмотреть вложение 138403
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
Ну во первых, все ваши линки не работают, да, в принципе, они и не нужны
Сперва выровняйте смартобъект относительно нужного места а потом относительно трансформируйте
 

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Что-то сбилось в линках. Извиняюсь, исправляюсь:

Значения которые надо получить из любой вставленной картинки независимо от соотношения сторон:

2020-12-01_11-27-16.png



Исходная картинка, с которой надо работать (не обращайте внимания на соотношение сторон):

2020-12-01_11-28-45.png



Результат Action и его данные:

2020-12-01_11-29-38.png
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
Ну вас же, как я понимаю, надо относительно угла бэкграунда (чтобы абсолютные были)? Ну и выровняйте по нему или выравнивание в экшн не пишется?
 

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Ну вас же, как я понимаю, надо относительно угла бэкграунда (чтобы абсолютные были)? Ну и выровняйте по нему или выравнивание в экшн не пишется?
Любая трансформация относительна. Откуда объект пляшет, оттуда и счет.
Поэтому выставить никакое абсолютное положение не выходит.

Изменение размеров также относительно.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
Вы упорно меня не понимаете
1606810751033.png
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну трансформация и в самом деле всегда в процентах, поэтому нужен скрипт и пересчет в проценты из пикселей
Код:
var myOldPrefs = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
app.activeDocument.activeLayer.resize(200/(app.activeDocument.activeLayer.bounds[2].value-app.activeDocument.activeLayer[0].value),200/(app.activeDocument.activeLayer.bounds[3].value-app.activeDocument.activeLayer[1].value));
app.activeDocument.activeLayer.translate(10-app.activeDocument.activeLayer.bounds[0].value,10-app.activeDocument.activeLayer.bounds[1].value);
app.preferences.rulerUnits = myOldPrefs;
 
Последнее редактирование:

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Код:
var myOldPrefs = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
app.activeDocument.activeLayer.resize(200/(app.activeDocument.activeLayer.bounds[2].value-app.activeDocument.activeLayer[0].value),200/(app.activeDocument.activeLayer.bounds[3].value-app.activeDocument.activeLayer.bounds[1].value));
app.activeDocument.activeLayer.translate(10-app.activeDocument.activeLayer.bounds[0].value,10-app.activeDocument.activeLayer.bounds[1].value);
app.preferences.rulerUnits = myOldPrefs;

ошибка вкралась, поправил тут
 
  • Спасибо
Реакции: KDbled

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
  • Спасибо
Реакции: KDbled

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
кстати забыл на 100 умножить, вот так надо

Код:
var myOldPrefs = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
app.activeDocument.activeLayer.resize(100*200/(app.activeDocument.activeLayer.bounds[2].value-app.activeDocument.activeLayer[0].value),100*200/(app.activeDocument.activeLayer.bounds[3].value-app.activeDocument.activeLayer.bounds[1].value));
app.activeDocument.activeLayer.translate(10-app.activeDocument.activeLayer.bounds[0].value,10-app.activeDocument.activeLayer.bounds[1].value);
app.preferences.rulerUnits = myOldPrefs;
 
  • Спасибо
Реакции: KDbled

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
  • Спасибо
Реакции: KDbled и Skvoznyak

KDbled

Участник
Топикстартер
Сообщения
142
Реакции
38
Отлично, всё заработало!