Photoshop中自动引入文件夹全部图片到新文件图层的脚本
发布时间:2013-12-21 22:53:05 作者:佚名
我要评论
这个脚本用来将一个文件夹内的图片自动添加到新文件内,并使每个图片成为一个图层,非常方便。使用:将下面代码复制到新建文本文档,保存后后缀改为".jsx"。打开PS,使用菜单 <文件-脚本-浏览> 载入jsx即可
要求,PS cs2以上版本。
复制代码
代码如下:// Import Folder as Layers - Adobe Photoshop Script
// Description: imports a folder of images as named layers within a new document
// Requirements: Adobe Photoshop CS2, or higher
// Version: 2.0.0
// ============================================================================</p> <p>
// enable double-clicking from Mac Finder or Windows Explorer
// this command only works in Photoshop CS2 and higher
#target photoshop
// bring application forward for double-click events
app.bringToFront();
///////////////////////////////////////////////////////////////////////////////
// main - main function
///////////////////////////////////////////////////////////////////////////////
function main() {
// user settings
var prefs = new Object();
prefs.sourceFolder = '~'; // default browse location (default: '~')
prefs.removeFileExtensions = true; // remove filename extensions for imported layers (default: true)
prefs.savePrompt = false; // display save prompt after import is complete (default: false)
prefs.closeAfterSave = false; // close import document after saving (default: false)
// prompt for source folder
var sourceFolder = Folder.selectDialog('Please select the folder to be imported:', Folder(prefs.sourceFolder));
// ensure the source folder is valid
if (!sourceFolder) {
return;
}
else if (!sourceFolder.exists) {
alert('Source folder not found.', 'Script Stopped', true);
return;
}
// add source folder to user settings
prefs.sourceFolder = sourceFolder;
// get a list of files
var fileArray = getFiles(prefs.sourceFolder);
// if files were found, proceed with import
if (fileArray.length) {
importFolderAsLayers(fileArray, prefs);
}
// otherwise, diplay message
else {
alert("The selected folder doesn't contain any recognized images.", 'No Files Found', false);
}
}
///////////////////////////////////////////////////////////////////////////////
// getFiles - get all files within the specified source
///////////////////////////////////////////////////////////////////////////////
function getFiles(sourceFolder) {
// declare local variables
var fileArray = new Array();
var extRE = /\.(?:png|gif|jpg|bmp|tif|psd)$/i;
// get all files in source folder
var docs = sourceFolder.getFiles();
var len = docs.length;
for (var i = 0; i < len; i++) {
var doc = docs[i];
// only match files (not folders)
if (doc instanceof File) {
// store all recognized files into an array
var docName = doc.name;
if (docName.match(extRE)) {
fileArray.push(doc);
}
}
}
// return file array
return fileArray;
}
///////////////////////////////////////////////////////////////////////////////
// importFolderAsLayers - imports a folder of images as named layers
///////////////////////////////////////////////////////////////////////////////
function importFolderAsLayers(fileArray, prefs) {
// create a new document
var newDoc = documents.add(300, 300, 72, 'Imported Layers', NewDocumentMode.RGB, DocumentFill.TRANSPARENT, 1);
var newLayer = newDoc.activeLayer;
// loop through all files in the source folder
for (var i = 0; i < fileArray.length; i++) {
// open document
var doc = open(fileArray[i]);
// get document name (and remove file extension)
var name = doc.name;
if (prefs.removeFileExtensions) {
name = name.replace(/(?:\.[^.]*$|$)/, '');
}
// convert to RGB; convert to 8-bpc; merge visible
doc.changeMode(ChangeMode.RGB);
doc.bitsPerChannel = BitsPerChannelType.EIGHT;
doc.artLayers.add();
doc.mergeVisibleLayers();
// rename layer; duplicate to new document
var layer = doc.activeLayer;
layer.name = name;
layer.duplicate(newDoc, ElementPlacement.PLACEATBEGINNING);
// close imported document
doc.close(SaveOptions.DONOTSAVECHANGES);
}
// delete empty layer; reveal and trim to fit all layers
newLayer.remove();
newDoc.revealAll();
newDoc.trim(TrimType.TRANSPARENT, true, true, true, true);
// save the final document
if (prefs.savePrompt) {
// PSD save options
var saveOptions = new PhotoshopSaveOptions();
saveOptions.layers = true;
saveOptions.embedColorProfile = true;
// prompt for save name and location
var saveFile = File.saveDialog('Save the new document as:');
if (saveFile) {
newDoc.saveAs(saveFile, saveOptions, false, Extension.LOWERCASE);
}
// close import document
if (prefs.closeAfterSave) {
newDoc.close(SaveOptions.DONOTSAVECHANGES);
}
}
}
///////////////////////////////////////////////////////////////////////////////
// isCorrectVersion - check for Adobe Photoshop CS2 (v9) or higher
///////////////////////////////////////////////////////////////////////////////
function isCorrectVersion() {
if (parseInt(version, 10) >= 9) {
return true;
}
else {
alert('This script requires Adobe Photoshop CS2 or higher.', 'Wrong Version', false);
return false;
}
}
///////////////////////////////////////////////////////////////////////////////
// showError - display error message if something goes wrong
///////////////////////////////////////////////////////////////////////////////
function showError(err) {
if (confirm('An unknown error has occurred.\n' +
'Would you like to see more information?', true, 'Unknown Error')) {
alert(err + ': on line ' + err.line, 'Script Error', true);
}
}
// test initial conditions prior to running main function
if (isCorrectVersion()) {
// remember ruler units; switch to pixels
var originalRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
try {
main();
}
catch(e) {
// don't report error on user cancel
if (e.number != 8007) {
showError(e);
}
}
// restore original ruler unit
preferences.rulerUnits = originalRulerUnits;
}
相关文章
- photoshop无疑是一款非常好用的图像编辑软件,对于电脑小白来说操作非常困难,比如提示“不能完成命令,因为没有足够内存(RAM)”要怎么办呢?下面就来看看小编为大家提供2025-05-16

