Photoshop JavaScript图像放置不一致

Photoshop JavaScript图像放置不一致,javascript,scale,photoshop,photoshop-script,Javascript,Scale,Photoshop,Photoshop Script,目前,我正在编写一个脚本,其目的是在新层上导入任意大小和DPI的图像,应用层掩码,并将其缩放以填充图像(例如,如果导入的图像是横向的,则将缩放高度,直到其等于文档高度)。不幸的是,Photoshop以一种看似随机的缩放方式放置图像。使用scriptlistener,如果我放置一个图像,并将宽度和高度的百分比缩放(文件、编辑、图像等功能区下方顶部的百分比向上)更改为100%,我会得到以下结果: var idPlc = charIDToTypeID( "Plc " ); var desc144 =

目前,我正在编写一个脚本,其目的是在新层上导入任意大小和DPI的图像,应用层掩码,并将其缩放以填充图像(例如,如果导入的图像是横向的,则将缩放高度,直到其等于文档高度)。不幸的是,Photoshop以一种看似随机的缩放方式放置图像。使用scriptlistener,如果我放置一个图像,并将宽度和高度的百分比缩放(文件、编辑、图像等功能区下方顶部的百分比向上)更改为100%,我会得到以下结果:

var idPlc = charIDToTypeID( "Plc " );
var desc144 = new ActionDescriptor();
var idIdnt = charIDToTypeID( "Idnt" );
desc144.putInteger( idIdnt, 44 );
var idnull = charIDToTypeID( "null" );
desc144.putPath( idnull, new File( "C:\\Users\\Cameron Anderson\\Desktop\\Junk\\2hu chibis\\Wallpapers\\Exports\\1920x1080\\New folder\\Alice.png" ) );
var idFTcs = charIDToTypeID( "FTcs" );
var idQCSt = charIDToTypeID( "QCSt" );
var idQcsa = charIDToTypeID( "Qcsa" );
desc144.putEnumerated( idFTcs, idQCSt, idQcsa );
var idOfst = charIDToTypeID( "Ofst" );
    var desc145 = new ActionDescriptor();
    var idHrzn = charIDToTypeID( "Hrzn" );
    var idPxl = charIDToTypeID( "#Pxl" );
    desc145.putUnitDouble( idHrzn, idPxl, -0.000000 );
    var idVrtc = charIDToTypeID( "Vrtc" );
    var idPxl = charIDToTypeID( "#Pxl" );
    desc145.putUnitDouble( idVrtc, idPxl, -0.000000 );
var idOfst = charIDToTypeID( "Ofst" );
desc144.putObject( idOfst, idOfst, desc145 );
var idWdth = charIDToTypeID( "Wdth" );
var idPrc = charIDToTypeID( "#Prc" );
desc144.putUnitDouble( idWdth, idPrc, 108.843537 );
var idHght = charIDToTypeID( "Hght" );
var idPrc = charIDToTypeID( "#Prc" );
desc144.putUnitDouble( idHght, idPrc, 108.853411 );
var idLnkd = charIDToTypeID( "Lnkd" );
desc144.putBoolean( idLnkd, true );
executeAction( idPlc, desc144, DialogModes.NO );
根据到目前为止我对ScriptListener的了解,我相信这两行代码类似于
desc144.putUnitDouble(idWdth,idPrc,108.843537)描述比例,因为上面的行给出了TypeID
“#Prc”
,但我不明白为什么它是108.843537而不是100,就像它应该是的那样

有没有办法将photoshop设置为一致的位置?或者至少,是否有可能将所有放置的图像都放置在100%的位置,而不是幕后发生的任何导致代码编号奇怪的事情

最终的脚本需要能够处理任何合理尺寸和DPI的图像,因为我可以找到文档DPI和放置的图像之间的比率,以适当地缩放它们


提前谢谢

我找到了解决办法!事实证明,您实际上可以禁用Photoshop在“首选项”菜单中按位置缩放的功能,从而消除“位置”命令的任意性。一切正常。大型升级到,因为它完全解决了我遇到的问题。

我的猜测是,如果您的图像具有不同的DPI,那么您也需要考虑到这一点来缩放它们。你试过上面的脚本吗?把108改成100,看看会发生什么?不幸的是,我不是专家,但我发现AdobeJS参考(过去很少使用)对于理解这段代码的含义非常有用。希望有帮助:是的,我最初尝试将其设置为100,因为这是我假设的100%,因此我的1920x1080图像的宽度短了160像素。Adobe参考指南似乎非常有用,但您可以使用脚本(例如椭圆选择)执行的大部分操作都无法在那里找到,而脚本侦听器在这方面要有用得多。不过,事件ID代码非常有用。这些是我使用的比率,说明了DPI
var Thankshotoshop=(objResolution/doc.resolution)*100;scaleImported(Thankshotoshop);var标度百分比=(y/objHeight)*100;scaleImported(scalePercentage)编辑:显然enter不会换行,而是提交注释(以及“编辑”中的字母)