Android - Lesen PNG-Bild ohne alpha-und entschlüsseln als ARGB_8888

Ich versuche zu Lesen ein Bild von der sdcard (im emulator) und dann erstellen Sie ein Bitmap-Bild mit der

BitmapFactory.decodeByteArray

Methode. Ich habe die Optionen:

options.inPrefferedConfig = Bitmap.Config.ARGB_8888

options.inDither = false

Dann extrahiere ich die Pixel in einen ByteBuffer.

ByteBuffer buffer = ByteBuffer.allocateDirect(width*height*4)

bitmap.copyPixelsToBuffer(buffer)

Ich diese ByteBuffer dann in das JNI, um es zu konvertieren in RGB-format und berechnen wollen, auf Sie.

Aber immer bekomme ich falsche Daten - I-test ohne änderung der ByteBuffer. Nur, was ich tun ist, um Sie in die native Methode in JNI. Dann warf Sie es in eine unsigned char* auf und wandeln es wieder in eine ByteBuffer bevor es wieder zurück nach Java.

unsigned char* buffer = (unsinged char*)(env->GetDirectBufferAddress(byteBuffer))

jobject returnByteBuffer = env->NewDirectByteBuffer(buffer, length)

Vor der Anzeige des Bildes bekomme ich die Daten wieder mit

bitmap.copyPixelsFromBuffer( buffer )

Aber dann hat er falsche Daten.

Meine Frage ist, ob dies ist, weil das Bild wird intern umgewandelt in RGB-565, oder was ist hier falsch?

.....

Haben eine Antwort für Sie:

->>> ja, es wird intern gewandelt zu RGB565.

Weiß jemand, wie man so ein bitmap-Bild aus PNG mit ARGB8888 pixel-format?

Wenn jemand eine Idee hat, wäre es toll!

  • Der Punkt ist, dass ich müssen die Bild-Daten zu berechnen, auf die es in einer native-code-Teil. Für die Prüfung (emulator) ich nehme das PNG-Bild von SDcard und dann nehme ich Bild-Sequenz aus dem android-Kamera. Ich will 24Bit Bilder um keine Informationen zu verlieren, bevor die Berechnung drauf... PS: wo ist der commant von dem anderen Kerl gegangen?
  • ok, ich werde versuchen einen anderen Weg. Ich will die Schnellste Weg, um die Bild-Daten aus einem Bild. Danach werde ich einige Bild-Verarbeitung auf die Rohdaten. Was ist der Schnellste Weg zum extrahieren der Bild-pixel-Daten in ein byte [] ? Grüße, F.
InformationsquelleAutor user345982 | 2010-05-21
Schreibe einen Kommentar