我正在尝试使用Javascript从本地文件夹中选择两个随机图像并放置在单独的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);
这将打开第一张图像并在上方创建一个空白图层,但不会插入第二张图像。我错过了什么?
答案 0 :(得分:0)
在javascript中,您必须先打开文件对象,然后才能打开图像。您所要做的就是创建变量,然后将其指向secondImage。就像你对第一张图片所做的那样:
var imgFile = File(pickImage);
在您当前的方法中,最简单的解决方案可能是创建一个变量secondPickedImage并将其分配给与pickImage相同的东西。虽然,这使您可以选择相同的图像,但您可以使用if语句修复它。 我建议改变你的方法并将pickImage变成一个你可以调用的函数,它会为你的数组返回一个随机数 - 节省空间,并清理你的代码。然后将第二个Image分配放在do while循环中,该循环一直保持选择一个随机数,直到你选择一个与pickImage号不同的数字,这样你的第一张和第二张图就不同了。