我使用camera2API工作,我需要獲得focal lenght
屬性。如何從照片屬性中獲得35焦距?
我找到了一個方法,從照相機特性
float[] f = characteristics.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS);
for (float d : f) {
Logger.logGeneral("LENS_INFO_AVAILABLE_FOCAL_LENGTHS : " + d);
}
得到它,但這種方法retern回值像3.8
或不便接近它。它取決於設備。但是這個值必須大致接近30-35
...
然後我找到了另一個解決方案。當我拍照我打開照片的屬性,看到exextly我所得到的,什麼我需要
我tryed直接從圖像
private JSONObject getJsonProperties() {
JSONObject properties = new JSONObject();
final ExifInterface exif = getExifInterface();
final String [] tagProperties = {TAG_DATETIME, TAG_DATETIME_DIGITIZED, TAG_EXPOSURE_TIME,
TAG_FLASH, TAG_FOCAL_LENGTH, TAG_GPS_ALTITUDE, TAG_GPS_ALTITUDE_REF, TAG_GPS_DATESTAMP,
TAG_GPS_LATITUDE, TAG_GPS_LATITUDE_REF, TAG_GPS_LONGITUDE, TAG_GPS_LONGITUDE_REF,
TAG_GPS_PROCESSING_METHOD, TAG_GPS_TIMESTAMP, TAG_IMAGE_LENGTH, TAG_IMAGE_WIDTH, TAG_ISO, TAG_MAKE,
TAG_MODEL, TAG_ORIENTATION, TAG_SUBSEC_TIME, TAG_SUBSEC_TIME_DIG, TAG_SUBSEC_TIME_ORIG, TAG_WHITE_BALANCE};
for (String tag : tagProperties){
try {
properties.put(tag, exif.getAttribute(tag));
} catch (JSONException e) {
e.printStackTrace();
}
}
return properties;
}
private ExifInterface getExifInterface() {
ExifInterface exif = null;
try {
exif = new ExifInterface(ImageSaver.getImageFilePath());
} catch (IOException e) {
e.printStackTrace();
}
return exif;
}
我結合一套完整的性能得到這個屬性當然還包括我非常需要的一個TAG_FOCAL_LENGTH
。但我再次得到這樣的錯誤瓦努這樣的473/100
...我不知道這是什麼意思... Valeu必須是大約30-35
...
我在做什麼錯?