Возможно ли в Photoshop преобразовать фрагменты в слои Photoshop?

8082
MJR

Я хочу сделать снимок и разрезать его на маленькие квадраты, каждый из которых находится в отдельном слое (не экспортировать их как отдельные изображения). Например, если бы у меня было изображение размером 100 на 100 пикселей, и я хотел взять этот слой и создать 100 слоев, каждый размером 10 на 10 квадратов. Изображение будет выглядеть одинаково, но вместо того, чтобы быть одним слоем, оно будет сеткой из отдельных слоев, которые плавно сочетаются друг с другом, как головоломка. Если бы я отключил видимость одного из слоев, это выглядело бы так, как если бы отсутствовал один квадратный «кусочек» головоломки.

Я знаю, что могу нарезать изображение в сетке, экспортировать изображения, а затем открыть их как слои, используя Bridge. Проблема с этим подходом состоит в том, что я получу файл размером 10 на 10 пикселей со 100 слоями, уложенными друг на друга, вместо файла размером 100 на 100 пикселей со всеми слоями, расположенными правильно.

Благодарю.

4

1 ответ на вопрос

6
OAC Designs

Вы можете сделать все это с помощью Javascript. Вот небольшой небольшой скрипт, который я написал, он скопирует ваше изображение в 100 слоев, каждый по 10 на 10 пикселей:

/* --------Photoshop Script - Grid to Layers------------ Author: Oisin Conolly www.DigitalBiscuits.co.uk  This basic script will create new layers from your active layer, each equal in size according to the grid dimensions specified. */   //this is the size of our squares in pixels var squareSize = 10;    var docRef = app.activeDocument;  //set the ruler type if (app.preferences.rulerUnits != Units.PIXELS) { app.preferences.rulerUnits = Units.PIXELS; }  var layerRef = docRef.activeLayer;  for (y = 0; y<docRef.height; y+=squareSize) { for (x = 0; x<docRef.width; x+=squareSize) { //activate the original layer docRef.activeLayer = layerRef; //make the selection docRef.selection.select(Array (Array(x, y), Array(x, y+squareSize), Array(x+squareSize,y+squareSize), Array(x+squareSize,y)), SelectionType.REPLACE, 0, false);  //copy the selection docRef.selection.copy(); //create and paste new layer docRef.artLayers.add(); docRef.paste(); } } 

Чтобы использовать его, сохраните этот файл и загрузите его в Photoshop, перейдя в

Файл> Сценарии> Обзор

Убедитесь, что тип файла установлен на * .JS

Если вы хотите изменить размер квадратов, просто откройте файл JavaSCript в Блокноте, измените значение, squareSizeсохраните и запустите его.

* РЕДАКТИРОВАТЬ *

Если вы хотите сделать более сложные вещи с помощью этого сценария, вы можете скачать справочное руководство по сценариям Photoshop, в котором перечислены все классы, функции и переменные, с которыми вы можете работать. (Например, как повернуть слой).

Приведенный выше скрипт использует синтаксис JavaScript, однако вы также можете использовать AppleScript и VBScript для работы с Photoshop.

Большое спасибо, этот скрипт работал отлично! И это также хорошо масштабируется, если я изменяю пропорции своего изображения или изменяю значение squareSize. Я очень ценю это! MJR 11 лет назад 0
Я относительно новичок в JavaScript и пытаюсь лучше изучить синтаксис. Допустим, я хотел использовать ваш сценарий, чтобы вырезать и вставить группу маленьких квадратов из одного большего изображения, но хотел немного рандомизировать его и поворачивать каждые 5 и 17 квадраты на 90 градусов и поворачивать каждый 9-й квадрат на 180 градусов. Как бы я это сделал? MJR 11 лет назад 0
Я новичок в написании сценариев с фотошопом, но то, что вы хотите сделать, должно быть прямым. Вы хотели бы иметь три переменные (скажем, a, b и c), увеличивающиеся на 1 каждый раз, когда вы копируете / вставляете выделение. Тогда вы должны иметь операторы if в соответствии с: `if (a == 5) иначе, если (b == 17) еще if (c == 17) `Вы можете найти код для поворота слоя в руководстве по написанию сценариев, указанному в моем ответе. Попробуй, и если ты застрянешь, покажи мне, что ты сделал, и я помогу тебе. OAC Designs 11 лет назад 0
Работает хорошо. Наверное, стоит сказать, посчитай перед бегом. Для файла размером 1000 x 1000 пикселей с квадратом = 10 это 10000 слоев. BJ292 11 лет назад 1
Хорошее замечание: +1, кроме проблем с памятью, связанных с таким количеством слоев, для завершения также потребовался бы возраст. OAC Designs 11 лет назад 0
@DigitalBiscuits, спасибо за советы, я ценю, что вы нашли время! Я дам вам знать, что я придумаю. MJR 11 лет назад 0

Похожие вопросы