Pregunta

¿Qué algoritmos a utilizar para una imagen reducción?

Lo que es más rápido?

¿Qué algoritmo se realiza para una imagen de cambio de tamaño (especialmente la reducción de las grandes 600x600 a súper pequeño 6x6 por ejemplo) por gigantes tales como flash y plata jugador, y HTML5?

¿Fue útil?

Solución

bilineal es el método más ampliamente utilizado y puede ser obligado a correr tan rápido como el vecino más cercano abajo-muestreo algoritmo, que es el más rápido pero menos preciso.

El problema con una aplicación ingenua de muestreo bilineal es que si lo utiliza para reducir una imagen más de la mitad, entonces se puede ejecutar en aliasing similares a lo que se encontraría con el vecino más cercano. La solución a esto es utilizar un enfoque basado pirámide. Básicamente, si desea reducir 600x600 a 30x30, primero se reduce a 300x300, 150x150 y luego, a continuación, 75x75, 38x38 entonces, y sólo entonces se utiliza bilineal para reducir a 30x30.

Cuando la reducción de una imagen a la mitad, el algoritmo de muestreo bilineal se hace mucho más simple. Básicamente para cada fila alterna y la columna de píxeles:

y[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;

Otros consejos

No es un caso especial: JPG reducción de más de un factor de 8. Un factor directo de 8 reescalar se puede hacer en los datos JPG primas, sin descomprimirlo. JPG de se almacenan como bloques comprimidos de 8x8 píxeles, con el valor medio de pixel primero. Como resultado de ello, por lo general toma más tiempo para leer el archivo desde el disco o la red que se necesita para reducir la escala de la misma.

Normalmente se pegaría a un filtro bilineal para escalar hacia abajo. Para cambiar el tamaño de las imágenes a diminuta tamaños, sin embargo, usted puede estar fuera de suerte. La mayoría de los iconos son editados píxel por la mano para que se vean lo mejor posible.

Aquí es un buen recurso que explica los conceptos bastante bien.

Hay una excelente artículo en el Proyecto de Código que muestra el efectos de varios filtros de imagen.

Para la reducción de una imagen I sugeriría el algoritmo bicúbico; esto tiene un efecto de nitidez natural, por lo detalle en la imagen se mantiene en tamaños más pequeños.

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