com.drew.metadata.exif.makernotes.SonyTag9050bDescriptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of metadata-extractor Show documentation
Show all versions of metadata-extractor Show documentation
Java library for extracting EXIF, IPTC, XMP, ICC and other metadata from image and video files.
The newest version!
package com.drew.metadata.exif.makernotes;
import com.drew.lang.annotations.NotNull;
import com.drew.lang.annotations.Nullable;
import com.drew.metadata.TagDescriptor;
public class SonyTag9050bDescriptor extends TagDescriptor
{
public SonyTag9050bDescriptor(@NotNull SonyTag9050bDirectory directory)
{
super(directory);
}
@Override
@Nullable
public String getDescription(int tagType)
{
switch (tagType) {
case SonyTag9050bDirectory.TAG_FLASH_STATUS:
return getFlashStatusDescription();
case SonyTag9050bDirectory.TAG_SONY_EXPOSURE_TIME:
return getSonyExposureTimeDescription();
case SonyTag9050bDirectory.TAG_INTERNAL_SERIAL_NUMBER:
return getInternalSerialNumberDescription();
default:
return super.getDescription(tagType);
}
}
@Nullable
public String getInternalSerialNumberDescription()
{
int[] values = _directory.getIntArray(SonyTag9050bDirectory.TAG_INTERNAL_SERIAL_NUMBER);
if (values == null)
return null;
StringBuilder sn = new StringBuilder();
for (int value : values) {
sn.append(String.format("%02x", value));
}
return sn.toString();
}
@Nullable
public String getSonyExposureTimeDescription()
{
Float value = _directory.getFloatObject(SonyTag9050bDirectory.TAG_SONY_EXPOSURE_TIME);
if (value == null)
return null;
if (value == 0)
return "0";
return String.format("1/%s", (int)(0.5 + (1 / value)));
}
@Nullable
public String getFlashStatusDescription()
{
Integer value = _directory.getInteger(SonyTag9050bDirectory.TAG_FLASH_STATUS);
if (value == null)
return null;
switch (value) {
case 0x00:
return "No flash present";
case 0x02:
return "Flash inhibited";
case 0x40:
return "Built-in flash present";
case 0x41:
return "Built-in flash fired";
case 0x42:
return "Built-in flash inhibited";
case 0x80:
return "External flash present";
case 0x81:
return "External flash fired";
default:
return "Unknown (" + value + ")";
}
}
}