2017-11-03 9 views
0

Javascriptを使用して、ローカルフォルダから2つのランダムな画像を選択し、別々のPhotoshopレイヤーに配置しようとしています。私は選択するファイルパスを持つ配列を作成しました。画像をランダムに選択するPhotoshopスクリプト

#target photoshop 
var allImages = [“file path/img-1.jpg”, "file path/img-2.jpg", "file path/img-3.jpg"]; 
//this is a large array of file paths to 100 different images 
var pickImage = allImages[Math.floor(Math.random() * 
allImages.length)]; 
var imgFile = File(pickImage); 
var openFile = app.open(imgFile); 
var secondImage = allImages[Math.floor(Math.random() * allImages.length)]; 
app.activeDocument.artLayers.add(secondImage); 

これにより、最初の画像が開き、上に空白のレイヤーが作成されますが、2番目の画像は挿入されません。私は何が欠けていますか?

答えて

0

javascriptでは、画像を開く前にまずファイルオブジェクトを作成する必要があります。あなたがしなければならないのは、変数を作成してsecondImageでそれを指すだけです。あなたが最初のイメージでやったように:

var imgFile = File(pickImage); 

をあなたの現在のアプローチでは、あなたの最も簡単な解決策は、おそらくちょうど変数secondPickedImageを作り、pickImageと同じことに割り当てることであろう。これにより、同じイメージを選択する可能性は残っていますが、if文で修正できます。 あなたのアプローチを変更し、pickImageを呼び出すことができる関数に変更することをお勧めします。この関数は配列の乱数を返します。つまり、スペースを節約し、コードを整理します。その後、最初の画像と第2の画像が異なるようにpickImage番号とは異なる番号を選択するまで、乱数をピックするdo whileループにsecondImageの割り当てを入れます。

出典:http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/en/devnet/photoshop/pdfs/photoshop-cc-scripting-guide.pdf 29.

関連する問題