Ignore:
Timestamp:
2017-10-30T22:46:09+01:00 (8 years ago)
Author:
Don-vip
Message:

fix #15505 - update to metadata-extractor 2.10.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/drew/metadata/exif/makernotes/CanonMakernoteDescriptor.java

    r10862 r13061  
    11/*
    2  * Copyright 2002-2016 Drew Noakes
     2 * Copyright 2002-2017 Drew Noakes
    33 *
    44 *    Licensed under the Apache License, Version 2.0 (the "License");
     
    2626
    2727import java.text.DecimalFormat;
     28import java.util.HashMap;
    2829
    2930import static com.drew.metadata.exif.makernotes.CanonMakernoteDirectory.*;
     
    3435 * @author Drew Noakes https://drewnoakes.com
    3536 */
     37@SuppressWarnings("WeakerAccess")
    3638public class CanonMakernoteDescriptor extends TagDescriptor<CanonMakernoteDirectory>
    3739{
     
    5456            case CameraSettings.TAG_DIGITAL_ZOOM:
    5557                return getDigitalZoomDescription();
     58            case CameraSettings.TAG_RECORD_MODE:
     59                return getRecordModeDescription();
    5660            case CameraSettings.TAG_QUALITY:
    5761                return getQualityDescription();
     
    102106            case FocalLength.TAG_FLASH_BIAS:
    103107                return getFlashBiasDescription();
     108            case AFInfo.TAG_AF_POINTS_IN_FOCUS:
     109                return getTagAfPointsInFocus();
     110            case CameraSettings.TAG_MAX_APERTURE:
     111                return getMaxApertureDescription();
     112            case CameraSettings.TAG_MIN_APERTURE:
     113                return getMinApertureDescription();
     114            case CameraSettings.TAG_FOCUS_CONTINUOUS:
     115                return getFocusContinuousDescription();
     116            case CameraSettings.TAG_AE_SETTING:
     117                return getAESettingDescription();
     118            case CanonMakernoteDirectory.CameraSettings.TAG_DISPLAY_APERTURE:
     119                return getDisplayApertureDescription();
     120            case CanonMakernoteDirectory.CameraSettings.TAG_SPOT_METERING_MODE:
     121                return getSpotMeteringModeDescription();
     122            case CanonMakernoteDirectory.CameraSettings.TAG_PHOTO_EFFECT:
     123                return getPhotoEffectDescription();
     124            case CanonMakernoteDirectory.CameraSettings.TAG_MANUAL_FLASH_OUTPUT:
     125                return getManualFlashOutputDescription();
     126            case CanonMakernoteDirectory.CameraSettings.TAG_COLOR_TONE:
     127                return getColorToneDescription();
     128            case CanonMakernoteDirectory.CameraSettings.TAG_SRAW_QUALITY:
     129                return getSRawQualityDescription();
    104130
    105131            // It turns out that these values are dependent upon the camera model and therefore the below code was
     
    346372        //  0, 0.33,  0.5, 0.66,  1
    347373
    348         return ((isNegative) ? "-" : "") + Float.toString(value / 32f) + " EV";
     374        return (isNegative ? "-" : "") + Float.toString(value / 32f) + " EV";
    349375    }
    350376
     
    364390            return "Unknown (" + value + ")";
    365391        }
     392    }
     393
     394    @Nullable
     395    public String getTagAfPointsInFocus()
     396    {
     397        Integer value = _directory.getInteger(AFInfo.TAG_AF_POINTS_IN_FOCUS);
     398        if (value == null)
     399            return null;
     400
     401        StringBuilder sb = new StringBuilder();
     402
     403        for (int i = 0; i < 16; i++)
     404        {
     405            if ((value & 1 << i) != 0)
     406            {
     407                if (sb.length() != 0)
     408                    sb.append(',');
     409                sb.append(i);
     410            }
     411        }
     412
     413        return sb.length() == 0 ? "None" : sb.toString();
    366414    }
    367415
     
    393441        if (value == null)
    394442            return null;
    395         if (((value >> 14) & 1) > 0) {
     443        if (((value >> 14) & 1) != 0) {
    396444            return "External E-TTL";
    397445        }
    398         if (((value >> 13) & 1) > 0) {
     446        if (((value >> 13) & 1) != 0) {
    399447            return "Internal flash";
    400448        }
    401         if (((value >> 11) & 1) > 0) {
     449        if (((value >> 11) & 1) != 0) {
    402450            return "FP sync used";
    403451        }
    404         if (((value >> 4) & 1) > 0) {
     452        if (((value >> 4) & 1) != 0) {
    405453            return "FP sync enabled";
    406454        }
     
    461509            return null;
    462510
    463         return "Lens type: " + Integer.toString(value);
     511        return _lensTypeById.containsKey(value)
     512            ? _lensTypeById.get(value)
     513            : String.format("Unknown (%d)", value);
     514    }
     515
     516    @Nullable
     517    public String getMaxApertureDescription()
     518    {
     519        Integer value = _directory.getInteger(CameraSettings.TAG_MAX_APERTURE);
     520        if (value == null)
     521            return null;
     522        if (value > 512)
     523            return String.format("Unknown (%d)", value);
     524        return getFStopDescription(Math.exp(decodeCanonEv(value) * Math.log(2.0) / 2.0));
     525    }
     526
     527    @Nullable
     528    public String getMinApertureDescription()
     529    {
     530        Integer value = _directory.getInteger(CameraSettings.TAG_MIN_APERTURE);
     531        if (value == null)
     532            return null;
     533        if (value > 512)
     534            return String.format("Unknown (%d)", value);
     535        return getFStopDescription(Math.exp(decodeCanonEv(value) * Math.log(2.0) / 2.0));
    464536    }
    465537
     
    499571        // Canon PowerShot S3 is special
    500572        int canonMask = 0x4000;
    501         if ((value & canonMask) > 0)
     573        if ((value & canonMask) != 0)
    502574            return "" + (value & ~canonMask);
    503575
     
    700772
    701773    @Nullable
     774    public String getRecordModeDescription()
     775    {
     776        return getIndexedDescription(CameraSettings.TAG_RECORD_MODE, 1, "JPEG", "CRW+THM", "AVI+THM", "TIF", "TIF+JPEG", "CR2", "CR2+JPEG", null, "MOV", "MP4");
     777    }
     778
     779    @Nullable
    702780    public String getFocusTypeDescription()
    703781    {
     
    724802        return getIndexedDescription(CameraSettings.TAG_FLASH_ACTIVITY, "Flash did not fire", "Flash fired");
    725803    }
     804
     805    @Nullable
     806    public String getFocusContinuousDescription()
     807    {
     808        return getIndexedDescription(CameraSettings.TAG_FOCUS_CONTINUOUS, 0,
     809            "Single", "Continuous", null, null, null, null, null, null, "Manual");
     810    }
     811
     812    @Nullable
     813    public String getAESettingDescription()
     814    {
     815        return getIndexedDescription(CameraSettings.TAG_AE_SETTING, 0,
     816            "Normal AE", "Exposure Compensation", "AE Lock", "AE Lock + Exposure Comp.", "No AE");
     817    }
     818
     819    @Nullable
     820    public String getDisplayApertureDescription()
     821    {
     822        Integer value = _directory.getInteger(CameraSettings.TAG_DISPLAY_APERTURE);
     823        if (value == null)
     824            return null;
     825
     826        if (value == 0xFFFF)
     827            return value.toString();
     828        return getFStopDescription(value / 10f);
     829    }
     830
     831    @Nullable
     832    public String getSpotMeteringModeDescription()
     833    {
     834        return getIndexedDescription(CanonMakernoteDirectory.CameraSettings.TAG_SPOT_METERING_MODE, 0,
     835            "Center", "AF Point");
     836    }
     837
     838    @Nullable
     839    public String getPhotoEffectDescription()
     840    {
     841        Integer value = _directory.getInteger(CameraSettings.TAG_PHOTO_EFFECT);
     842        if (value == null)
     843            return null;
     844
     845        switch (value)
     846        {
     847            case 0:
     848                return "Off";
     849            case 1:
     850                return "Vivid";
     851            case 2:
     852                return "Neutral";
     853            case 3:
     854                return "Smooth";
     855            case 4:
     856                return "Sepia";
     857            case 5:
     858                return "B&W";
     859            case 6:
     860                return "Custom";
     861            case 100:
     862                return "My Color Data";
     863            default:
     864                return "Unknown (" + value + ")";
     865        }
     866    }
     867
     868    @Nullable
     869    public String getManualFlashOutputDescription()
     870    {
     871        Integer value = _directory.getInteger(CameraSettings.TAG_MANUAL_FLASH_OUTPUT);
     872        if (value == null)
     873            return null;
     874
     875        switch (value)
     876        {
     877            case 0:
     878                return "n/a";
     879            case 0x500:
     880                return "Full";
     881            case 0x502:
     882                return "Medium";
     883            case 0x504:
     884                return "Low";
     885            case 0x7fff:
     886                return "n/a";   // (EOS models)
     887            default:
     888                return "Unknown (" + value + ")";
     889        }
     890    }
     891
     892    @Nullable
     893    public String getColorToneDescription()
     894    {
     895        Integer value = _directory.getInteger(CameraSettings.TAG_COLOR_TONE);
     896        if (value == null)
     897            return null;
     898
     899        return value == 0x7fff ? "n/a" : value.toString();
     900    }
     901
     902    @Nullable
     903    public String getSRawQualityDescription()
     904    {
     905        return getIndexedDescription(CanonMakernoteDirectory.CameraSettings.TAG_SRAW_QUALITY, 0, "n/a", "sRAW1 (mRAW)", "sRAW2 (sRAW)");
     906    }
     907
     908    /**
     909     * Canon hex-based EV (modulo 0x20) to real number.
     910     *
     911     * Converted from Exiftool version 10.10 created by Phil Harvey
     912     * http://www.sno.phy.queensu.ca/~phil/exiftool/
     913     * lib\Image\ExifTool\Canon.pm
     914     *
     915     *         eg) 0x00 -> 0
     916     *             0x0c -> 0.33333
     917     *             0x10 -> 0.5
     918     *             0x14 -> 0.66666
     919     *             0x20 -> 1   ... etc
     920     */
     921    private double decodeCanonEv(int val)
     922    {
     923        int sign = 1;
     924        if (val < 0)
     925        {
     926            val = -val;
     927            sign = -1;
     928        }
     929
     930        int frac = val & 0x1f;
     931        val -= frac;
     932
     933        if (frac == 0x0c)
     934            frac = 0x20 / 3;
     935        else if (frac == 0x14)
     936            frac = 0x40 / 3;
     937
     938        return sign * (val + frac) / (double)0x20;
     939    }
     940
     941    /**
     942     *  Map from <see cref="CanonMakernoteDirectory.CameraSettings.TagLensType"/> to string descriptions.
     943     *
     944     *  Data sourced from http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html#LensType
     945     *
     946     *  Note that only Canon lenses are listed. Lenses from other manufacturers may identify themselves to the camera
     947     *  as being from this set, but in fact may be quite different. This limits the usefulness of this data,
     948     *  unfortunately.
     949     */
     950    private static final HashMap<Integer, String> _lensTypeById = new HashMap<Integer, String>();
     951
     952    static {
     953        _lensTypeById.put(1, "Canon EF 50mm f/1.8");
     954        _lensTypeById.put(2, "Canon EF 28mm f/2.8");
     955        _lensTypeById.put(3, "Canon EF 135mm f/2.8 Soft");
     956        _lensTypeById.put(4, "Canon EF 35-105mm f/3.5-4.5 or Sigma Lens");
     957        _lensTypeById.put(5, "Canon EF 35-70mm f/3.5-4.5");
     958        _lensTypeById.put(6, "Canon EF 28-70mm f/3.5-4.5 or Sigma or Tokina Lens");
     959        _lensTypeById.put(7, "Canon EF 100-300mm f/5.6L");
     960        _lensTypeById.put(8, "Canon EF 100-300mm f/5.6 or Sigma or Tokina Lens");
     961        _lensTypeById.put(9, "Canon EF 70-210mm f/4");
     962        _lensTypeById.put(10, "Canon EF 50mm f/2.5 Macro or Sigma Lens");
     963        _lensTypeById.put(11, "Canon EF 35mm f/2");
     964        _lensTypeById.put(13, "Canon EF 15mm f/2.8 Fisheye");
     965        _lensTypeById.put(14, "Canon EF 50-200mm f/3.5-4.5L");
     966        _lensTypeById.put(15, "Canon EF 50-200mm f/3.5-4.5");
     967        _lensTypeById.put(16, "Canon EF 35-135mm f/3.5-4.5");
     968        _lensTypeById.put(17, "Canon EF 35-70mm f/3.5-4.5A");
     969        _lensTypeById.put(18, "Canon EF 28-70mm f/3.5-4.5");
     970        _lensTypeById.put(20, "Canon EF 100-200mm f/4.5A");
     971        _lensTypeById.put(21, "Canon EF 80-200mm f/2.8L");
     972        _lensTypeById.put(22, "Canon EF 20-35mm f/2.8L or Tokina Lens");
     973        _lensTypeById.put(23, "Canon EF 35-105mm f/3.5-4.5");
     974        _lensTypeById.put(24, "Canon EF 35-80mm f/4-5.6 Power Zoom");
     975        _lensTypeById.put(25, "Canon EF 35-80mm f/4-5.6 Power Zoom");
     976        _lensTypeById.put(26, "Canon EF 100mm f/2.8 Macro or Other Lens");
     977        _lensTypeById.put(27, "Canon EF 35-80mm f/4-5.6");
     978        _lensTypeById.put(28, "Canon EF 80-200mm f/4.5-5.6 or Tamron Lens");
     979        _lensTypeById.put(29, "Canon EF 50mm f/1.8 II");
     980        _lensTypeById.put(30, "Canon EF 35-105mm f/4.5-5.6");
     981        _lensTypeById.put(31, "Canon EF 75-300mm f/4-5.6 or Tamron Lens");
     982        _lensTypeById.put(32, "Canon EF 24mm f/2.8 or Sigma Lens");
     983        _lensTypeById.put(33, "Voigtlander or Carl Zeiss Lens");
     984        _lensTypeById.put(35, "Canon EF 35-80mm f/4-5.6");
     985        _lensTypeById.put(36, "Canon EF 38-76mm f/4.5-5.6");
     986        _lensTypeById.put(37, "Canon EF 35-80mm f/4-5.6 or Tamron Lens");
     987        _lensTypeById.put(38, "Canon EF 80-200mm f/4.5-5.6");
     988        _lensTypeById.put(39, "Canon EF 75-300mm f/4-5.6");
     989        _lensTypeById.put(40, "Canon EF 28-80mm f/3.5-5.6");
     990        _lensTypeById.put(41, "Canon EF 28-90mm f/4-5.6");
     991        _lensTypeById.put(42, "Canon EF 28-200mm f/3.5-5.6 or Tamron Lens");
     992        _lensTypeById.put(43, "Canon EF 28-105mm f/4-5.6");
     993        _lensTypeById.put(44, "Canon EF 90-300mm f/4.5-5.6");
     994        _lensTypeById.put(45, "Canon EF-S 18-55mm f/3.5-5.6 [II]");
     995        _lensTypeById.put(46, "Canon EF 28-90mm f/4-5.6");
     996        _lensTypeById.put(47, "Zeiss Milvus 35mm f/2 or 50mm f/2");
     997        _lensTypeById.put(48, "Canon EF-S 18-55mm f/3.5-5.6 IS");
     998        _lensTypeById.put(49, "Canon EF-S 55-250mm f/4-5.6 IS");
     999        _lensTypeById.put(50, "Canon EF-S 18-200mm f/3.5-5.6 IS");
     1000        _lensTypeById.put(51, "Canon EF-S 18-135mm f/3.5-5.6 IS");
     1001        _lensTypeById.put(52, "Canon EF-S 18-55mm f/3.5-5.6 IS II");
     1002        _lensTypeById.put(53, "Canon EF-S 18-55mm f/3.5-5.6 III");
     1003        _lensTypeById.put(54, "Canon EF-S 55-250mm f/4-5.6 IS II");
     1004        _lensTypeById.put(94, "Canon TS-E 17mm f/4L");
     1005        _lensTypeById.put(95, "Canon TS-E 24.0mm f/3.5 L II");
     1006        _lensTypeById.put(124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo");
     1007        _lensTypeById.put(125, "Canon TS-E 24mm f/3.5L");
     1008        _lensTypeById.put(126, "Canon TS-E 45mm f/2.8");
     1009        _lensTypeById.put(127, "Canon TS-E 90mm f/2.8");
     1010        _lensTypeById.put(129, "Canon EF 300mm f/2.8L");
     1011        _lensTypeById.put(130, "Canon EF 50mm f/1.0L");
     1012        _lensTypeById.put(131, "Canon EF 28-80mm f/2.8-4L or Sigma Lens");
     1013        _lensTypeById.put(132, "Canon EF 1200mm f/5.6L");
     1014        _lensTypeById.put(134, "Canon EF 600mm f/4L IS");
     1015        _lensTypeById.put(135, "Canon EF 200mm f/1.8L");
     1016        _lensTypeById.put(136, "Canon EF 300mm f/2.8L");
     1017        _lensTypeById.put(137, "Canon EF 85mm f/1.2L or Sigma or Tamron Lens");
     1018        _lensTypeById.put(138, "Canon EF 28-80mm f/2.8-4L");
     1019        _lensTypeById.put(139, "Canon EF 400mm f/2.8L");
     1020        _lensTypeById.put(140, "Canon EF 500mm f/4.5L");
     1021        _lensTypeById.put(141, "Canon EF 500mm f/4.5L");
     1022        _lensTypeById.put(142, "Canon EF 300mm f/2.8L IS");
     1023        _lensTypeById.put(143, "Canon EF 500mm f/4L IS or Sigma Lens");
     1024        _lensTypeById.put(144, "Canon EF 35-135mm f/4-5.6 USM");
     1025        _lensTypeById.put(145, "Canon EF 100-300mm f/4.5-5.6 USM");
     1026        _lensTypeById.put(146, "Canon EF 70-210mm f/3.5-4.5 USM");
     1027        _lensTypeById.put(147, "Canon EF 35-135mm f/4-5.6 USM");
     1028        _lensTypeById.put(148, "Canon EF 28-80mm f/3.5-5.6 USM");
     1029        _lensTypeById.put(149, "Canon EF 100mm f/2 USM");
     1030        _lensTypeById.put(150, "Canon EF 14mm f/2.8L or Sigma Lens");
     1031        _lensTypeById.put(151, "Canon EF 200mm f/2.8L");
     1032        _lensTypeById.put(152, "Canon EF 300mm f/4L IS or Sigma Lens");
     1033        _lensTypeById.put(153, "Canon EF 35-350mm f/3.5-5.6L or Sigma or Tamron Lens");
     1034        _lensTypeById.put(154, "Canon EF 20mm f/2.8 USM or Zeiss Lens");
     1035        _lensTypeById.put(155, "Canon EF 85mm f/1.8 USM");
     1036        _lensTypeById.put(156, "Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens");
     1037        _lensTypeById.put(160, "Canon EF 20-35mm f/3.5-4.5 USM or Tamron or Tokina Lens");
     1038        _lensTypeById.put(161, "Canon EF 28-70mm f/2.8L or Sigma or Tamron Lens");
     1039        _lensTypeById.put(162, "Canon EF 200mm f/2.8L");
     1040        _lensTypeById.put(163, "Canon EF 300mm f/4L");
     1041        _lensTypeById.put(164, "Canon EF 400mm f/5.6L");
     1042        _lensTypeById.put(165, "Canon EF 70-200mm f/2.8 L");
     1043        _lensTypeById.put(166, "Canon EF 70-200mm f/2.8 L + 1.4x");
     1044        _lensTypeById.put(167, "Canon EF 70-200mm f/2.8 L + 2x");
     1045        _lensTypeById.put(168, "Canon EF 28mm f/1.8 USM or Sigma Lens");
     1046        _lensTypeById.put(169, "Canon EF 17-35mm f/2.8L or Sigma Lens");
     1047        _lensTypeById.put(170, "Canon EF 200mm f/2.8L II");
     1048        _lensTypeById.put(171, "Canon EF 300mm f/4L");
     1049        _lensTypeById.put(172, "Canon EF 400mm f/5.6L or Sigma Lens");
     1050        _lensTypeById.put(173, "Canon EF 180mm Macro f/3.5L or Sigma Lens");
     1051        _lensTypeById.put(174, "Canon EF 135mm f/2L or Other Lens");
     1052        _lensTypeById.put(175, "Canon EF 400mm f/2.8L");
     1053        _lensTypeById.put(176, "Canon EF 24-85mm f/3.5-4.5 USM");
     1054        _lensTypeById.put(177, "Canon EF 300mm f/4L IS");
     1055        _lensTypeById.put(178, "Canon EF 28-135mm f/3.5-5.6 IS");
     1056        _lensTypeById.put(179, "Canon EF 24mm f/1.4L");
     1057        _lensTypeById.put(180, "Canon EF 35mm f/1.4L or Other Lens");
     1058        _lensTypeById.put(181, "Canon EF 100-400mm f/4.5-5.6L IS + 1.4x or Sigma Lens");
     1059        _lensTypeById.put(182, "Canon EF 100-400mm f/4.5-5.6L IS + 2x or Sigma Lens");
     1060        _lensTypeById.put(183, "Canon EF 100-400mm f/4.5-5.6L IS or Sigma Lens");
     1061        _lensTypeById.put(184, "Canon EF 400mm f/2.8L + 2x");
     1062        _lensTypeById.put(185, "Canon EF 600mm f/4L IS");
     1063        _lensTypeById.put(186, "Canon EF 70-200mm f/4L");
     1064        _lensTypeById.put(187, "Canon EF 70-200mm f/4L + 1.4x");
     1065        _lensTypeById.put(188, "Canon EF 70-200mm f/4L + 2x");
     1066        _lensTypeById.put(189, "Canon EF 70-200mm f/4L + 2.8x");
     1067        _lensTypeById.put(190, "Canon EF 100mm f/2.8 Macro USM");
     1068        _lensTypeById.put(191, "Canon EF 400mm f/4 DO IS");
     1069        _lensTypeById.put(193, "Canon EF 35-80mm f/4-5.6 USM");
     1070        _lensTypeById.put(194, "Canon EF 80-200mm f/4.5-5.6 USM");
     1071        _lensTypeById.put(195, "Canon EF 35-105mm f/4.5-5.6 USM");
     1072        _lensTypeById.put(196, "Canon EF 75-300mm f/4-5.6 USM");
     1073        _lensTypeById.put(197, "Canon EF 75-300mm f/4-5.6 IS USM");
     1074        _lensTypeById.put(198, "Canon EF 50mm f/1.4 USM or Zeiss Lens");
     1075        _lensTypeById.put(199, "Canon EF 28-80mm f/3.5-5.6 USM");
     1076        _lensTypeById.put(200, "Canon EF 75-300mm f/4-5.6 USM");
     1077        _lensTypeById.put(201, "Canon EF 28-80mm f/3.5-5.6 USM");
     1078        _lensTypeById.put(202, "Canon EF 28-80mm f/3.5-5.6 USM IV");
     1079        _lensTypeById.put(208, "Canon EF 22-55mm f/4-5.6 USM");
     1080        _lensTypeById.put(209, "Canon EF 55-200mm f/4.5-5.6");
     1081        _lensTypeById.put(210, "Canon EF 28-90mm f/4-5.6 USM");
     1082        _lensTypeById.put(211, "Canon EF 28-200mm f/3.5-5.6 USM");
     1083        _lensTypeById.put(212, "Canon EF 28-105mm f/4-5.6 USM");
     1084        _lensTypeById.put(213, "Canon EF 90-300mm f/4.5-5.6 USM or Tamron Lens");
     1085        _lensTypeById.put(214, "Canon EF-S 18-55mm f/3.5-5.6 USM");
     1086        _lensTypeById.put(215, "Canon EF 55-200mm f/4.5-5.6 II USM");
     1087        _lensTypeById.put(217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD");
     1088        _lensTypeById.put(224, "Canon EF 70-200mm f/2.8L IS");
     1089        _lensTypeById.put(225, "Canon EF 70-200mm f/2.8L IS + 1.4x");
     1090        _lensTypeById.put(226, "Canon EF 70-200mm f/2.8L IS + 2x");
     1091        _lensTypeById.put(227, "Canon EF 70-200mm f/2.8L IS + 2.8x");
     1092        _lensTypeById.put(228, "Canon EF 28-105mm f/3.5-4.5 USM");
     1093        _lensTypeById.put(229, "Canon EF 16-35mm f/2.8L");
     1094        _lensTypeById.put(230, "Canon EF 24-70mm f/2.8L");
     1095        _lensTypeById.put(231, "Canon EF 17-40mm f/4L");
     1096        _lensTypeById.put(232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM");
     1097        _lensTypeById.put(233, "Canon EF 28-300mm f/3.5-5.6L IS");
     1098        _lensTypeById.put(234, "Canon EF-S 17-85mm f/4-5.6 IS USM or Tokina Lens");
     1099        _lensTypeById.put(235, "Canon EF-S 10-22mm f/3.5-4.5 USM");
     1100        _lensTypeById.put(236, "Canon EF-S 60mm f/2.8 Macro USM");
     1101        _lensTypeById.put(237, "Canon EF 24-105mm f/4L IS");
     1102        _lensTypeById.put(238, "Canon EF 70-300mm f/4-5.6 IS USM");
     1103        _lensTypeById.put(239, "Canon EF 85mm f/1.2L II");
     1104        _lensTypeById.put(240, "Canon EF-S 17-55mm f/2.8 IS USM");
     1105        _lensTypeById.put(241, "Canon EF 50mm f/1.2L");
     1106        _lensTypeById.put(242, "Canon EF 70-200mm f/4L IS");
     1107        _lensTypeById.put(243, "Canon EF 70-200mm f/4L IS + 1.4x");
     1108        _lensTypeById.put(244, "Canon EF 70-200mm f/4L IS + 2x");
     1109        _lensTypeById.put(245, "Canon EF 70-200mm f/4L IS + 2.8x");
     1110        _lensTypeById.put(246, "Canon EF 16-35mm f/2.8L II");
     1111        _lensTypeById.put(247, "Canon EF 14mm f/2.8L II USM");
     1112        _lensTypeById.put(248, "Canon EF 200mm f/2L IS or Sigma Lens");
     1113        _lensTypeById.put(249, "Canon EF 800mm f/5.6L IS");
     1114        _lensTypeById.put(250, "Canon EF 24mm f/1.4L II or Sigma Lens");
     1115        _lensTypeById.put(251, "Canon EF 70-200mm f/2.8L IS II USM");
     1116        _lensTypeById.put(252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x");
     1117        _lensTypeById.put(253, "Canon EF 70-200mm f/2.8L IS II USM + 2x");
     1118        _lensTypeById.put(254, "Canon EF 100mm f/2.8L Macro IS USM");
     1119        _lensTypeById.put(255, "Sigma 24-105mm f/4 DG OS HSM | A or Other Sigma Lens");
     1120        _lensTypeById.put(488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM");
     1121        _lensTypeById.put(489, "Canon EF 70-300mm f/4-5.6L IS USM");
     1122        _lensTypeById.put(490, "Canon EF 8-15mm f/4L Fisheye USM");
     1123        _lensTypeById.put(491, "Canon EF 300mm f/2.8L IS II USM");
     1124        _lensTypeById.put(492, "Canon EF 400mm f/2.8L IS II USM");
     1125        _lensTypeById.put(493, "Canon EF 500mm f/4L IS II USM or EF 24-105mm f4L IS USM");
     1126        _lensTypeById.put(494, "Canon EF 600mm f/4.0L IS II USM");
     1127        _lensTypeById.put(495, "Canon EF 24-70mm f/2.8L II USM");
     1128        _lensTypeById.put(496, "Canon EF 200-400mm f/4L IS USM");
     1129        _lensTypeById.put(499, "Canon EF 200-400mm f/4L IS USM + 1.4x");
     1130        _lensTypeById.put(502, "Canon EF 28mm f/2.8 IS USM");
     1131        _lensTypeById.put(503, "Canon EF 24mm f/2.8 IS USM");
     1132        _lensTypeById.put(504, "Canon EF 24-70mm f/4L IS USM");
     1133        _lensTypeById.put(505, "Canon EF 35mm f/2 IS USM");
     1134        _lensTypeById.put(506, "Canon EF 400mm f/4 DO IS II USM");
     1135        _lensTypeById.put(507, "Canon EF 16-35mm f/4L IS USM");
     1136        _lensTypeById.put(508, "Canon EF 11-24mm f/4L USM");
     1137        _lensTypeById.put(747, "Canon EF 100-400mm f/4.5-5.6L IS II USM");
     1138        _lensTypeById.put(750, "Canon EF 35mm f/1.4L II USM");
     1139        _lensTypeById.put(4142, "Canon EF-S 18-135mm f/3.5-5.6 IS STM");
     1140        _lensTypeById.put(4143, "Canon EF-M 18-55mm f/3.5-5.6 IS STM or Tamron Lens");
     1141        _lensTypeById.put(4144, "Canon EF 40mm f/2.8 STM");
     1142        _lensTypeById.put(4145, "Canon EF-M 22mm f/2 STM");
     1143        _lensTypeById.put(4146, "Canon EF-S 18-55mm f/3.5-5.6 IS STM");
     1144        _lensTypeById.put(4147, "Canon EF-M 11-22mm f/4-5.6 IS STM");
     1145        _lensTypeById.put(4148, "Canon EF-S 55-250mm f/4-5.6 IS STM");
     1146        _lensTypeById.put(4149, "Canon EF-M 55-200mm f/4.5-6.3 IS STM");
     1147        _lensTypeById.put(4150, "Canon EF-S 10-18mm f/4.5-5.6 IS STM");
     1148        _lensTypeById.put(4152, "Canon EF 24-105mm f/3.5-5.6 IS STM");
     1149        _lensTypeById.put(4153, "Canon EF-M 15-45mm f/3.5-6.3 IS STM");
     1150        _lensTypeById.put(4154, "Canon EF-S 24mm f/2.8 STM");
     1151        _lensTypeById.put(4156, "Canon EF 50mm f/1.8 STM");
     1152        _lensTypeById.put(36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM");
     1153        _lensTypeById.put(65535, "N/A");
     1154    }
    7261155}
Note: See TracChangeset for help on using the changeset viewer.