5

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

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

Благодарю.

1 ответ1

6

Вы можете сделать все это с помощью 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .