In Android, quando decodifica una bitmap da una foto sul telefono, i dati EXIF nell'originale vengono persi. Sto inviando questa Bitmap al mio server tramite un socket e vorrei ricollegare i dati EXIF mancanti ai dati inviati.Come collegare i metadati EXIF a una bitmap serializzata in Android?
ho qualche codice che carica un oggetto Bitmap dal MediaStore e lo comprime ad un array di byte in preparazione per inviarlo su un socket:
Bitmap bitmap = ...
ByteArrayOutputStream stream = new ByteArrayOutputStream(bitmap);
bitmap.compress(CompressFormat.JPEG, 70, stream);
byte[] input = stream.toByteArray();
voglio usare l'ExifInterface per arrivare alla EXIF i metadati nel jpeg originale sulla scheda SD e in qualche modo li aggiungo all'array di byte in uscita in modo che sarei in grado di estrarre un jpeg con tutti gli EXIF corretti sul lato server (si spera senza farlo sul server). Finora, sono riuscito a usare l'ExifInterface di leggere tutti i dati EXIF:
String path = ... //bitmap file path
ExifInterface exif = new ExifInterface(path);
... = exif.getAttribute(...)
EDIT: In modo ottimale, mi piacerebbe trovare una soluzione che non utilizza le librerie. Se potessi ottenere gli indici dell'array di byte del jpeg originale che contengono EXIF e anteporre questi byte all'array di byte prodotto da bitmap.compress(...)
, sarebbe meglio.
Forse ad avere successo con l'aggiunta di informazioni EXIF per array di byte? – Vikas