2011-01-03 6 views
4

Я пытаюсь создать сценарий в Photoshop, который изменит некоторые слои и экспортирует их в виде PNG-изображения. Я скопировал следующий код из другого места:exportDocument() «целевая папка не существует»

function SavePNG(saveFile){ 
    var pngOpts = new ExportOptionsSaveForWeb; 
    pngOpts.format = SaveDocumentType.PNG 
    pngOpts.PNG8 = false; 
    pngOpts.transparency = true; 
    pngOpts.interlaced = true; 
    pngOpts.quality = 100; 
    activeDocument.exportDocument(saveFile,ExportType.SAVEFORWEB,pngOpts); 
} 

Функция экспорта активного документа фотошопе в файл, указанный в параметре SAVEFILE.

Он работает нормально с простыми путями, такими как «C: \ images \ result.png», но при попытке с разными путями типа «~/Desktop /» или путей с некоторыми специальными символами файл не экспортируется, папка назначения не существует "появляется сообщение об ошибке.

Любая идея, как я могу ее решить?

ответ

8

Ну, я не знаю, почему это происходит, но вы можете попробовать следующее изменение:

function SavePNG(saveFile){ 
    var tmpFile = "./tmp.png"; 
    tmpFile = new File(tmpFile); 
    var pngOpts = new ExportOptionsSaveForWeb; 
    pngOpts.format = SaveDocumentType.PNG 
    pngOpts.PNG8 = false; 
    pngOpts.transparency = true; 
    pngOpts.interlaced = true; 
    pngOpts.quality = 100; 
    activeDocument.exportDocument(tmpFile,ExportType.SAVEFORWEB,pngOpts); 
    tmpFile.rename (saveFile); 
    tmpFile.changePath(saveFile); 
} 

это будет экспортировать файл во временный файл, а затем переименовать & переместить его на запрошенный путь , должен решить проблему пути.

1

exportDocument ожидает полного имени файла, а не пути к папке.

Это работает:

activeDocument.exportDocument(new File("~/foo/foo.png"), ExportType.SAVEFORWEB, pngOpts); 

Это не работает и дает «папку не существует» сообщение об ошибке:

activeDocument.exportDocument(new File("~/foo/"), ExportType.SAVEFORWEB, pngOpts); 
0

Для людей, имеющих эту ошибку и не используяphotoshop-script ,

Ошибка может быть несвязанной в папку назначения, но происходит потому, что папка, которая была использована для этапа экспорта, удалена. Так как

  • воссоздать папку, которая была использована во время записи или
  • воссоздать шаг экспорта

 Смежные вопросы

  • Нет связанных вопросов^_^