Photoshop 导出选中区域到文件

介绍

需要将一张 Atlas 中的小图裁剪出来,首先想到的是使用 Photoshop,Photoshop 中有魔术手功能可以快速选中不规则图形,然后导出选中区域到文件。虽然手动操作可以完成,但是小图的数量过多,需要使用脚本进行批处理。

环境

  • Windows 10 22H2
  • Photoshop 2022

脚本

Photoshop 支持 Javascript 脚本进行处理,由于从未使用过 Photoshop 的 Javascript 编程,因此首先尝试询问 ChatGPT 如何导出选中区域为文件。

ChatGPT 给出的东西执行时有异常,由于 Photoshop 并没有一个直观的调试器,因此搜索了 StackOverflow 上现成的方案。

但是导出的图片大小过大,后来发现 selection.bounds 数组的前 4 项分别对应着 xMin, yMin, xMax, yMax,因此需要使用 xMax - xMin 与 yMax - yMin 获取实际图片的大小。

由于需要保存到文件,因此使用了 Math.random * 1000000 来获取随机数字保存,但更好的方案是获得当前时间信息作为文件名。

由于需要实现导出选中区域后删除的效果,取巧使用了选中区域的剪切功能进行删除;另外由于 app.activeDocument 在创建图片后会发生变化,需要在保存完成关闭图片后回到原图执行剪切操作,否则选中区域压根不存在。

绑定快捷键,可以在设置中为此脚本绑定一个快捷键,推荐使用 F1 之类的单个按键,按起来比较简单。

调试

Photoshop 有些情况下脚本执行出错时并没有任何提示,因此可以使用 alert() 方法输出调试信息。

文档

Photoshop 提供 Javascript 文档,可以直接查找到需要的 API 信息。

代码

将文件保存为

ExportSelectionToPNG.jsx

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 
var doc = app.activeDocument; var pngSaveOptions = new PNGSaveOptions(); pngSaveOptions.compression = 9; var hasSelection; var docRef; try { hasSelection = !!app.activeDocument.selection.bounds; } catch (err) { hasSelection = false; } if (hasSelection) { app.activeDocument.selection.copy(true); var w = app.activeDocument.selection.bounds[2] - app.activeDocument.selection.bounds[0]; var h = app.activeDocument.selection.bounds[3] - app.activeDocument.selection.bounds[1]; docRef = app.documents.add(w, h); docRef.paste(); } else { docRef = app.activeDocument; } // var file = File.saveDialog("Export as PNG to..."); var randomInt = Math.floor(Math.random() * 1000000); // alert(doc.path + "/Extracted_" + randomInt + ".png") var file = new File(doc.path + "/Extracted_" + randomInt + ".png"); if (file && ((file.exists && confirm("Overwrite " + file +"?")) || !file.exists)) { docRef.saveAs(file, pngSaveOptions, !hasSelection, Extension.LOWERCASE); if (hasSelection) { docRef.close(SaveOptions.DONOTSAVECHANGES); } } try { app.activeDocument.selection.cut(); } catch (err) { } 

版权声明:
作者:主机优惠
链接:https://www.techfm.club/p/61735.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>