如何按 x,y,width,height 裁剪文件夹中的所有图像,调整它们的大小,然后保存它们?
Posted
技术标签:
【中文标题】如何按 x,y,width,height 裁剪文件夹中的所有图像,调整它们的大小,然后保存它们?【英文标题】:How can I crop by x,y,width,height all images in a folder, resize them, then save them? 【发布时间】:2014-03-12 23:19:06 【问题描述】:我是 Photoshop 脚本的新手,但对 javascript 并不陌生。
我有一个 1024*1024 的图像文件夹,它们是 3d 程序中的动画帧。
对于所有的帧,只有 x=54、y=12、width=300、height=234 的区域。
裁剪后,我希望它们按 65% 或任何我想要的比例缩放。
或者,我希望对源图像进行缩放,图像移动 x / y 坐标,缩小 65%,这样外部像素就不会出现在最终产品中。
没有 psd 可言,我假设脚本会创建一个空白 psd,并且很可能会将其回收用于批量裁剪/调整大小。
【问题讨论】:
【参考方案1】:尝试按照这些方式进行裁剪和调整大小。如果这是您所追求的,您还可以在保存之前将所有图像复制到单个 PSD 中,但此示例仅保存原始文档。有关更多信息,请查看 Photoshop 安装目录中的 Photoshop JavaScript Reference pdf。
var dir = new Folder('/c/temp')
var files = dir.getFiles("*.psd"); //change for whatever file type you have
for (var i = 0; i < files.length; i++)
var doc = app.open(files[i]);
var bounds = [54, 12, 354, 246];
doc.crop(bounds);
//do the math to figure out how big you want it after resize
doc.resizeImage(newWidth, newHeight);
//note this is saving over the original!!!!
doc.close(SaveOptions.SAVECHANGES)
【讨论】:
'crop' 会将其降低到任意指定的范围。就像使用选择工具将选择拖出一样。修剪适用于透明区域或角落的像素颜色。 我实现了代码并且效果很好。谢谢你安娜!如果你能指导我如何将它保存为另一个文件夹中的 png,我会永远珍惜你 :D doc.saveAs(newFilePath, pngOptions)。查看文档中的 PNGSaveOptions 对象以获取最后一个参数 永远珍惜 Anna Forrest【参考方案2】:为什么不直接在 Photoshop 中记录动作???
打开第一个文件并创建一个新动作。 使用裁剪工具或画布调整大小继续根据需要修剪画布。 根据需要在文件夹上以批处理方式运行该操作。
【讨论】:
以上是关于如何按 x,y,width,height 裁剪文件夹中的所有图像,调整它们的大小,然后保存它们?的主要内容,如果未能解决你的问题,请参考以下文章