用Photoshop脚本自动合成新闻稿四格图片
1》ReadMe.txt
包含文件: 1)ReadMe.txt 2)PhotoCombination.js,若后缀不是.js,请直接改成.js后缀。 功能介绍: 由于宣传工作的需要,经常需要把4幅图片合成1幅图片,就是类似以前的四格漫画形式。由于每次的合成操作都是重复的,因此在PS中运行该脚本可以自动完成合成过程。 图解功能: 素材:4幅图片,存放在d盘根目录下,命名规则为:1.jpg,2.jpg,3.jpg,4.jpg。 合成效果:合成后图片名称默认为jsj_wuchao.jpg,存放在d盘根目录下。 合成规则: +------+------+ ,合成图片中各部分间隔均为4个像素。 |1.jpg | 2.jpg| +------+------+ |3.jpg | 4.jpg| +------+------+ 要求: 1)photoshop版本要求:ps cs2及以上版本,少数极精简版本不适用。 2)操作系统要求:windows平台。 3)图片格式限制:合成后的图片只能保存为jpg格式,被合成的图片格式为常见的jpg、png、bmp、gif。 4)图片大小无限制。 使用方式: 1)将选好的4幅图片,按照合成规则命名后存放在d盘根目录下。 2)打开ps软件,[文件]->[脚本]->[浏览]->[选中.js文件]->[载入],当所有打开的窗口完全关闭时可以退出ps软件,运行结果默认存放在d盘根目录下的jsj_wuchao.jpg文件。 高级用法:(修改newsphoto_process.js文件) 1)改变默认文件存放路径。 a)例如:var path1 = "d:/1.jpg" ,代表素材图片1.jpg的存放路径。 b)例如:var savepath = "d:/jsj_wuchao.jpg" ,代表合成后图片jsj_wuchao.jpg存放路径。 2)改变默认尺寸。 a)var bgwidth = new UnitValue(600,"px") ,合成后图片宽为600像素。 var bgheight = new UnitValue(480,"px") ,合成后图片高为480像素。 var partwidth = new UnitValue(298,"px") ,素材图片宽为298像素 var partheight = new UnitValue(238,"px") ,素材图片高为238像素 注:以上4个变量给定,则合成图片中各部分间隔也确定(600-(298*2)=4)。 b)若a)改变,则相应必须改变b)。 var xup= new UnitValue(-151,"px")//计算规则-151 = - (bgwidth - partwidth)/2 var xdown= new UnitValue(151,"px")//计算规则151 = (bgwidth - partwidth)/2 var yup= new UnitValue(-121,"px")//计算规则-121 = - (bgheight - partheight)/2 var ydown= new UnitValue(121,"px")//计算规则121 = (bgwidth - partwidth)/2 2》PhotoCombination.js //photoshop处理新闻稿图片的脚本 //设置背景文档尺寸单位为像素 var originalUnit = preferences.rulerUnits preferences.rulerUnits = Units.PIXELS //定制常量 var path1 = "d:/1.jpg" var path2 = "d:/2.png" var path3 = "d:/3.png" var path4 = "d:/4.jpg" var savepath = "d:/jsj_wuchao.jpg" var bgwidth = new UnitValue(600,"px") var bgheight = new UnitValue(480,"px") var partwidth = new UnitValue(298,"px") var partheight = new UnitValue(238,"px") var xup= new UnitValue(-151,"px")//计算规则-151= - (bgwidth - partwidth)/2 var xdown= new UnitValue(151,"px") var yup= new UnitValue(-121,"px")//计算规则-121 = - (bgheight - partheight)/2 var ydown= new UnitValue(121,"px") //新建背景文档 var bg = app.documents.add(bgwidth ,bgheight) var layerRef =bg.layerSets.add() //打开新文档part1 var file1 = File(path1) var part1 = app.open(file1) //改变新文档大小 part1.resizeImage( partwidth ,partheight ) part1.resizeCanvas( partwidth ,partheight ) part1.trim(TrimType.TOPLEFT, true, false, true, false) //复制新文档图层 var newLayerRef =part1.activeLayer //将part1移动到背景文档 var layer1 = newLayerRef.duplicate(layerRef, ElementPlacement.PLACEATEND) app.activeDocument=bg layer1.translate(xup,yup) //打开新文档part2 var file2 = File(path2) var part2 = app.open(file2) //改变新文档大小 part2.resizeImage( partwidth ,partheight ) part2.resizeCanvas( partwidth ,partheight ) part2.trim(TrimType.TOPLEFT, true, false, true, false) //复制新文档图层 newLayerRef =part2.activeLayer //将part2移动到背景文档 var layer2 = newLayerRef.duplicate(layerRef, ElementPlacement.PLACEATEND) app.activeDocument=bg layer2.translate(xdown,yup) //打开新文档part3 var file3 = File(path3) var part3 = app.open(file3) //改变新文档大小 part3.resizeImage( partwidth ,partheight ) part3.resizeCanvas( partwidth ,partheight ) part3.trim(TrimType.TOPLEFT, true, false, true, false) //复制新文档图层 newLayerRef =part3.activeLayer //将part3移动到背景文档 var layer3 = newLayerRef.duplicate(layerRef, ElementPlacement.PLACEATEND) app.activeDocument=bg layer3.translate(xup,ydown) //打开新文档part4 var file4 = File(path4) var part4 = app.open(file4) //改变新文档大小 part4.resizeImage( partwidth ,partheight ) part4.resizeCanvas( partwidth ,partheight ) part4.trim(TrimType.TOPLEFT, true, false, true, false) //复制新文档图层 newLayerRef =part4.activeLayer //将part4移动到背景文档 var layer4 = newLayerRef.duplicate(layerRef, ElementPlacement.PLACEATEND) app.activeDocument=bg layer4.translate(xdown,ydown) //保存背景文档 var jsj = File(savepath) jpgSaveOptions = new JPEGSaveOptions()//保存为jpg jpgSaveOptions.embedColorProfile = true jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE jpgSaveOptions.matte = MatteType.NONE jpgSaveOptions.quality = 8 app.activeDocument.saveAs(jsj,jpgSaveOptions,true,Extension.LOWERCASE)//将当前活动文档(也就是背景文档bg)保存 //关闭文档 bg.close(SaveOptions.DONOTSAVECHANGES) part1.close(SaveOptions.DONOTSAVECHANGES) part2.close(SaveOptions.DONOTSAVECHANGES) part3.close(SaveOptions.DONOTSAVECHANGES) part4.close(SaveOptions.DONOTSAVECHANGES) app.preferences.rulerUnits = originalUnit
精彩评论