Illustrator PNG con exportación de transparencia - ¿Contorno blanco en Web cuando no es 100%?

Creé un gráfico vectorial en Illustrator CC y usé "Guardar para Web" para crear un PNG transparente. Sin embargo, cuando se representa en mi sitio, agrega un contorno de luz tenue alrededor del círculo gris en la captura de pantalla de muestra incluida. Tenga en cuenta, sin embargo, que solo aparece si la imagen cambia de tamaño (hizo su contenedor más pequeño, por lo que la imagen se redujo).

Imagen al 100 %, sin contorno blanco, bonita y nítida:

Imagen al 100

Imagen reducida al 95% (o cualquier % además de 100), contorno de artefacto que hace que se vea borrosa:

Imagen redimensionada

Nunca antes había tenido este problema e intenté ajustar la mesa de trabajo a cantidades enteras de px, eliminé el perfil de color, cambié la configuración de transparencia de trama, cambié entre los modos de color cmyk y rgb, desmarqué la conversión a sRGB y una multitud de otros ajustes. Me estoy olvidando en este momento, pero esto es bastante frustrante y espero que esta maravillosa comunidad pueda proporcionar alguna información.

¿Qué método de suavizado estás eligiendo?
No sé las razones por las que hace esto al cambiar el tamaño en línea, pero también lo he experimentado. Podría estar basado en el navegador. Lo mejor es tener su imagen en el tamaño exacto que necesita para la web, y la imagen también será un poco más clara. Tal vez este hilo podría ser útil: stackoverflow.com/questions/9945363/…
¿Lo estás guardando en PNG-8 o PNG-24?
Guardando como PNG-24.
Es plausible que algo en la cadena esté alterando la resolución del canal alfa. Sé, por ejemplo, que las rutinas PHP GD más antiguas usan alfa de 7 bits internamente: la implicación es que pierde precisión de color en la transparencia, ya que solo hay 128 niveles de gris posibles.

Respuestas (3)

Has descubierto un hecho central sobre las imágenes de píxeles. No existe tal cosa como un píxel no coloreado (transparente solo significa que el color está oculto). Todos los píxeles tienen color, incluso los transparentes. Cuando implementa una interpolación de la imagen, invariablemente tendrá que muestrear píxeles en las áreas transparentes.

Las implementaciones ingenuas interpolan cada canal por separado, por lo que el color del área transparente se desvanece durante el proceso, ya que su imagen es, de hecho, blanca en píxeles transparentes. Incluso las implementaciones no ingenuas a veces tendrán grandes problemas porque es muy difícil hacerlo perfectamente bien.

Hay 2 formas de resolver esto.

  1. No escalar, esto es una obviedad
  2. Colorea los píxeles transparentes con el color de los píxeles del borde. Sin embargo, esto es mucho más difícil de lo que parece. Dado que sus herramientas no harán esto por usted sin MUCHO trabajo adicional y maldiciones. Todavía hay una posibilidad de que no te ayude mucho.

En el panel de preferencias: Editar > Preferencias > General o cmd+k, asegúrese de que esté seleccionado suavizado. Suavizará muy bien los archivos png 24 exportados. También asegúrese de estar usando png-24 como se sugirió anteriormente y cuando esté guardando para la web que haya seleccionado arte optimizado (está en el menú desplegable en el menú de tamaño de imagen).

El suavizado está marcado.

Esto se debe a que confía en el navegador para cambiar el tamaño de su imagen.

Hay algunas formas de solucionar el problema con CSS: creo que ms-interpolation-mode: nearest-neighbor;para Internet Explorer y image-rendering: -moz-crisp-edges;Firefox, aunque no estoy seguro acerca de Chrome, Safari u otros. Debería buscar o preguntar en el desbordamiento de pila para eso.

La única forma de evitar esto al 100% es guardar el PNG en el tamaño correcto.

Hola Cai, bienvenido a GDSE y gracias por tu respuesta. Si tiene alguna pregunta, consulte el centro de ayuda o comuníquese con uno de nosotros en el chat de diseño gráfico una vez que su reputación sea suficiente (20). ¡Sigue contribuyendo y disfruta del sitio!