私は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);
}
をそれを得るために一つの方法を見つけましたが、このアプローチは3.8
またはそれに近いなめらかのような値をバックretern。それはデバイスによって異なります。しかし、この値は、30-35
に近い値でなければなりません。
私は別の解決策を見つけました。私は写真を撮るとき、私は写真のプロパティを開いて、私は何を得るexextly見て、私は
を必要とするものを、私は全体のプロパティのセットを組み合わせた画像
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
。しかし、もう一度私はこのような間違ったvaleuを得る473/100
...私はそれが何を意味するのかわからない... Valeuはapproximatlyである必要があります30-35
...
私は間違って何ですか?