纵享丝滑的修图体验! 10个Photoshop性能优化小技巧
ps提供了丰富的自定义选项,只要根据你的硬件配置和项目需求,合理调整内存、缓存等核心参数,只要几个小步骤,小白用户也能让运行效率加倍2025-04-24
psd文件用什么打开? 没有Photoshop的情况下打开psd文件的四种方法
收到了psd文件,但是电脑没有安装ps,该怎么解决这个问题呢?下面我们就来看看这个问题的解决办法2025-05-07
ps一直闪退是什么原因? Photoshop闪退原因及解决方案
在使用过程中,Photoshop总是会无缘无故地自动退出,这不仅打断了工作流程,还可能导致未保存的更改丢失,令人头疼不已,本文将深入剖析Photoshop自动退出的原因,并提供相2024-07-04
怎么优化PSD文件? 有效防止Photoshop崩溃卡死的技巧奥
明就几个图层,并没有引入什么大型图片,但是 PSD 文件却异常巨大,而且用起来经常卡顿?下面我们就来看看pds文件优化方法2024-05-25
将多个图层合并为一个图层,但作为设计师你需要了解一下合并图层是有破坏性的,下面我们就来详细介绍一下2024-05-25
通常是因为Photoshop使用的暂存盘空间不足,导致无法正常工作,那么,如何解决这一问题呢?本文将为您提供详细的解决方案2024-05-25
ps导出文件的时候,可以直接存储,也可以另存存储为,这两个操作有区别吗?新手该怎么保存文件呢?详细请看下文介绍2024-03-28
ps beta ai显示高峰需求进不去怎么办? psai高峰期需求用不了解决办法
PSBetaAI2023加入了AI的功能,在使用过程中,有时会遇到一个令人烦恼的问题,那就是PhotoshopBetaAI提示我们正在面临高峰需求,请稍候再试,针对这个问题,本文为大家整理2024-03-28
ps段落两端对齐不能用怎么办? ps文字排版不能对齐的修复技巧
PS进行设计时,段落两端对齐是一个常用的排版功能,它能让文本看起来更加整洁和专业,然而,许多用户在使用PS时可能会遇到一个令人头疼的问题:段落两端对齐功能似乎不起作2024-03-09








最新评论