decodeByteArray und copyPixelsToBuffer funktionieren nicht. SkImageDecoder :: Factory hat null zurückgegeben

8

Ich habe eine Klasse TouchPoint, die Serializable implementiert und weil es Bitmap enthält Ich schrieb writeObject und readObject für diese Klasse:

%Vor%

Das Problem ist, dass ich

bekomme
  

SkImageDecoder :: Factory hat null zurückgegeben

Wie kann ich das beheben? Ich weiß, dass eine mögliche Lösung darin besteht, writeObject () in

zu ändern %Vor%

ABER diese Methode ist fast 10 mal langsamer.

  • copyPixelsToBuffer ~ 14ms zum Schreiben eines Bildes
  • _bmp.compress ~ 160ms

UPDATE Finden Sie heraus, dass das eigentliche Problem nach

liegt %Vor%

Alle byte [] Array-Elemente sind: 0

    
Cyberon 26.05.2012, 22:28
quelle

2 Antworten

7

Endlich finde ich einen Weg, damit es funktioniert und gleichzeitig schneller ist. Ich habe zwei Probleme mit dieser Methode festgestellt:

  1. Ich sollte auch den Bitmap.Config-Parameter übergeben, ohne dass ich das Byte-Array
  2. nicht dekodieren kann
  3. _bmp.compress und _bmp.copyPixelsToBuffer geben verschiedene Arrays, so dass ich decodeByteArray nicht verwenden konnte.

Ich habe sie auf diese Weise gelöst

%Vor%

Das ist schnell genug für mich - ungefähr 15x schneller als der Weg von bmp.compress. hoffe das hilft:)

    
Cyberon 03.06.2012, 14:38
quelle
1

Bitmap zu Byte []:

%Vor%

Verwenden Sie Bufferedstreams für eine bessere Leistung.

    
Klaasvaak 31.05.2012 18:10
quelle