Wie zu zeichnen und skalieren einer bitmap auf einer Leinwand mit Hilfe der bikubischen interpolation in Android?
Möchte ich zum zeichnen einer bitmap auf einer Leinwand mit einer Größe größer als es ist. Ich kann die Leinwand.drawBitmap(bitmap, null, destRect, null); aber das gibt eine schlechte Qualität, wie das Ergebnis ist pixelig, wenn die Quelle Bild ist ein Stück kleiner als die Ziel-Rechteck.
Wie kann ich zeichne meine bitmap mit bilinear oder bicubic resampling?
Jede Hilfe würde geschätzt, danke.
InformationsquelleAutor der Frage | 2010-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die FILTER_BITMAP_FLAG fahne in Ihrer Farbe.
oder
Dasselbe gilt für die anderen (syntaktischer Zucker) Formen des
drawBitmap
Methode.Gibt es keine Dokumentation überall für die meisten Android-zeichnen-Optionen und es ist Dokumentation für die zugrunde liegenden nativen Bibliothek Skia, das das rendering. Ich würde glücklicher sein, wenn Sie dort waren. Sie können suchen, die Skia-source-code auf Google Code Search. Suche nach Skia und Graben in der raw-Quelle; das ist die einzige Dokumentation.
InformationsquelleAutor der Antwort Brian
FILTER_BITMAP_FLAG funktioniert nicht für die Drosselung in den meisten Fällen.
Gutes downscaling-Algorithmus (nicht-nächsten Nachbarn wie) besteht aus nur 2 Schritte (sowie die Berechnung der genauen Rect für input - /output-Bilder zuschneiden):
Hier ist eine detaillierte Erklärung, wie SonyMobile gelöst diese Aufgabe: http://developer.sonymobile.com/2011/06/27/how-to-scale-images-for-your-android-application/
Hier ist der source code von SonyMobile Skala utils: http://developer.sonymobile.com/downloads/code-example-module/image-scaling-code-example-for-android/
InformationsquelleAutor der Antwort goRGon