Unterschied zwischen Methoden zum Skalieren einer Bitmap

8

Es gibt mindestens zwei Methoden, um eine Bitmap in Android zu skalieren, Eine besteht darin, "inScaled, inDensity, inTargetDensity" in "BitmapFactory.Options" zu verwenden, wenn eine Bitmap-Quelle dekodiert wird. Die andere Möglichkeit besteht darin, eine "Matrix" in "Bitmap.createBitmap" zu verwenden.

Was mich interessiert, ist der Unterschied zwischen diesen beiden Methoden? Was ist mit der Qualität der produzierten Bitmap? Und was ist mit der Speichernutzung? usw. ...

    
Henry 20.10.2010, 09:27
quelle

3 Antworten

1

Wenn Sie BitmapFactory mit den richtigen inScale-Optionen verwenden, können Sie mehr Speichereffizienz erzielen als mit Bitmap.createScaledBitmap() oder Bitmap.createBitmap() mit einer Matrixskala. Es ist jedoch komplizierter.

Auschecken Wie skaliere ich ein Streaming-Bitmap an Ort und Stelle, ohne zuerst das gesamte Bild zu lesen? für Details.

    
emmby 13.08.2011 14:46
quelle
1

Ein Unterschied, den ich gefunden habe, war, dass die Verwendung von BitmapFactory options.inSampleSize zum Skalieren von Bitmaps nicht so granular ist, da die Skalierung 1 / inSampleSize ist und da inSampleSize eine ganze Zahl sein muss, werden Sie mit Skalierung wie 1/2 enden , 1/3, 1/4 usw., aber nichts mehr als das.

Bitmap.createScaledBitmap() , obwohl speicherintensiver, ermöglicht eine granularere Skalierung mit einer Auflösung von bis zu 1 dpi.

    
Phileo99 18.10.2012 19:24
quelle
0

Es gibt keinen "großen" Unterschied. Ein Vorteil bei der Verwendung von BitmapFactory.Options besteht darin, dass Sie die Breite / Höhe von Bitmap überprüfen können, ohne Speicher für die tatsächlichen Bitmap -Pixel zuzuweisen.

Sie können auch leicht sehen, welche Optionen BitmapFactory.Options haben und vergleichen Sie diese mit Bitmap.createBitmap() . Im Allgemeinen ist BitmapFactory.Options wie eine "Werkzeug" API, um das Dekodieren und Sampling Bitmap s einfacher zu machen.

    
Wroclai 24.04.2011 16:14
quelle

Tags und Links