Quitaste con cuidado el fondo de la imagen, exportaste un PNG transparente, lo pusiste sobre un fondo oscuro y hay un halo blanco evidente alrededor de los bordes del sujeto.
No es culpa tuya y la herramienta no está rota. Es un detalle técnico llamado canal alfa. Entiéndelo y podrás arreglar tú mismo cualquier problema de “el borde del PNG transparente se ve raro”.
Este artículo explica en 3 minutos:
- Qué guarda realmente el canal alfa en los PNG transparentes
- Por qué aparecen halos blancos / negros / de color
- Qué es Edge Feather y cómo funciona
- Causa raíz y solución para cada uno de los 4 artefactos comunes
Primero, entiende una cosa: qué es el canal alfa
PNG admite transparencia mediante el canal alfa. Un píxel RGB tiene 3 canales (rojo, verde, azul). Añade un canal alfa (transparencia) y tienes 4 bytes por píxel:
- R=255, G=255, B=255, A=255 → blanco puro, totalmente opaco
- R=255, G=255, B=255, A=0 → blanco puro, totalmente transparente (este es el fondo)
- R=255, G=255, B=255, A=128 → blanco puro, 50% transparente (semitransparente; se mezclará con cualquier fondo sobre el que esté)
- R=240, G=240, B=240, A=255 → gris claro, totalmente opaco
Conclusión clave: el canal alfa no es solo 0 o 255; puede ser cualquier valor entre 0 y 255. Eso es lo que significan los “píxeles semitransparentes”.
De dónde viene tu halo
Cuando JPEG (y la mayoría de las salidas de cámaras) guarda una imagen, aplica anti-aliasing a los bordes del sujeto: los píxeles más externos del sujeto son en realidad “semitransparentes”, parte sujeto y parte fondo. Para un círculo rojo sobre fondo blanco:
- Píxeles centrales del círculo: R=255, G=0, B=0, A=255 (rojo totalmente opaco)
- Píxeles más externos del círculo: R=200-250, G=0-50, B=0-50, A=80-200 (rojo semitransparente con un toque del color de fondo)
- Píxeles fuera del círculo: R=255, G=255, B=255, A=255 (fondo blanco)
El anti-aliasing hace que el círculo se vea suave sobre blanco.
Pero cuando solo marcas como totalmente transparentes los píxeles con alpha=0 (y dejas en paz esos píxeles con A=80 semitransparentes), ¿qué pasa?
- Píxeles centrales del círculo: el alfa se queda en 255 → totalmente preservados
- Píxeles “rojo semitransparente” más externos del círculo: R=200-250 (estos están cerca del blanco porque son rojo + blanco mezclados), el alfa se queda en 80-200 → se mantienen, pero como su RGB está cerca del blanco, al colocarlos sobre un fondo oscuro parecen un halo blanco
- Píxeles fuera del círculo: el alfa pasa de 255 a 0 → transparentes
Ese es tu halo blanco. Son esencialmente los “píxeles de borde semitransparentes” dejados atrás por el anti-aliasing, cuyo RGB resulta estar cerca del color de fondo, así que se vuelven visibles al quitar el fondo.
4 artefactos, 4 causas raíz
Artefacto 1: halo blanco (fondo claro)
Causa raíz: sujeto sobre fondo claro; los píxeles de borde con anti-aliasing tienen un RGB cercano al color de fondo (blanco / gris claro).
Escenario típico: fotos de producto con fondo blanco, retratos con fondo blanco, logos con fondo blanco.
Solución: o bien hacer totalmente transparentes esos píxeles semitransparentes o que su RGB siga el color sólido del sujeto. La implementación más sencilla es Edge Feather: transicionar linealmente el alfa de 255 a 0 en la frontera sujeto/fondo, mientras se tira del RGB hacia el color sólido del sujeto.
El Feather por defecto de Piick = 1 px ya soluciona la mayoría de los halos blancos. Si todavía los ves:
- Sube el Feather a 2-3 px (feathering más agresivo)
- Reexporta desde una fuente de mayor calidad (la compresión JPG amplifica la distorsión del anti-aliasing)
- Opción nuclear con ImageMagick:
convert input.png -fuzz 5% -transparent white output.png
Artefacto 2: halo negro (fondo oscuro)
Causa raíz: igual que el halo blanco, pero los píxeles de borde con anti-aliasing tienen un RGB cercano a un fondo oscuro (negro / gris oscuro / azul oscuro).
Escenario típico: fotos de producto tecnológico con fondo negro, retratos con fondo oscuro, fotos de sujeto en modo oscuro.
Solución: igual que el halo blanco; solo cambia -transparent white por -transparent black en el comando de ImageMagick.
Artefacto 3: franja de color (borde del sujeto teñido con el color de fondo)
Causa raíz: el algoritmo marca como totalmente transparentes los píxeles “suficientemente cercanos al fondo”, pero los píxeles de borde con anti-aliasing aún llevan color de fondo en su RGB, así que al colocarlos sobre cualquier fondo nuevo se ve el color de fondo original.
Escenario típico: grabaciones con chroma con keying imperfecto (iluminación desigual, spill verde en los bordes del pelo); al quitar el verde, el pelo queda teñido de verde.
Solución: más difícil que los halos blancos. Hay que manejar alfa y RGB de forma coordinada. El Feather de Piick a 1-2 px resuelve los casos leves; los graves necesitan una solución de IA en la nube (la segmentación semántica de remove.bg está entrenada específicamente con bordes de pelo).
Artefacto 4: bordes irregulares (jagged)
Causa raíz: PNG es un mapa de bits; los bordes son píxel a píxel. El algoritmo binariza directamente (0 o 255) sin términos medios.
Escenario típico: logos diseñados en vectorial tras quitar el fondo, textos tipográficos tras quitar el fondo.
Solución: al contrario que los halos blancos: no uses Feather. Los bordes del logo deben permanecer nítidos; Feather=0. Si la irregularidad persiste, la imagen fuente tiene resolución demasiado baja. Escala la fuente 2-4× primero (con un escalador de IA) y luego quita el fondo.
Qué es Edge Feather y cómo funciona
Con las causas raíz claras, Edge Feather se vuelve intuitivo.
Edge Feather es una distancia de suavizado (en píxeles) en el borde.
- Feather=0: sin suavizado. Cada píxel es 100% sujeto o 100% fondo. Úsalo para logos, marcas, elementos de UI.
- Feather=1 (por defecto): en una transición de 1 píxel, el alfa va linealmente de 0 a 255 (con el RGB del borde ajustado en consecuencia). Suavizado casi imperceptible, pero los artefactos de anti-aliasing se reducen claramente.
- Feather=2-3: transición de 2-3 píxeles, “banda semitransparente” visible en los bordes del sujeto. Úsalo para fuentes con anti-aliasing fuerte (fotos antiguas, fuentes de baja calidad).
- Feather=4+: demasiado suave; el sujeto se ve “borroso”. No superes 4.
Por dentro:
Para los píxeles de borde (donde la máscara pasa de 0 a 255), la función featherMask de Piick:
- Detecta los píxeles de borde
- Hacia afuera desde el borde (dirección fondo) 1-3 píxeles, el alfa sube linealmente de 0 a 128
- Hacia adentro desde el borde (dirección sujeto) 1-3 píxeles, el alfa baja linealmente de 255 a 128
- Crea una banda de transición suave en el medio
Es una implementación unidimensional sencilla que funciona suficientemente bien. El “Plumón” de Photoshop usa convolución de desenfoque gaussiano, que tiene mayor calidad pero también un coste mucho mayor: para el procesamiento por píxeles en lotes, la rampa lineal sencilla de Piick ofrece la mejor relación calidad/rendimiento.
Recomendaciones operativas
Empieza con los valores por defecto de Piick (Tolerancia=30, Feather=1) y luego mira el resultado para decidir los ajustes:
| Lo que ves | Ajusta Feather | Ajusta Tolerancia |
|---|---|---|
| Halo blanco/negro (fondo claro) | Sube a 2-3 | - |
| Bordes del sujeto “suaves” | Baja a 0 | - |
| El sujeto se está comiendo | - | Baja a 15-20 |
| El fondo no se quita | - | Sube a 40-50 |
| Mechones de pelo faltantes | - | Prueba 50-60 + Feather=1 |
| Bordes teñidos con el color de fondo | Sube a 2-3 + cambia a la nube | - |
El punto dulce de Feather es 1-2 px. Por debajo de 1, ningún efecto visible. Por encima de 3, el sujeto se ve suave.
FAQ
¿Subir Feather al máximo da los bordes más limpios?
No. Feather=4 hace que el sujeto se vea borroso y los halos blancos empeoran (la banda transparente se ensancha).
Mis bordes ya son perfectos, ¿necesito Feather?
No. Feather=0 con salida PNG está bien. Pero el Feather por defecto de 1 apenas afecta a la nitidez, así que puedes dejarlo por defecto.
¿Tiene JPG un canal alfa?
No. JPG no soporta transparencia. Todos los píxeles semitransparentes se componen sobre el fondo durante la codificación (asumiendo blanco). Por eso quitar fondos a imágenes basadas en JPG siempre deja halos blancos: la información de anti-aliasing ya se perdió.
Solución: quita primero el fondo de la fuente JPG (salida PNG) y luego convierte a JPG con un color de fondo específico usando el conversor de formatos.
¿Las imágenes vectoriales (SVG, AI, PDF) necesitan Feather?
No. Los gráficos vectoriales son curvas definidas matemáticamente sin “bordes de píxel”. Al exportar a PNG, el motor de renderizado aplica un anti-aliasing apropiado, normalmente más limpio que la eliminación de fondo en mapas de bits.
¿Hay alguna herramienta que elija Feather automáticamente?
Algunas herramientas avanzadas (el “Seleccionar y aplicar máscara” de Photoshop) ajustan el feather automáticamente según el contenido de la imagen. Piick V1 usa controles manuales, pero deja margen para que la V2 ajuste automáticamente según las características de la imagen.
Resumen de una línea
Halos blancos / negros / de color = píxeles semitransparentes con anti-aliasing mal manejados. Edge Feather es la palanca clave para solucionarlo. 1 px por defecto cubre el 90% de los casos. Para fuentes de baja calidad o escenas complejas, sube a 2-3 px; si aun así no funciona, cambia a una solución en la nube.
Abre piick.cc/tools/background-remover y desliza Edge Feather de 0 a 4: entenderás inmediatamente lo que hace.