Ich habe entschieden, dass Bitmaps sehr viel Arbeitsspeicher beanspruchen, was leicht zu Fehlern bei Arbeitsspeicher führen kann. Daher werde ich die harte, speicherintensive Arbeit an C / C ++ - Code schreiben.
Auch wenn alles fehlerfrei läuft, ist das Ausgabebild keine Rotation des Originals. Tatsächlich ruiniert es es vollständig.
Die Rotation sollte im Gegenuhrzeigersinn erfolgen, 90 Grad.
Wie Sie sehen können, sind nicht nur die Farben seltsamer geworden, sondern die Größe stimmt nicht mit meinen Einstellungen überein. Etwas ist hier wirklich komisch.
Vielleicht lese ich die Daten nicht richtig?
Natürlich ist das nur ein Beispiel. Der Code sollte auf jeder Bitmap funktionieren, solange das Gerät über genügend Speicher verfügt, um es zu halten. Außerdem möchte ich andere Operationen an der Bitmap durchführen, als sie zu drehen.
Android.mk-Datei:
%Vor%cpp-Datei:
%Vor%Java-Datei:
%Vor%BEARBEITEN: Nachdem ich meine Antwort bekommen habe, möchte ich diesen Code und Notizen darüber für alle teilen:
Damit es funktioniert, habe ich im Code jede Instanz von "uint16_t" durch "uint32_t" ersetzt (das ist der Fehler in meinem Code, nach dem ich gefragt habe).
Eingabe- und Ausgabe-Bitmap muss mit 8888 config sein (was ARGB ist)
Eingabebitmap wird während des Prozesses wiederverwendet.
Der Code dreht das Bild um 90 Grad gegen den Uhrzeigersinn. Natürlich können Sie es je nach Ihren Bedürfnissen ändern.
Ich habe einen netten Post mit dieser Funktionalität und anderen gemacht, hier .
Tags und Links android android-ndk jni bitmap image-rotation