2010-10-20 15 views
8

Hay al menos dos métodos para escalar un mapa de bits en Android, Uno es usar "inScaled, inDensity, inTargetDensity" en "BitmapFactory.Options" cuando se decodifica una fuente de mapa de bits. El otro es usar una "Matriz" en "Bitmap.createBitmap".diferencia entre métodos para escalar un mapa de bits

Lo que me interesa es cuál es la diferencia entre estos dos métodos? ¿Qué pasa con la calidad del mapa de bits producido? ¿Y el uso de memoria? etc ...

Respuesta

0

No hay una "gran" diferencia. A pesar de que uno de los beneficios con el uso de la BitmapFactory.Options es que se puede comprobar si la anchura/altura de su Bitmap sin asignar memoria para los píxeles reales Bitmap 's.

Además, puede ver fácilmente qué options BitmapFactory.Options tiene y comparar eso con Bitmap.createBitmap(). En general, BitmapFactory.Options es como una API de "herramienta" para facilitar la decodificación y el muestreo de Bitmap s.

1

Una diferencia que encontré fue que usar las opciones de BitmapFactory.inSampleSize para escalar mapas de bits no es tan granular, porque la escala será 1/inSampleSize, y porque inSampleSize debe ser un número integral, terminas escalando como 1/2, 1/3, 1/4, etc., pero nada más granular que eso.

Bitmap.createScaledBitmap(), aunque más intensivo de la memoria, permite escalar más granular, hasta resolución 1DP.

+0

Olvidó el método inScaled + inDensity + inTargetDensity que permite la escala granular. Solo tiene que conocer las magnitudes de escala y trabajar con inSampleSize. – Gensoukyou1337

Cuestiones relacionadas