在Photoshop java脚本中有JPEG2000保存选项吗?我似乎在java脚本文档中找不到它。我希望java脚本能帮助我解决保存文件大小的问题。
在将其保存到JP2文件之前,我尝试使用一些操作来运行自动批处理。我注意到,与手动执行“另存为”相比,当我使用“保存和关闭”和“覆盖操作”“另存为”命令运行自动批处理时,文件大小更大。
我有一个‘另存为’的动作,将质量设置为50%,包括在动作的结尾。
发布于 2021-03-26 01:18:52
这是一个很好的问题!应该有相关的文档。我也找不到。这会使创建任何保存选项变得混乱:
// var jpgFile = new File(filePath);
// jpg2kSaveOptions = new JPEGSaveOptions() ?????;但是,使用ScriptListener可以创建一个保存函数:
jpeg_2000("C:\\myfile.jpf", 100);
function jpeg_2000(filePath, jpgQuality)
{
var idsave = charIDToTypeID( "save" );
var desc1663 = new ActionDescriptor();
var idAs = charIDToTypeID( "As " );
var desc1664 = new ActionDescriptor();
var idJPLS = charIDToTypeID( "JPLS" );
desc1664.putBoolean( idJPLS, true );
var idJPQL = charIDToTypeID( "JPQL" );
desc1664.putInteger( idJPQL, jpgQuality ); // jpeg200 quality
var idJPFM = charIDToTypeID( "JPFM" );
desc1664.putBoolean( idJPFM, true );
var idJPMD = charIDToTypeID( "JPMD" );
desc1664.putBoolean( idJPMD, true );
var idJPTP = charIDToTypeID( "JPTP" );
desc1664.putBoolean( idJPTP, false );
var idJPJC = charIDToTypeID( "JPJC" );
desc1664.putBoolean( idJPJC, true );
var idJPEH = charIDToTypeID( "JPEH" );
desc1664.putInteger( idJPEH, 50 );
var idJPPO = charIDToTypeID( "JPPO" );
desc1664.putInteger( idJPPO, 0 );
var idJPCS = charIDToTypeID( "JPCS" );
desc1664.putBoolean( idJPCS, false );
var idJPWF = charIDToTypeID( "JPWF" );
desc1664.putInteger( idJPWF, 1 );
var idJPTS = charIDToTypeID( "JPTS" );
desc1664.putInteger( idJPTS, 3 );
var idJPJX = charIDToTypeID( "JPJX" );
desc1664.putBoolean( idJPJX, false );
var idJPXM = charIDToTypeID( "JPXM" );
desc1664.putBoolean( idJPXM, true );
var idJPEX = charIDToTypeID( "JPEX" );
desc1664.putBoolean( idJPEX, true );
var idJPIP = charIDToTypeID( "JPIP" );
desc1664.putBoolean( idJPIP, false );
var idJPRP = charIDToTypeID( "JPRP" );
desc1664.putBoolean( idJPRP, false );
var idJPEV = charIDToTypeID( "JPEV" );
desc1664.putInteger( idJPEV, 16 );
var idJPIS = charIDToTypeID( "JPIS" );
desc1664.putInteger( idJPIS, 0 );
var idJPRS = charIDToTypeID( "JPRS" );
desc1664.putInteger( idJPRS, 2 );
var idJPEGtwozerozerozero = stringIDToTypeID( " JPEG 2000" );
desc1663.putObject( idAs, idJPEGtwozerozerozero, desc1664 );
var idIn = charIDToTypeID( "In " );
desc1663.putPath( idIn, new File( filePath ) );
var idDocI = charIDToTypeID( "DocI" );
desc1663.putInteger( idDocI, 997 );
var idsaveStage = stringIDToTypeID( "saveStage" );
var idsaveStageType = stringIDToTypeID( "saveStageType" );
var idsaveSucceeded = stringIDToTypeID( "saveSucceeded" );
desc1663.putEnumerated( idsaveStage, idsaveStageType, idsaveSucceeded );
executeAction( idsave, desc1663, DialogModes.NO );
}我没有看过所有的选项,但您可以重复我所做的,并根据您的需要进行调整。
https://stackoverflow.com/questions/66801995
复制相似问题