画像を入力して特定の比率を作成するためのPhotoshopアクション
-
29-09-2019 - |
質問
私はPhotoshopアクションを作成したいと考えています(これは不可能であり、他のアプリケーションの推奨事項も役立つでしょう)。写真のコレクションを撮り、特定のアスペクト配分、例:4:3にしたい。
したがって、幅150pxの高さの画像があります。私が起こりたいのは、画像のキャンバスが幅267pxで、特定の色で満たされた新しい領域で作られていることです。
だから私が考えることができる2つの可能性があります:
1)Photoshopアクションはこれを行う可能性がありますが、現在の高さを引いて1.333333を掛けてから、その値をキャンバスの幅ボックスに置きます。 Photoshopアクションで値を計算することは可能ですか?
2)他のアプリケーションには、この機能が組み込まれています。
どんな助けも大歓迎です。
解決
うわー、私は今(答えを書いた後)今、これがずっと前に尋ねられたことを見ています。 。 。しかたがない。このスクリプトはトリックを行います。
このPhotoshopスクリプトは、画像のキャンバスをサイズ変更して、4:5のアスペクト比を持つようにします。 ArwidthとArheightを変更することにより、適用されるアスペクト比を変更できます。塗りつぶしの色は、現在の背景色に設定されます。ファイルを開き、このスクリプトを適用してから、ファイルを閉じてバッチプロセスを実行するアクションを作成できます。
Photoshopをシャットダウンします。
このJavaScriptをPhotoshopのPresets Scriptsフォルダーの「Resize Canvas.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);
}
他のヒント
あなたは何の言語を知っていますか? ImageMagickにはこれを行うことができるコマンドラインツールがありますが、値を取得して新しい言語を計算するには、スクリプト言語を知る必要があります。
.netの場合、私の会社の製品、 ドティマージの写真, 、無料で、これを行うことができます(C#またはvb.netを知る必要があります)
それを心に留めてください @user268911からの受け入れられた回答 ソース画像に72よりも異なるピクセル/インチがある場合、あなたのために働かないかもしれません。 UnitValue.Convert 機能は72 px/inchでのみ正しく機能します。コンバージョンが永遠に正しいことを確認するために、ピクセル/インチ値を設定するには、設定します 基本単位 次のようなプロパティ:
...
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 Tools Guide.