web-dev-qa-db-ja.com

Photoshopでスライスをフォトショップレイヤーに変換することは可能ですか?

私がやりたいのは、画像を撮り、それをそれぞれ異なるレイヤーにある小さな正方形に切り分けることです(個々の画像としてエクスポートするのではありません)。たとえば、100px x 100pxの画像があり、その1つのレイヤーを取得して、10px x10pxの正方形ごとに100のレイヤーを作成したい場合です。画像は同じように見えますが、1つのレイヤーではなく、パズルのようにシームレスに組み合わされた別々のレイヤーのグリッドになります。レイヤーの1つの表示をオフにすると、パズルの1つの正方形の「ピース」が欠落しているように見えます。

画像をグリッドにスライスし、画像をエクスポートしてから、Bridgeを使用してレイヤーとして開くことができることを知っています。このアプローチの問題は、すべてのレイヤーが適切に配置された100px x 100pxのファイルではなく、100のレイヤーが互いに積み重ねられた10px x10pxのファイルになってしまうことです。

ありがとう。

5
MJR

これはすべてJavascriptを使用して行うことができます。 ここに簡単なスクリプトがあります 私が書いた、それはあなたの画像を100層にコピーします、それぞれ10px×10px:

/*
--------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 Scriptingリファレンスガイド をダウンロードできます。このガイドには、操作できるすべてのクラス、関数、および変数がリストされています。 (たとえば、レイヤーを回転させる方法)。

上記のスクリプトはJavaScript構文を使用していますが、AppleScriptおよびVBScriptを使用してPhotoshopを操作することもできます。

6
OACDesigns