2

私はフォトショップのアクションを作成しようとしています(これは不可能かもしれませんが、他のアプリケーションの推奨事項も役立つでしょう)。写真のコレクションを撮り、それらを特定のアスペクトの配給にしたいと思います。例:4:3。

つまり、幅150ピクセル、高さ200ピクセルの画像があります。私がやりたいのは、画像のキャンバスの幅を267ピクセルにし、新しい領域を特定の色で塗りつぶすことです。

したがって、私が考えることができる2つの可能性があります。

1)Photoshopアクションでこれを行うことはできますが、現在の高さを取得し、1.333333を掛けて、その値をキャンバスのサイズ変更の幅ボックスに入力する必要があります。Photoshopのアクションで値を計算することは可能ですか?

2)他のアプリケーションにはこの機能が組み込まれています。

どんな助けでも大歓迎です。

4

3 に答える 3

8

うわー、私は今(答えを書いた後)これがずっと前に尋ねられたのを見る。。。しかたがない。このスクリプトでうまくいきます。

このPhotoshopスクリプトは、4:5のアスペクト比になるように画像のキャンバスのサイズを変更します。arWidthとarHeightを変更することで、適用されるアスペクト比を変更できます。塗りつぶしの色は、現在の背景色に設定されます。ファイルを開くアクションを作成し、このスクリプトを適用してから、ファイルを閉じてバッチプロセスを実行できます。

Photoshopをシャットダウンします。
このJavaScriptを、PhotoshopのPresets\Scriptsフォルダーにある「ResizeCanvas.jsx」という名前の新しいファイルにコピーします。
Photoshopを起動すると、[ファイル]-[スクリプト]メニューに表示されます。

#target photoshop

main ();

function main ()
{
    if (app.documents.length < 1)
    {
        alert ("No document open to resize.");
        return;
    }

    // These can be changed to create images with different aspect ratios.
    var arHeight = 4;
    var arWidth = 5;

    // Apply the resize to Photoshop's active (selected) document.
    var doc = app.activeDocument;

    // Get the image size in pixels.
    var pixelWidth = new UnitValue (doc.width, doc.width.type);
    var pixelHeight = new UnitValue (doc.height, doc.height.type);
    pixelWidth.convert ('px');
    pixelHeight.convert ('px');

    // Determine the target aspect ratio and the current aspect ratio of the image.
    var targetAr = arWidth / arHeight;
    var sourceAr = pixelWidth / pixelHeight;

    // Start by setting the current dimensions.
    var resizedWidth = pixelWidth;
    var resizedHeight = pixelHeight;

    // The source image aspect ratio determines which dimension, if any, needs to be changed.
    if (sourceAr < targetAr)
        resizedWidth = (arWidth * pixelHeight) / arHeight;
    else
        resizedHeight = (arHeight * pixelWidth) / arWidth;

    // Apply the change to the image.
    doc.resizeCanvas (resizedWidth, resizedHeight, AnchorPosition.MIDDLECENTER);
}
于 2011-03-16T19:12:21.487 に答える
2

ソース画像のピクセル/インチが72と異なる場合、@user268911からの受け入れられた回答が機能しない可能性があることに注意してください。UnitValue.convert関数は72ピクセル/インチでのみ正しく機能するためです。変換が常にピクセル/インチの値に対して正しいことを確認するには、baseUnitプロパティを次のように設定します。

 ...
 var pixelWidth = new UnitValue (doc.width, doc.width.type);
 pixelWidth.baseUnit = UnitValue (doc.width.baseUnit, "in");
 var pixelHeight = new UnitValue (doc.height, doc.height.type);
 pixelHeight.baseUnit = UnitValue (doc.height.baseUnit, "in");
 ...

変換の詳細については、 『Adobe JavaScriptツールガイド』の「ピクセル値とパーセンテージ値の変換」セクションを参照してください。

于 2017-08-28T20:35:06.630 に答える
0

あなたは何の言語を知っていますか?ImageMagickにはこれを実行できるコマンドラインツールがありますが、値を取得して新しい値を計算するには、スクリプト言語を知っている必要があります。

.NETの場合、私の会社の製品であるDotImage Photoは無料で、これを実行できます(C#またはVB.NETを知っている必要があります)

于 2010-11-29T21:53:33.620 に答える