简介
最近用爬虫爬了几千张高清图片回来,由于图片质量太高(几千x几千的分辨率,一张图几十MB),连平常浏览都费劲。因此,就用photoshop自带的ExtendScript Toolkit脚本工具写了个缩图脚本。
脚本支持正常的另存为JPG和PNG,也支持"储存为Wwb所用格式"的JPG和PNG。
使用方式
- 先把代码保存为"缩图脚本.jsx"之类的.jsx结尾的文本文件(脚本语言实际上是javascript)。
- 根据自己的需求修改文件开头定义的值:
- INPUT_PATH 输入路径。准备要处理的图片所在的文件夹。
- OUTPUT_PATH 输出路径。保存缩小后的图片所在的文件夹。
- LIMIT_SIZE 最大边长。宽或者高超过该值的图片都会被等比例缩小至该值。
- SAVE_FORMAT 保存格式[jpg, png, webjpg, webpng]。
- SAVE_QUALITY 图片质量[0, 100]。数值越大图片质量越高
- TEST_MODE 画质测试模式。该模式下只会处理一张图片,但会输出各种格式及图片质量的图,作为批量输出前缩放画质的参考。
- 然后将修改好的脚本直接拖进photoshop中就能运行了。
#target photoshop
var INPUT_PATH = 'C:\\Users\\Administrator\\Desktop\\input' //输入路径
var OUTPUT_PATH = 'C:\\Users\\Administrator\\Desktop\\output' //输出路径
var LIMIT_SIZE = 1024 // 最大边长
var SAVE_FORMAT = 'webpng' // 保存格式 jpg, png, webjpg, webpng
var SAVE_QUALITY = 60 // 图片质量[0, 100]
var TEST_MODE = false // 画质测试模式
function Main(){
if(TEST_MODE==true)
{
TestMode();
alert("脚本执行完毕");
return;
}
fileOut = new File(OUTPUT_PATH + "\\PhotoShop.log");
fileOut.open("w", "TEXT", "????");
fileOut.write("开始批处理\n");
var input_folder = new Folder(INPUT_PATH);
if(input_folder!=null)
{
var files = input_folder.getFiles ("*.*");
var i=0;
while(files[i]!=null ){
var fp = app.open(new File(files[i]));
if(fp !=null){
try{
Resize(LIMIT_SIZE);
var filename = fp.name.substring(0,fp.name.lastIndexOf("."));
Save(OUTPUT_PATH, filename, SAVE_FORMAT, SAVE_QUALITY);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}catch(e){
//alert (e.name + ": " + e.message);
fileOut.write(e.name + ": " + e.message+"\n")