Pregunta

Tengo una gran cantidad de imágenes que al principio tenían un fondo negro, luego se eliminó el color negro sólido dejando la imagen con bordes oscuros pixelados.

Estoy buscando una forma de procesar estas imágenes a las imágenes de color de color, los píxeles negros adyacentes a los píxeles transparentes, o para suavizar el borde dejando los bordes negros que no están jaggados.

Hubo xnview, IrfanView, y GIMP, pero no puedo encontrar un método adecuado para hacerlo distinto de lo que sea manualmente con GIMP utilizando la varita mágica en un área transparente, creciendo en un píxel y borrando el color negro.

¿Alguna idea?Estoy hablando más de 800 imágenes, por lo que el procesamiento por lotes es bastante importante.Se generan automáticamente a partir de modelos 3D.

¡Seguiré mirando a su alrededor mientras tanto!

¿Fue útil?

Solución

Photoshop es scriptable, y afaik gimp es también.Photoshop tiene referencias de scripting para VBScript, JavaScript y Apple (script?) Además de muestras enterradas en las carpetas instaladas en formato PDF.Compruebe los docs.

i Cribe una técnica para seleccionar la transparencia de un puesto en un foro y lo portado a VBScript.Crea una acción temporal que luego selecciona la transparencia de la capa actual en la referencia de la aplicación actual (aprobada).Los conceptos básicos de los archivos de apertura, guardando archivos, etc. están cubiertos en las referencias.

La muestra de VBScript a continuación encontrará Photoshop, llevarlo al frente y luego intentar cargar la transparencia en el documento abierto actualmente.El hombre obvio dice que esto fallará si aún no ha abierto PS y cargó un documento, o si su documento no se aplica la transparencia.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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top