#android
#Android
Вопрос:
Я сохраняю изображение с пользовательской камеры:
public String getFilename() {
File file = new File(Environment.getExternalStorageDirectory().getPath(), "Products/Images");
if (!file.exists()) {
file.mkdirs();
}
String uriSting = (file.getAbsolutePath() "/" System.currentTimeMillis() ".jpg");
return uriSting;
}
Теперь:
public String saveImage(Bitmap bitmap) {
FileOutputStream out = null;
String filename = getFilename();
try {
out = new FileOutputStream(filename);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
} catch (FileNotFoundException e) {
Log.e("Error",e.toString());
e.printStackTrace();
return "";
}
return filename;
}
Я использую это имя файла в ExifInterface после сохранения изображения
exif = new ExifInterface(filePath);
Но каждый раз, когда это отображается в моем журнале Raw image not detected
, Exif: 0
Комментарии:
1.
file.mkdirs();
Адаптируйте свой код. Проверьте возвращаемое значение mkdirs и остановите, если false . Возвращает значение null. Остановитесь и отобразите всплывающее окно для информирования пользователя.
Ответ №1:
Вы сжимаете растровое изображение в файл jpg.
Растровые изображения не содержат информации exif.
И сжатие растрового изображения в файл jpg не добавляет заголовок exif в файл.
Комментарии:
1. можете ли вы сказать мне другой способ получения изображения, потому что я использую это при захвате
BitmapFactory.decodeByteArray(data, 0, data.length);
, это даст растровое изображение, как я могу получить что-то, что содержит информацию exif2. FileOutputStream, похоже, тогда выбор
3. ???? Вы создали свое растровое изображение из «данных». Итак, что именно было в данных?
4. Я приму ваш ответ, как только мой запрос будет разрешен большое спасибо!
5. Вы приняли неправильный ответ. Хорошо.. не то, чтобы это было неправильно…
Ответ №2:
BitmapFactory.decodeByteArray(данные, 0, данные.длина);
У вас есть хороший массив байтов, называемый data.
Этот массив байтов содержит байты файла jpg с заголовком exif.
Если вы хотите сохранить данные в файл, не создавайте сначала промежуточное растровое изображение, так как в этот момент вы потеряли заголовок exif.
Вместо этого сохраните байты в вашем массиве данных непосредственно в файл.
Тогда у вас будет файл jpg с заголовком exif.