我有大量图像,起初有黑色背景,然后去除了纯黑色,使图像带有像素化的暗边。
我正在寻找一种批处理这些图像的方法,以对与透明像素相邻的黑色像素进行颜色擦除,或者使边缘平滑,使黑色边缘不呈锯齿状。
我有 xnview、irfanview 和 GIMP,但我找不到合适的方法来执行此操作,除了手动使用 GIMP 通过在透明区域上使用魔杖、增长一个像素并擦除黑色颜色。
有任何想法吗?我说的是超过 800 张图像,所以批处理非常重要。它们是从 3d 模型自动生成的。
在此期间,我会继续四处寻找!
我有大量图像,起初有黑色背景,然后去除了纯黑色,使图像带有像素化的暗边。
我正在寻找一种批处理这些图像的方法,以对与透明像素相邻的黑色像素进行颜色擦除,或者使边缘平滑,使黑色边缘不呈锯齿状。
我有 xnview、irfanview 和 GIMP,但我找不到合适的方法来执行此操作,除了手动使用 GIMP 通过在透明区域上使用魔杖、增长一个像素并擦除黑色颜色。
有任何想法吗?我说的是超过 800 张图像,所以批处理非常重要。它们是从 3d 模型自动生成的。
在此期间,我会继续四处寻找!
Photoshop 是可编写脚本的,AFAIK gimp 也是如此。Photoshop 有 vbscript、javascript 和 apple(script?) 的脚本参考以及以 PDF 格式隐藏在已安装文件夹中的示例。检查文档。
我抄袭了一种从论坛帖子中选择透明度的技术,并将其移植到 vbscript。它创建一个临时动作,然后在(通过的)当前应用程序引用中选择当前图层的透明度。参考资料中介绍了打开文件、保存文件等的基础知识。
下面的 vbscript 示例将找到 photoshop,将其带到前面,然后尝试在当前打开的文档中加载透明度。Obvious 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 function