2013-10-20 2 views
5

Ich möchte eine volle Auflösung (und nicht komprimierte) Bilddaten erhalten, dann kann ich einige Bildverarbeitung machen.Wie bekomme ich volle Auflösung und unkomprimierte Bilddaten mit Android Kamera?

Soweit ich weiß, kann die Android-API takePicture (Shutter, RAW, JPG) etwas tun.Aber was ich brauche, ist nicht eine komprimierte JPEG-Daten, eine unkomprimierte Bilddaten stattdessen.Auch wusste ich, dass die Raw Callback doesn ' Ich arbeite nach einigen Posts, die ich gelesen habe.

Ich fand auch die API onPreviewFrame, und die größte Bildgröße, die ich davon habe, ist 1280 * 720 (setPreviewSize verwenden), während das Originalbild ich Caputure von der Kamera ist eine Auflösung von 1952 * 3264.

Auch Intent.putExtra (MediaStore.EXTRA_OUTPUT, uri) kann Hilfe sein, aber es ist wahrscheinlich, dass die Datei der URI eine JPEG-Datei sein sollte, die ein komprimiertes Format ist.

Aber gibt es sowieso eine volle Größe (die gleiche wie aufgenommen) und unkomprimierte (kein JPEG) Bilddaten?

Antwort

4

Die Dokumentation für takePicture() besagt eindeutig, dass Rohdaten angefordert werden können, der Rückruf ist jedoch optional. Heutzutage unterstützen die meisten Geräte keinen Raw Callback. Dies sollte keine Überraschung sein: Moderne Kameras führen JPEG-Komprimierung in Hardware durch, und der Speicherbus zwischen der Kamera und dem Anwendungsprozessor kann 24 Megabyte Rohdaten nicht schnell genug verarbeiten (für eine bescheidene 8-Megapixel-Kamera).

Vermeiden Sie die Versuchung, einen Vorschau-Callback anstelle von takePicture() zu verwenden: Selbst bei gleicher Auflösung wird die Bildqualität eines Standbildes besser. Vorschaubild kann ungenauen Autofokus, Stabilisierung, Belichtung und sogar Weißabgleich haben.

+0

Vielen Dank. Meinst du, dass wir nicht unkomprimierte Bilddaten mit Android Kamera API auf den meisten Geräten bekommen können? –

+0

* Meinst du, dass wir nicht unkomprimierte Bilddaten mit Android Kamera API auf den meisten Geräten bekommen? * Genau. –

+0

Stimmt das jetzt im Jahr 2016? –

Verwandte Themen