Class TagDescriptor<T extends Directory>

java.lang.Object
com.drew.metadata.TagDescriptor<T>
Direct Known Subclasses:
AdobeJpegDescriptor, AppleMakernoteDescriptor, AppleRunTimeMakernoteDescriptor, AviDescriptor, BmpHeaderDescriptor, CanonMakernoteDescriptor, CasioType1MakernoteDescriptor, CasioType2MakernoteDescriptor, EpsDescriptor, ExifDescriptorBase, FileSystemDescriptor, FileTypeDescriptor, FujifilmMakernoteDescriptor, GifAnimationDescriptor, GifCommentDescriptor, GifControlDescriptor, GifHeaderDescriptor, GifImageDescriptor, GpsDescriptor, HeifDescriptor, HuffmanTablesDescriptor, IccDescriptor, IcoDescriptor, IptcDescriptor, JfifDescriptor, JfxxDescriptor, JpegCommentDescriptor, JpegDescriptor, KodakMakernoteDescriptor, KyoceraMakernoteDescriptor, LeicaMakernoteDescriptor, LeicaType5MakernoteDescriptor, Mp3Descriptor, Mp4Descriptor, Mp4HintDescriptor, Mp4MetaDescriptor, Mp4SoundDescriptor, Mp4TextDescriptor, Mp4UuidBoxDescriptor, Mp4VideoDescriptor, NikonType1MakernoteDescriptor, NikonType2MakernoteDescriptor, OlympusCameraSettingsMakernoteDescriptor, OlympusEquipmentMakernoteDescriptor, OlympusFocusInfoMakernoteDescriptor, OlympusImageProcessingMakernoteDescriptor, OlympusMakernoteDescriptor, OlympusRawDevelopment2MakernoteDescriptor, OlympusRawDevelopmentMakernoteDescriptor, OlympusRawInfoMakernoteDescriptor, PanasonicMakernoteDescriptor, PanasonicRawDistortionDescriptor, PanasonicRawIFD0Descriptor, PanasonicRawWbInfo2Descriptor, PanasonicRawWbInfoDescriptor, PcxDescriptor, PentaxMakernoteDescriptor, PhotoshopDescriptor, PngDescriptor, PrintIMDescriptor, PsdHeaderDescriptor, QuickTimeDescriptor, ReconyxHyperFire2MakernoteDescriptor, ReconyxHyperFireMakernoteDescriptor, ReconyxUltraFireMakernoteDescriptor, RicohMakernoteDescriptor, SamsungType2MakernoteDescriptor, SanyoMakernoteDescriptor, SigmaMakernoteDescriptor, SonyType1MakernoteDescriptor, SonyType6MakernoteDescriptor, WavDescriptor, WebpDescriptor, XmpDescriptor

public class TagDescriptor<T extends Directory> extends Object
Base class for all tag descriptor classes. Implementations are responsible for providing the human-readable string representation of tag values stored in a directory. The directory is provided to the tag descriptor via its constructor.
  • Field Details

    • _directory

      protected final T extends Directory _directory
  • Constructor Details

    • TagDescriptor

      public TagDescriptor(T directory)
  • Method Details

    • getDescription

      public String getDescription(int tagType)
      Returns a descriptive value of the specified tag for this image. Where possible, known values will be substituted here in place of the raw tokens actually kept in the metadata segment. If no substitution is available, the value provided by getString(tagType) will be returned.
      Parameters:
      tagType - the tag to find a description for
      Returns:
      a description of the image's value for the specified tag, or null if the tag hasn't been defined.
    • convertBytesToVersionString

      public static String convertBytesToVersionString(int[] components, int majorDigits)
      Takes a series of 4 bytes from the specified offset, and converts these to a well-known version number, where possible.

      Two different formats are processed:

      • [30 32 31 30] -> 2.10
      • [0 1 0 0] -> 1.00
      Parameters:
      components - the four version values
      majorDigits - the number of components to be
      Returns:
      the version as a string of form "2.10" or null if the argument cannot be converted
    • getVersionBytesDescription

      protected String getVersionBytesDescription(int tagType, int majorDigits)
    • getIndexedDescription

      protected String getIndexedDescription(int tagType, String... descriptions)
    • getIndexedDescription

      protected String getIndexedDescription(int tagType, int baseIndex, String... descriptions)
    • getByteLengthDescription

      protected String getByteLengthDescription(int tagType)
    • getSimpleRational

      protected String getSimpleRational(int tagType)
    • getDecimalRational

      protected String getDecimalRational(int tagType, int decimalPlaces)
    • getFormattedInt

      protected String getFormattedInt(int tagType, String format)
    • getFormattedFloat

      protected String getFormattedFloat(int tagType, String format)
    • getFormattedString

      protected String getFormattedString(int tagType, String format)
    • getEpochTimeDescription

      protected String getEpochTimeDescription(int tagType)
    • getBitFlagDescription

      protected String getBitFlagDescription(int tagType, Object... labels)
      LSB first. Labels may be null, a String, or a String[2] with (low label,high label) values.
    • get7BitStringFromBytes

      protected String get7BitStringFromBytes(int tagType)
    • getStringFromBytes

      protected String getStringFromBytes(int tag, Charset cs)
    • getRationalOrDoubleString

      protected String getRationalOrDoubleString(int tagType)
    • getFStopDescription

      protected static String getFStopDescription(double fStop)
    • getFocalLengthDescription

      protected static String getFocalLengthDescription(double mm)
    • getLensSpecificationDescription

      protected String getLensSpecificationDescription(int tag)
    • getOrientationDescription

      protected String getOrientationDescription(int tag)
    • getShutterSpeedDescription

      protected String getShutterSpeedDescription(int tag)
    • getEncodedTextDescription

      protected String getEncodedTextDescription(int tagType)