Trong Android, khi giải mã bitmap từ ảnh trên điện thoại, dữ liệu EXIF trong bản gốc bị mất. Tôi đang gửi Bitmap này đến máy chủ của tôi thông qua một ổ cắm và muốn đính kèm lại dữ liệu EXIF còn thiếu vào dữ liệu đang được gửi.Cách đính kèm siêu dữ liệu EXIF vào một bitmap được tuần tự hóa trong Android?
Tôi có một số mã mà tải một đối tượng Bitmap từ MediaStore và nén nó vào một mảng byte để chuẩn bị để gửi nó qua một ổ cắm:
Bitmap bitmap = ...
ByteArrayOutputStream stream = new ByteArrayOutputStream(bitmap);
bitmap.compress(CompressFormat.JPEG, 70, stream);
byte[] input = stream.toByteArray();
Tôi muốn sử dụng ExifInterface để có được tại EXIF siêu dữ liệu trong jpeg gốc trên thẻ SD và bằng cách nào đó thêm nó vào mảng byte gửi đi theo cách tôi có thể trích xuất một jpeg với tất cả EXIF chính xác ở phía máy chủ (hy vọng không làm điều này trên máy chủ). Cho đến nay, tôi quản lý để sử dụng ExifInterface để đọc tất cả các dữ liệu EXIF:
String path = ... //bitmap file path
ExifInterface exif = new ExifInterface(path);
... = exif.getAttribute(...)
EDIT: cách tối ưu, tôi muốn tìm một giải pháp mà không sử dụng thư viện. Nếu tôi chỉ có thể nhận được các chỉ số của mảng byte của jpeg ban đầu chứa EXIF và thêm/thêm các byte này vào mảng byte được sản xuất bởi bitmap.compress(...)
sẽ là tốt nhất.
Did bạn thành công với việc thêm thông tin exif để mảng byte? – Vikas