【问题标题】:Photoshop script won't save file with percentage symbol in the namePhotoshop 脚本不会保存名称中带有百分比符号的文件
【发布时间】:2017-04-28 16:43:53
【问题描述】:

我有这个脚本,我通过 photoshops 脚本事件管理器运行它,它会查找带有“.jpg”的文件,然后将它们保存到网络并将质量降低到 70%。

它运行得非常好,直到它遇到一个名称中带有百分比的文件,例如。背景_(25%).jpg。无论如何我可以改变这个脚本,这样我就可以降低这些 jpg 的质量以及我已经点击的那些?

谢谢

var imageFolder = Folder.selectDialog("Select the folder with JPGs to process"); 
if (imageFolder != null)  processFolderJPG(imageFolder);

function processFolderJPG(folder) {
var fileList = folder.getFiles()
 for (var i = 0; i < fileList.length; i++) {
    var file = fileList[i];
  if (file instanceof File && file.name.match(/\.jpg$/i)) {
                open(file);
var docJPG = app.activeDocument;
var strtRulerUnitsJPG = app.preferences.rulerUnits;
var strtTypeUnitsJPG = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
var saveFileJPG = new File(decodeURI(activeDocument.fullName.fsName)); 
saveFileJPG.remove();
SaveForWebJPG(saveFileJPG,70); // set quality to suit
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
app.preferences.rulerUnits = strtRulerUnitsJPG;
app.preferences.typeUnits = strtTypeUnitsJPG;      

  } else 
if (file instanceof Folder) {
       processFolderJPG(file);
     }
   }
}
function SaveForWebJPG(saveFileJPG,jpegQuality) {
var sfwOptionsJPG = new ExportOptionsSaveForWeb(); 
   sfwOptionsJPG.format = SaveDocumentType.JPEG; 
   sfwOptionsJPG.includeProfile = false; 
   sfwOptionsJPG.interlaced = 0; 
   sfwOptionsJPG.optimized = true; 
   sfwOptionsJPG.quality = jpegQuality;
app.activeDocument.exportDocument(saveFileJPG, ExportType.SAVEFORWEB, sfwOptionsJPG);
}

编辑:我需要文件保持相同的文件名。

【问题讨论】:

  • 当它遇到这些文件之一时会做什么?你有错误吗?
  • 它什么也没做。 JPG 打开,一切都停止了。

标签: javascript naming-conventions photoshop photoshop-script


【解决方案1】:

我无法重现您的错误,据说,它的原因是在 decodeURI 函数附近的某个地方 - % 符号通常出现在许多符号的开头,例如

编码的 URI:en.wikipedia.org%2Fwiki%2F95%25_Confidence_interval 解码的 URI:en.wikipedia.org/wiki/95%_Confidence_interval

如果没有提供任何其他信息,我会试试这个: file.name.replace('%', '').match(/\.jpg$/i))

附言也许thisthis 问题会有所帮助(尤其是第二个问题)

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 1970-01-01
    • 2021-12-15
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多