我有大量的图像,一开始有一个黑色的背景,然后纯黑的颜色被移除,留下了像素化的暗边图像。
我正在寻找一种批量处理这些图像的方法,以消除与透明像素相邻的黑色像素,或者平滑边缘,使黑色边缘不像锯齿一样参差不齐。
我有xnview、irfanview和GIMP,但除了手动使用GIMP之外,我找不到其他合适的方法来完成这项工作,方法是在透明区域使用魔术棒,以一个像素为单位增长,然后用颜色擦除黑色。
有什么想法吗?我说的是800多张图片,所以批处理是非常重要的。它们是从3d模型自动生成的。
在此期间我会继续四处寻找!
发布于 2011-03-30 02:58:27
Photoshop是可脚本化的,AFAIK gimp也是。Photoshop有针对vbscript、javascript和apple的脚本参考(script?)以及以PDF格式隐藏在已安装文件夹中的示例。检查一下文档。
我抄袭了一种从论坛帖子中选择透明度的技术,并将其移植到vbscript中。它创建一个临时Action,然后在(传递的)当前应用程序引用中选择当前层的透明度。有关打开文件、保存文件等的基础知识,请参阅参考资料。
下面的vbscript示例将找到photoshop,将其放在最前面,然后尝试在当前打开的文档中加载透明度。显然,Man说,如果你还没有打开PS并加载文档,或者如果你的文档没有应用透明度,这将会失败。YMMV.
Set appRef = CreateObject("Photoshop.Application")
appRef.BringToFront
loadTransparency appRef
function loadTransparency(appRef)
dim desc
dim ref
dim ref1
set desc = CreateObject( "Photoshop.ActionDescriptor" )
set ref = CreateObject( "Photoshop.ActionReference" )
ref.putProperty appRef.charIDToTypeID( "Chnl" ), appRef.charIDToTypeID( "fsel" )
desc.putReference appRef.charIDToTypeID( "null" ), ref
set ref1 = CreateObject( "Photoshop.ActionReference" )
ref1.putEnumerated appRef.charIDToTypeID( "Chnl" ), appRef.charIDToTypeID( "Chnl" ), appRef.charIDToTypeID( "Trsp" )
desc.putReference appRef.charIDToTypeID( "T " ), ref1
appRef.ExecuteAction appRef.charIDToTypeID( "setd" ), desc, 3 '3 = no dialogs
end functionhttps://stackoverflow.com/questions/5477015
复制相似问题