批处理透明gif到PNG的抗锯齿

时间:2011-03-29 18:13:30

标签: image process batch-file photoshop gimp

我有大量的图像,最初的背景为黑色,然后去除了纯黑色,使图像带有像素化的暗边。

我正在寻找一种方法来批量处理这些图像,以便对透明像素附近的黑色像素进行颜色擦除,或者使边缘平滑,使黑色边缘不会呈锯齿状。

我有xnview,irfanview和GIMP,但除了手动使用GIMP之外,我找不到合适的方法,只需在透明区域使用魔棒,增长一个像素,然后用颜色擦除黑色。 / p>

有什么想法吗?我说的是800多张图片,所以批量处理非常重要。它们是从3d模型自动生成的。

我会在同一时间环顾四周!

1 个答案:

答案 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