我有大量的图像,最初的背景为黑色,然后去除了纯黑色,使图像带有像素化的暗边。
我正在寻找一种方法来批量处理这些图像,以便对透明像素附近的黑色像素进行颜色擦除,或者使边缘平滑,使黑色边缘不会呈锯齿状。
我有xnview,irfanview和GIMP,但除了手动使用GIMP之外,我找不到合适的方法,只需在透明区域使用魔棒,增长一个像素,然后用颜色擦除黑色。 / p>
有什么想法吗?我说的是800多张图片,所以批量处理非常重要。它们是从3d模型自动生成的。
我会在同一时间环顾四周!
答案 0 :(得分:2)
Photoshop是可编写脚本的,AFAIK gimp也是如此。 Photoshop具有vbscript,javascript和apple(脚本?)的脚本引用,以及以PDF格式隐藏在已安装文件夹中的示例。检查文档。
我试图从论坛帖子中选择透明度并将其移植到vbscript。它创建一个临时Action,然后在(传递的)当前应用程序引用中选择当前层的透明度。打开文件,保存文件等的基础知识在参考文献中有所介绍。
下面的vbscript示例将找到photoshop,将其带到前面,然后尝试在当前打开的文档中加载透明度。明显的人说,如果你还没有打开PS并加载文件,或者你的文件没有应用透明度,这将失败。因人而异。
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 function