Как выделить область с отступом?

  • Автор темы Автор темы Lemon
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Lemon

Участник
Топикстартер
Сообщения
5
Реакции
0
Хочу выделить на листе прямоугольную область с отступом в определенное количество пикселей от края.

Мои действия:

1. "Выделение -> Выделить все".
2. Тут по смыслу нужно "Выделение -> Модифицировать -> Сжать". Где и указываешь на сколько пикселей нужно произвести сжатие выделения.

Проблема: в этот момент пункт меню "Сжать" недоступен!!! Почему?!!

Подскажите как поступить и желательно наиболее эффективно (т.е. минимальными телодвижениями).

Заранее спасибо!
 
Выбрать нужный инструмент выделения, на панели свойств - Style->Fixed size, задаешь размеры своего выделения и размешаешь его
 
To Burn:
Но ведь так мне придется высчитывать нужные размеры на калькуляторе, да и разместить полученное выделение с одинаковыми отступами от границ холста проблематично...
 
>Но ведь так мне придется высчитывать нужные размеры на калькуляторе
число умножить на два и вычесть из другого уже нужен калькулятор? Куда наша школа катится:(
>разместить полученное выделение с одинаковыми отступами от границ холста проблематично...
Да ну? А включить линейки и по ним выставить один угол не пробовали?

Ну или Select all, Select->TransformSelection а там разберешся
 
А почему просто сжать нельзя?
 
А чтобы разместить точно по этой селекции создаете слой, затем снова Select All, выравниваете слой по селекции по двум осям, грузите селекцию с него а слой убиваете... индустриально.

Можно делать stroke - inside в режиме быстрой маски. Вот так: включить б.м. - Q, сбросить цвета на дефолтные! - нажать D, Select All, stroke - 10 pix, inside, отключить быструю маску - Q. Готово. Если быстрая маска настроена на Selected Area (по дефолту Masked Area), то придется еще проинвертировать ее картинку.

Этот способ уже можно писать в экшн. В Шопах старше 5-го можно делать stroke толщиной до 250 пикселов.

А если нужно больше или еще индустриальнее, то вот ява-скрипт.

Код:
if (documents.length > 0)
{
	// Переменной offset присвоить значение 
	// отступа от края документа в ПИКСЕЛАХ! 
	// В примере - 10 пикселов.
	var offset = 10;

	var strtRulerUnits = preferences.rulerUnits;
	preferences.rulerUnits = Units.PIXELS;

	var selRef = activeDocument.selection;
	var selBounds = 
	Array(Array(offset, offset), 
	Array(activeDocument.width - offset, offset), 
	Array(activeDocument.width - offset, activeDocument.height - offset), 
	Array(offset, activeDocument.height - offset)); 
	
	selRef.select(selBounds);

	preferences.rulerUnits = strtRulerUnits;
	selRef = null;
	strokeColor = null;
	selBounds = null;
}
else
{
	alert("Create a document before running this script!");
}
 
А почему просто сжать нельзя?

Такова природа селеции - ребра селекции проходят по 50-процентной плотности пикселов альфа-канала который отображается этими самыми ребрами селекции (мурашами). Чтобы проверить почему нельзя, посмотрите что происходит при использовании фильтров Minimum & Maximum когда весь канвас залит одним цветом, например в быстрой маске.
 
to CMYK: Спасибо за информацию, но из Вашего объяснения я понял только одно - мне этого не понять :)
 
Так ведь всему своё время.
 
Я многое из того чем пользуюсь не понимаю, но нисколько не расстраиваюсь по этому поводу.

Скопируйте текст скрипта в буфер, создайте где-нибудь файл с расширением js, например ContractSel.js, откройте его для редактирования (правой кнопкой и выбрать edit - откроется в Блокноте), вставьте туда из буфера и сохраните. Запустите Шоп, создайте или откройте документ, создайте новый экшн, включите на запись. Выполните: File > Automate > Scripts... в диалоге выберите Browse, найдите и укажите свой ContractSel, нажмите Run Script. Скрипт сделает свое дело. Остановите запись экшна. Назначьте ему быстрые клавиши. Вот и все.

Если у вас Photoshop CS, то есть возможность задать расстояния сжатия интерактивно:

Код:
if (documents.length > 0)
{
	// Переменной offset присвоить значение 
	// отступа от края документа в ПИКСЕЛАХ! 
	// В примере - 10 пикселов.

	var favorite = prompt('What is distance to contract selection?', '10');
//	var offset = 10;
	var offset = favorite;

	var strtRulerUnits = preferences.rulerUnits;
	preferences.rulerUnits = Units.PIXELS;

	var selRef = activeDocument.selection;
	var selBounds = 
	Array(Array(offset, offset), 
	Array(activeDocument.width - offset, offset), 
	Array(activeDocument.width - offset, activeDocument.height - offset), 
	Array(offset, activeDocument.height - offset)); 
	
	selRef.select(selBounds);

	preferences.rulerUnits = strtRulerUnits;
	selRef = null;
	strokeColor = null;
	selBounds = null;
}
else
{
	alert("Create a document before running this script!");
}
 
То СМУК
А что еще такие скрипты умеют?
 
Скачайте референсу и почитайте.

Могу сказать что не умеют из того что хотел использовать но обломился - guidelines как объект отсутствуют, отформатировать документ гадиками через скрипт нельзя. Стили нельзя редактировать - хотелось сделать так чтобы после поворота объекта все углы в эффектах изменялись бы на нужную величину - тоже недоступно.

В принципе мало чего доступно, но основное для практики все есть. В CS еще больше расширили JS и для пользователей PC появился Apple Script.
 
Кстати, полезно кому интересно, зайти на форум адобы по теме скриптинга и почитать что юзерам не хватает - и мне тоже этого не хватало и рефреном там звучит: текст можно создавать только с одной гарнитурой, одним цветом и одним всем прочим. Создать текстовый блок с разными гарнитурами, размерами и цветом символов - нельзя. Облом по полной программе.
 
Статус
Закрыто для дальнейших ответов.