【问题标题】:Extendscript with Photoshop: Importing an imageExtendscript 与 Photoshop:导入图像
【发布时间】:2019-03-20 12:00:04
【问题描述】:

我正在尝试通过提示选择一些图像文件,然后将这些文件添加到活动文档中。到目前为止,这是我所拥有的:

#target photoshop

doc = app.activeDocument;

// choose image files
var files = File.openDialog(undefined,undefined,true);

// for each image, add to new layer and insert into doc
for (var file in files) {
    var layer = doc.artLayers.add();
    layer.image = file; // this doesn't work.
}

【问题讨论】:

    标签: photoshop extendscript


    【解决方案1】:

    layer.image 是什么? ArtLayer 没有这个属性。也许在您的情况下放置会更好:

    doc = app.activeDocument;
    
    // choose image files
    var files = File.openDialog(undefined, undefined, true);
    
    // for each image, add to new layer and insert into doc
    for (var i = 0; i < files.length; i++)
    {
        var layer = placeImage(files[i]);
    }
    
    function placeImage(imageFile)
    {
        var desc554 = new ActionDescriptor();
        desc554.putPath(cTID('null'), imageFile);
        desc554.putEnumerated(cTID('FTcs'), cTID('QCSt'), cTID('Qcsa'));
        var desc555 = new ActionDescriptor();
        desc555.putUnitDouble(cTID('Hrzn'), cTID('#Pxl'), 0.000000);
        desc555.putUnitDouble(cTID('Vrtc'), cTID('#Pxl'), 0.000000);
        desc554.putObject(cTID('Ofst'), cTID('Ofst'), desc555);
        executeAction(cTID('Plc '), desc554, DialogModes.NO);
    
        return activeDocument.activeLayer
    };
    
    function cTID(s)
    {
        return app.charIDToTypeID(s);
    };
    
    function sTID(s)
    {
        return app.stringIDToTypeID(s);
    };
    

    Photoshop 也不喜欢在数组上使用 for...in 循环(有时有效,有时无效:在 File 对象的情况下无效)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2014-01-07
      • 2012-10-29
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多