¿Cómo mejorar una imagen de píxeles PNG no vectoriales sin pérdida ni desenfoque?

Veo que se dice en casi todas partes que no se puede mejorar una imagen no vectorial sin cierta pérdida y desenfoque, pero ¿cómo funciona de manera diferente la herramienta de zoom?

Ejemplo: Estoy tratando de hacer esto: ingrese la descripción de la imagen aquíaproximadamente el doble de grande.

Cuando se usa la herramienta de zoom en un programa como GIMP o Paint.NET o Picture Viewer, hay muy poca borrosidad incluso cuando se agranda mucho, como se muestra aquí:ingrese la descripción de la imagen aquí

Pero cuando uso la herramienta de escala en GIMP en cualquiera de los modos Cubic, Linear o Sinc, la imagen se vuelve borrosa, particularmente los bordes de cada "píxel".

Supongo que usar la herramienta de zoom e imprimir pantalla>pegar en una nueva ventana es UNA solución, pero ¿es la única o la mejor?

Lo que desea se llama filtrado de cuadro (pero solo en la ampliación funciona así) o filtrado de vecino más cercano. Pero sí, el filtro que elegiste haría eso.

Respuestas (4)

El uso de Interpolación: Ninguno en lugar de Cúbico, Lineal o Sinc me dio los resultados que estaba buscando.

Y esto es lo que hace Zoom efectivamente también.

Intenta reducir esto:

ingrese la descripción de la imagen aquí

Es más fácil que hacer algo más grande.

El contorno negro necesita un poco de trabajo manual para que quede bloqueado si se desea. Pero prueba, si esto es útil. El relleno blanco debe ser exacto: no se copia de ningún otro lugar, es de su imagen, solo se cuestiona y recupera el suavizado. No funcionó a la perfección con el contorno que tenía bordes exteriores afilados y en bloque. Puse un nuevo contorno suave.

NOTA: Descarga este PNG, si lo copias y lo pegas, el resultado es aleatorio. Probablemente pierdas el fondo transparente.

La receta:

Su pequeña r original se amplió al 800 % de las dimensiones en píxeles. Hay muchos buenos programas de cambio de tamaño que cuestionan los detalles que faltan y pueden recuperar algunos suavizados obvios. Aquí se utilizó On1 Perfect Resize. El resultado:

ingrese la descripción de la imagen aquí

El contorno no es especialmente agradable, pero no había pegamento para hacerlo de otra manera. El interior fue suavizado. El redimensionador de On1 por defecto piensa que el interior originalmente tenía un borde afilado.

Seleccioné el interior, suavicé la selección (ni difuminada ni difuminada) y la pinté completamente de blanco. Luego llevé el interior a Inkscape (=Ctrl+C, Ctrl+V)

En Inkscape tracé el interior con la configuración predeterminada. Ver la siguiente caricatura:

ingrese la descripción de la imagen aquí

  1. La r agrandada con interior blanqueado. ¡Esto no fue rastreado!

  2. El interior después del calco, se volvió negro y se insertó un grueso trazo negro.

  3. El interior después del calco, solo relleno blanco, sin trazo

  4. esto es 3 y 2 a cuestas, lo mismo que ya se ofreció para encoger

ANEXO: On1 Resizer es un programa de alto costo. También hay software gratuito utilizable. He probado Smilla Enlarger. https://sourceforge.net/projects/imageenlarger/

Sus resultados son un poco más suaves que los de On1. Pero se pueden afilar. Smilla aparentemente también intenta preguntar qué hay detrás del contorno en bloques de tu r. Aquí hay un resultado ampliado que se hizo en Smilla y luego se hizo nítido en GIMP.

NOTA: Este es un mapa de bits, no se intentó rastrear.

ingrese la descripción de la imagen aquí

Conseguirás el mejor resultado posible aumentando el tamaño de la imagen para que sea 4 veces mayor. La explicación simple es que, al hacerlo, cada píxel se dibujará en 4 y no habrá procesamiento ni alteración de la imagen que no puedas controlar. Un ejemplo de esto se ve al proyectar una imagen HD en una pantalla 4K.

Veo que se dice en casi todas partes que no se puede mejorar una imagen no vectorial sin cierta pérdida y desenfoque

Esa es una simplificación excesiva.

Sin embargo, lo que es cierto es que tienes que "llenar los huecos" de alguna manera. Hay muchas maneras de hacer esto, que producirán diferentes resultados. Es imposible que cualquier algoritmo de escala sepa con certeza qué se suponía que había en los espacios en la mente del artista original.

La forma más sencilla de llenar los espacios es "vecino más cercano" (a veces conocido como "ninguno"), transforma las coordenadas de salida en las coordenadas de entrada y luego busca el píxel más cercano. Esto tiende a parecer "bloqueado", especialmente para relaciones de escala no enteras. Por lo general, esto es lo que se usa para las herramientas de "zoom" por un par de razones, en primer lugar porque cuando se trabaja en una imagen puede ser deseable ver realmente los píxeles individuales, en segundo lugar porque es rápido.

Las opciones "lineal", "cúbica" y "sinc" funcionan bajo el supuesto de que los píxeles de la imagen son muestras de alguna función 2D continua que puede y debe interpolarse. El resultado es borrosidad en lugar de bloques.

Pero también existen algoritmos de escala dedicados para "pixel art", en lugar de asumir que los píxeles son muestras de alguna función continua, estos asumen que al menos algunos de los píxeles están tratando de producir líneas y formas con bordes definidos. A veces, hay un umbral de color en el que se supone que los píxeles de colores similares implementan tramado y desenfoque, mientras que se supone que los píxeles con colores muy distintos representan bordes deliberados. Suelen funcionar mejor cuando las imágenes originales no tienen suavizado.

Y luego hay herramientas que pueden hacer todo el camino y rastrear automáticamente mapas de bits para producir vectores. Inkscape tiene un par de opciones diferentes disponibles (de hecho, hay una de propósito general y otra específicamente optimizada para pixel art), y también hay opciones en paquetes comerciales.