func init() { modiTags.Register(tiff.NewTag(37679, "MODIText", nil)) modiTags.Register(tiff.NewTag(37680, "MODIOLEPropertySetStorage", nil)) modiTags.Register(tiff.NewTag(37681, "MODIPositioning", nil)) modiTags.Lock() tiff.DefaultTagSpace.RegisterTagSet(modiTags) }
func init() { tiff.PrivateTags.Register(iopIFDTag) // http://www.exiv2.org/tags.html iopTags.Register(tiff.NewTag(1, "InteroperabilityIndex", nil)) iopTags.Register(tiff.NewTag(2, "InteroperabilityVersion", nil)) iopTags.Register(tiff.NewTag(4096, "RelatedImageFileFormat", nil)) iopTags.Register(tiff.NewTag(4097, "RelatedImageWidth", nil)) iopTags.Register(tiff.NewTag(4098, "RelatedImageLength", nil)) iopTags.Lock() IOPTagSpace.RegisterTagSet(iopTags) tiff.RegisterTagSpace(IOPTagSpace) }
func init() { tiffEPTags.Register(tiff.NewTag(33421, "CFARepeatPatternDim", nil)) tiffEPTags.Register(tiff.NewTag(33422, "CFAPattern", nil)) tiffEPTags.Register(tiff.NewTag(34859, "SelfTimeMode", nil)) tiffEPTags.Register(tiff.NewTag(37390, "FocalPlaneXResolution", nil)) tiffEPTags.Register(tiff.NewTag(37391, "FocalPlaneYResolution", nil)) tiffEPTags.Register(tiff.NewTag(37392, "FocalPlaneResolutionUnit", nil)) tiffEPTags.Register(tiff.NewTag(37398, "TIFF/EPStandardID", nil)) tiffEPTags.Register(tiff.NewTag(37399, "SensingMethod", nil)) tiffEPTags.Lock() tiff.DefaultTagSpace.RegisterTagSet(tiffEPTags) }
func init() { geotiffTags.Register(tiff.NewTag(33550, "ModelPixelScaleTag", nil)) geotiffTags.Register(tiff.NewTag(34264, "ModelTransformationTag", nil)) geotiffTags.Register(tiff.NewTag(33922, "ModelTiepointTag", nil)) geotiffTags.Register(tiff.NewTag(34735, "GeoKeyDirectoryTag", nil)) geotiffTags.Register(tiff.NewTag(34736, "GeoDoubleParamsTag", nil)) geotiffTags.Register(tiff.NewTag(34737, "GeoAsciiParamsTag", nil)) geotiffTags.Register(tiff.NewTag(33920, "IntergraphIrasBMatrixTag", nil)) geotiffTags.Lock() tiff.DefaultTagSpace.RegisterTagSet(geotiffTags) }
func init() { tiff.PrivateTags.Register(gpsIFDTag) // http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/gps.html // http://www.exiv2.org/tags.html gpsTags.Register(tiff.NewTag(0, "GPSVersionID", nil)) gpsTags.Register(tiff.NewTag(1, "GPSLatitudeRef", nil)) gpsTags.Register(tiff.NewTag(2, "GPSLatitude", nil)) gpsTags.Register(tiff.NewTag(3, "GPSLongitudeRef", nil)) gpsTags.Register(tiff.NewTag(4, "GPSLongitude", nil)) gpsTags.Register(tiff.NewTag(5, "GPSAltitudeRef", nil)) gpsTags.Register(tiff.NewTag(6, "GPSAltitude", nil)) gpsTags.Register(tiff.NewTag(7, "GPSTimeStamp", nil)) gpsTags.Register(tiff.NewTag(8, "GPSSatellites", nil)) gpsTags.Register(tiff.NewTag(9, "GPSStatus", nil)) gpsTags.Register(tiff.NewTag(10, "GPSMeasureMode", nil)) gpsTags.Register(tiff.NewTag(11, "GPSDOP", nil)) gpsTags.Register(tiff.NewTag(12, "GPSSpeedRef", nil)) gpsTags.Register(tiff.NewTag(13, "GPSSpeed", nil)) gpsTags.Register(tiff.NewTag(14, "GPSTrackRef", nil)) gpsTags.Register(tiff.NewTag(15, "GPSTrack", nil)) gpsTags.Register(tiff.NewTag(16, "GPSImgDirectionRef", nil)) gpsTags.Register(tiff.NewTag(17, "GPSImgDirection", nil)) gpsTags.Register(tiff.NewTag(18, "GPSMapDatum", nil)) gpsTags.Register(tiff.NewTag(19, "GPSDestLatitudeRef", nil)) gpsTags.Register(tiff.NewTag(20, "GPSDestLatitude", nil)) gpsTags.Register(tiff.NewTag(21, "GPSDestLongitudeRef", nil)) gpsTags.Register(tiff.NewTag(22, "GPSDestLongitude", nil)) gpsTags.Register(tiff.NewTag(23, "GPSDestBearingRef", nil)) gpsTags.Register(tiff.NewTag(24, "GPSDestBearing", nil)) gpsTags.Register(tiff.NewTag(25, "GPSDestDistanceRef", nil)) gpsTags.Register(tiff.NewTag(26, "GPSDestDistance", nil)) gpsTags.Register(tiff.NewTag(27, "GPSProcessingMethod", nil)) gpsTags.Register(tiff.NewTag(28, "GPSAreaInformation", nil)) gpsTags.Register(tiff.NewTag(29, "GPSDateStamp", nil)) gpsTags.Register(tiff.NewTag(30, "GPSDifferential", nil)) gpsTags.Lock() GPSTagSpace.RegisterTagSet(gpsTags) tiff.RegisterTagSpace(GPSTagSpace) }
// license that can be found in the LICENSE file. package exif import ( "math/big" "github.com/google/tiff" ) const GPSIFDTagID = 34853 var ( gpsTags = tiff.NewTagSet("GPS", 0, 65535) GPSTagSpace = tiff.NewTagSpace("GPS") gpsIFDTag = tiff.NewTag(GPSIFDTagID, "GPSIFD", nil) ) func init() { tiff.PrivateTags.Register(gpsIFDTag) // http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/gps.html // http://www.exiv2.org/tags.html gpsTags.Register(tiff.NewTag(0, "GPSVersionID", nil)) gpsTags.Register(tiff.NewTag(1, "GPSLatitudeRef", nil)) gpsTags.Register(tiff.NewTag(2, "GPSLatitude", nil)) gpsTags.Register(tiff.NewTag(3, "GPSLongitudeRef", nil)) gpsTags.Register(tiff.NewTag(4, "GPSLongitude", nil)) gpsTags.Register(tiff.NewTag(5, "GPSAltitudeRef", nil)) gpsTags.Register(tiff.NewTag(6, "GPSAltitude", nil)) gpsTags.Register(tiff.NewTag(7, "GPSTimeStamp", nil))
func init() { // Original tags for Version 1.0.0.0 DNGv1_0_0_0Tags.Register(tiff.NewTag(50706, "DNGVersion", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50707, "DNGBackwardVersion", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50708, "UniqueCameraModel", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50709, "LocalizedCameraModel", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50710, "CFAPlaneColor", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50711, "CFALayout", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50712, "LinearizationTable", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50713, "BlackLevelRepeatDim", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50714, "BlackLevel", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50715, "BlackLevelDeltaH", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50716, "BlackLevelDeltaV", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50717, "WhiteLevel", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50718, "DefaultScale", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50780, "BestQualityScale", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50719, "DefaultCropOrigin", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50720, "DefaultCropSize", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50778, "CalibrationIlluminant1", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50779, "CalibrationIlluminant2", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50721, "ColorMatrix1", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50722, "ColorMatrix2", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50723, "CameraCalibration1", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50724, "CameraCalibration2", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50725, "ReductionMatrix1", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50726, "ReductionMatrix2", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50727, "AnalogBalance", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50728, "AsShotNeutral", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50729, "AsShotWhiteXY", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50730, "BaselineExposure", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50731, "BaselineNoise", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50732, "BaselineSharpness", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50733, "BayerGreenSplit", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50734, "LinearResponseLimit", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50735, "CameraSerialNumber", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50736, "LensInfo", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50737, "ChromaBlurRadius", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50738, "AntiAliasStrength", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50740, "DNGPrivateData", nil)) DNGv1_0_0_0Tags.Register(tiff.NewTag(50741, "MakerNoteSafety", nil)) DNGv1_0_0_0Tags.Lock() tiff.DefaultTagSpace.RegisterTagSet(DNGv1_0_0_0Tags) // Additional Tags for Version 1.1.0.0 DNGv1_1_0_0Tags.Register(tiff.NewTag(50739, "ShadowScale", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50781, "RawDataUniqueID", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50827, "OriginalRawFileName", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50828, "OriginalRawFileData", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50829, "ActiveArea", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50830, "MaskedAreas", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50831, "AsShotICCProfile", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50832, "AsShotPreProfileMatrix", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50833, "CurrentICCProfile", nil)) DNGv1_1_0_0Tags.Register(tiff.NewTag(50834, "CurrentPreProfileMatrix", nil)) DNGv1_1_0_0Tags.Lock() tiff.DefaultTagSpace.RegisterTagSet(DNGv1_1_0_0Tags) // Additional Tags for Version 1.2.0.0 DNGv1_2_0_0Tags.Register(tiff.NewTag(50879, "ColorimetricReference", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50931, "CameraCalibrationSignature", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50932, "ProfileCalibrationSignature", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50933, "ExtraCameraProfiles", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50934, "AsShotProfileName", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50935, "NoiseReductionApplied", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50936, "ProfileName", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50937, "ProfileHueSatMapDims", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50938, "ProfileHueSatMapData1", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50939, "ProfileHueSatMapData2", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50940, "ProfileToneCurve", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50941, "ProfileEmbedPolicy", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50942, "ProfileCopyright", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50964, "ForwardMatrix1", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50965, "ForwardMatrix2", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50966, "PreviewApplicationName", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50967, "PreviewApplicationVersion", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50968, "PreviewSettingsName", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50969, "PreviewSettingsDigest", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50970, "PreviewColorSpace", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50971, "PreviewDateTime", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50972, "RawImageDigest", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50973, "OriginalRawFileDigest", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50974, "SubTileBlockSize", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50975, "RowInterleaveFactor", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50981, "ProfileLookTableDims", nil)) DNGv1_2_0_0Tags.Register(tiff.NewTag(50982, "ProfileLookTableData", nil)) DNGv1_2_0_0Tags.Lock() tiff.DefaultTagSpace.RegisterTagSet(DNGv1_2_0_0Tags) // Additional Tags for Version 1.3.0.0 DNGv1_3_0_0Tags.Register(tiff.NewTag(51008, "OpcodeList1", nil)) DNGv1_3_0_0Tags.Register(tiff.NewTag(51009, "OpcodeList2", nil)) DNGv1_3_0_0Tags.Register(tiff.NewTag(51022, "OpcodeList3", nil)) DNGv1_3_0_0Tags.Register(tiff.NewTag(51041, "NoiseProfile", nil)) DNGv1_3_0_0Tags.Lock() tiff.DefaultTagSpace.RegisterTagSet(DNGv1_3_0_0Tags) // Additional Tags for Version 1.4.0.0 DNGv1_4_0_0Tags.Register(tiff.NewTag(51125, "DefaultUserCrop", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51110, "DefaultBlackRender", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51109, "BaselineExposureOffset", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51108, "ProfileLookTableEncoding", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51107, "ProfileHueSatMapEncoding", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51089, "OriginalDefaultFinalSize", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51090, "OriginalBestQualityFinalSize", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51091, "OriginalDefaultCropSize", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51111, "NewRawImageDigest", nil)) DNGv1_4_0_0Tags.Register(tiff.NewTag(51112, "RawToPreviewGain", nil)) DNGv1_4_0_0Tags.Lock() tiff.DefaultTagSpace.RegisterTagSet(DNGv1_4_0_0Tags) }
func init() { // Tag 0 MakerNoteTags.Register(tiff.NewTag(1, "Version", nil)) MakerNoteTags.Register(tiff.NewTag(2, "ISOSpeed", nil)) MakerNoteTags.Register(tiff.NewTag(3, "ColorMode", nil)) MakerNoteTags.Register(tiff.NewTag(4, "Quality", nil)) MakerNoteTags.Register(tiff.NewTag(5, "WhiteBalance", nil)) MakerNoteTags.Register(tiff.NewTag(6, "Sharpening", nil)) MakerNoteTags.Register(tiff.NewTag(7, "FocusMode", nil)) MakerNoteTags.Register(tiff.NewTag(8, "FlashSetting", nil)) MakerNoteTags.Register(tiff.NewTag(9, "FlashDevice", nil)) // Tag 10 MakerNoteTags.Register(tiff.NewTag(11, "WhiteBalanceFineTune", nil)) MakerNoteTags.Register(tiff.NewTag(12, "WB_RBLevels", nil)) MakerNoteTags.Register(tiff.NewTag(13, "ProgramShift", nil)) MakerNoteTags.Register(tiff.NewTag(14, "ExposureDifference", nil)) MakerNoteTags.Register(tiff.NewTag(15, "ISOSelection", nil)) MakerNoteTags.Register(tiff.NewTag(16, "DataDump", nil)) MakerNoteTags.Register(tiff.NewTag(17, "PreviewIFD", nil)) MakerNoteTags.Register(tiff.NewTag(18, "FlashExposureComp", nil)) MakerNoteTags.Register(tiff.NewTag(19, "ISOSetting", nil)) MakerNoteTags.Register(tiff.NewTag(20, "ColorBalanceA", nil)) // Tag 21 MakerNoteTags.Register(tiff.NewTag(22, "ImageBoundary", nil)) MakerNoteTags.Register(tiff.NewTag(23, "ExternalFlashExposureComp", nil)) MakerNoteTags.Register(tiff.NewTag(24, "FlashExposureBracketValue", nil)) MakerNoteTags.Register(tiff.NewTag(25, "ExposureBracketValue", nil)) MakerNoteTags.Register(tiff.NewTag(26, "ImageProcessing", nil)) MakerNoteTags.Register(tiff.NewTag(27, "CropHiSpeed", nil)) MakerNoteTags.Register(tiff.NewTag(28, "ExposureTuning", nil)) MakerNoteTags.Register(tiff.NewTag(29, "SerialNumber", nil)) MakerNoteTags.Register(tiff.NewTag(30, "ColorSpace", nil)) MakerNoteTags.Register(tiff.NewTag(31, "VRInfo", nil)) MakerNoteTags.Register(tiff.NewTag(32, "ImageAuthentication", nil)) MakerNoteTags.Register(tiff.NewTag(33, "FaceDetect", nil)) MakerNoteTags.Register(tiff.NewTag(34, "ActiveD-Lighting", nil)) MakerNoteTags.Register(tiff.NewTag(35, "PictureControlData", nil)) MakerNoteTags.Register(tiff.NewTag(36, "WorldTime", nil)) MakerNoteTags.Register(tiff.NewTag(37, "ISOInfo", nil)) // Tags 38..41 MakerNoteTags.Register(tiff.NewTag(42, "VignetteControl", nil)) MakerNoteTags.Register(tiff.NewTag(43, "DistortInfo", nil)) // Tags 44..52 MakerNoteTags.Register(tiff.NewTag(53, "HDRInfo", nil)) // Tags 54..56 MakerNoteTags.Register(tiff.NewTag(57, "LocationInfo", nil)) // Tags 58..60 MakerNoteTags.Register(tiff.NewTag(61, "BlackLevel", nil)) // Tags 62..127 MakerNoteTags.Register(tiff.NewTag(128, "ImageAdjustment", nil)) MakerNoteTags.Register(tiff.NewTag(129, "ToneComp", nil)) MakerNoteTags.Register(tiff.NewTag(130, "AuxiliaryLens", nil)) MakerNoteTags.Register(tiff.NewTag(131, "LensType", nil)) MakerNoteTags.Register(tiff.NewTag(132, "Lens", nil)) MakerNoteTags.Register(tiff.NewTag(133, "ManualFocusDistance", nil)) MakerNoteTags.Register(tiff.NewTag(134, "DigitalZoom", nil)) MakerNoteTags.Register(tiff.NewTag(135, "FlashMode", nil)) MakerNoteTags.Register(tiff.NewTag(136, "AFInfo", nil)) MakerNoteTags.Register(tiff.NewTag(137, "ShootingMode", nil)) MakerNoteTags.Register(tiff.NewTag(138, "AutoBracketRelease", nil)) MakerNoteTags.Register(tiff.NewTag(139, "LensFStops", nil)) MakerNoteTags.Register(tiff.NewTag(140, "ContrastCurve", nil)) MakerNoteTags.Register(tiff.NewTag(141, "ColorHue", nil)) // Tag 142 MakerNoteTags.Register(tiff.NewTag(143, "SceneMode", nil)) MakerNoteTags.Register(tiff.NewTag(144, "LightSource", nil)) MakerNoteTags.Register(tiff.NewTag(145, "ShotInfo", nil)) MakerNoteTags.Register(tiff.NewTag(146, "HueAdjustment", nil)) MakerNoteTags.Register(tiff.NewTag(147, "NEFCompression", nil)) MakerNoteTags.Register(tiff.NewTag(148, "Saturation", nil)) MakerNoteTags.Register(tiff.NewTag(149, "NoiseReduction", nil)) MakerNoteTags.Register(tiff.NewTag(150, "NEFLinearizationTable", nil)) MakerNoteTags.Register(tiff.NewTag(151, "ColorBalance", nil)) MakerNoteTags.Register(tiff.NewTag(152, "LensData", nil)) MakerNoteTags.Register(tiff.NewTag(153, "RawImageCenter", nil)) MakerNoteTags.Register(tiff.NewTag(154, "SensorPixelSize", nil)) // Tag 155 MakerNoteTags.Register(tiff.NewTag(156, "SceneAssist", nil)) // Tag 157 MakerNoteTags.Register(tiff.NewTag(158, "RetouchHistory", nil)) // Tag 159 MakerNoteTags.Register(tiff.NewTag(160, "SerialNumber", nil)) // Tag 161 MakerNoteTags.Register(tiff.NewTag(162, "ImageDataSize", nil)) // Tags 163..164 MakerNoteTags.Register(tiff.NewTag(165, "ImageCount", nil)) MakerNoteTags.Register(tiff.NewTag(166, "DeletedImageCount", nil)) MakerNoteTags.Register(tiff.NewTag(167, "ShutterCount", nil)) MakerNoteTags.Register(tiff.NewTag(168, "FlashInfo", nil)) MakerNoteTags.Register(tiff.NewTag(169, "ImageOptimization", nil)) MakerNoteTags.Register(tiff.NewTag(170, "Saturation", nil)) MakerNoteTags.Register(tiff.NewTag(171, "VariProgram", nil)) MakerNoteTags.Register(tiff.NewTag(172, "ImageStabilization", nil)) MakerNoteTags.Register(tiff.NewTag(173, "AFResponse", nil)) // Tags 174..175 MakerNoteTags.Register(tiff.NewTag(176, "MultiExposure", nil)) MakerNoteTags.Register(tiff.NewTag(177, "HighISONoiseReduction", nil)) // Tag 178 MakerNoteTags.Register(tiff.NewTag(179, "ToningEffect", nil)) // Tags 180..181 MakerNoteTags.Register(tiff.NewTag(182, "PowerUpTime", nil)) MakerNoteTags.Register(tiff.NewTag(183, "AFInfo2", nil)) MakerNoteTags.Register(tiff.NewTag(184, "FileInfo", nil)) MakerNoteTags.Register(tiff.NewTag(185, "AFTune", nil)) // Tags 186..188 MakerNoteTags.Register(tiff.NewTag(189, "PictureControlData", nil)) // Tags 190..194 MakerNoteTags.Register(tiff.NewTag(195, "BarometerInfo", nil)) // Tags 196..3583 MakerNoteTags.Register(tiff.NewTag(3584, "PrintIM", nil)) MakerNoteTags.Register(tiff.NewTag(3585, "CaptureData", nil)) // Tags 3586..3592 MakerNoteTags.Register(tiff.NewTag(3593, "CaptureVersion", nil)) // Tags 3594..3597 MakerNoteTags.Register(tiff.NewTag(3598, "CaptureOffsets", nil)) // Tag 3599 MakerNoteTags.Register(tiff.NewTag(3600, "ScanIFD", nil)) // Tags 3601..3602 MakerNoteTags.Register(tiff.NewTag(3603, "CaptureEditVersions", nil)) // Tags 3604..3612 MakerNoteTags.Register(tiff.NewTag(3613, "ICCProfile", nil)) MakerNoteTags.Register(tiff.NewTag(3614, "CaptureOutput", nil)) // Tags 3615..3617 MakerNoteTags.Register(tiff.NewTag(3618, "NEFBitDepth", nil)) // Tags 3619..65535 MakerNoteTagSpace.RegisterTagSet(MakerNoteTags) /* TODO: Find tag names for the following that we know to exist... Tag 163/0x00a3 Tag 164/0x00a4 Tag 186/0x00ba Tag 187/0x00bb Tag 188/0x00bc */ tiff.RegisterTagSpace(MakerNoteTagSpace) }
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package exif import "github.com/google/tiff" const InteroperabilityIFDTagID = 40965 var ( iopTags = tiff.NewTagSet("Interoperability", 0, 65535) IOPTagSpace = tiff.NewTagSpace("Interoperability") iopIFDTag = tiff.NewTag(InteroperabilityIFDTagID, "InteroperabilityIFD", nil) ) func init() { tiff.PrivateTags.Register(iopIFDTag) // http://www.exiv2.org/tags.html iopTags.Register(tiff.NewTag(1, "InteroperabilityIndex", nil)) iopTags.Register(tiff.NewTag(2, "InteroperabilityVersion", nil)) iopTags.Register(tiff.NewTag(4096, "RelatedImageFileFormat", nil)) iopTags.Register(tiff.NewTag(4097, "RelatedImageWidth", nil)) iopTags.Register(tiff.NewTag(4098, "RelatedImageLength", nil)) iopTags.Lock() IOPTagSpace.RegisterTagSet(iopTags) tiff.RegisterTagSpace(IOPTagSpace) }
func init() { tiff.PrivateTags.Register(exifIFDTag) exifTags.Register(tiff.NewTag(33434, "ExposureTime", fiRat)) exifTags.Register(tiff.NewTag(33437, "FNumber", fiFNumber)) exifTags.Register(tiff.NewTag(34850, "ExposureProgram", fiExposureProgram)) exifTags.Register(tiff.NewTag(34852, "SpectralSensitivity", nil)) exifTags.Register(tiff.NewTag(34855, "ISOSpeedRatings", nil)) exifTags.Register(tiff.NewTag(34856, "OECF", nil)) exifTags.Register(tiff.NewTag(34864, "SensitivityType", nil)) exifTags.Register(tiff.NewTag(34866, "RecommendedExposureIndex", nil)) exifTags.Register(tiff.NewTag(36864, "ExifVersion", nil)) exifTags.Register(tiff.NewTag(36867, "DateTimeOriginal", nil)) exifTags.Register(tiff.NewTag(36868, "DateTimeDigitized", nil)) exifTags.Register(tiff.NewTag(37121, "ComponentsConfiguration", nil)) exifTags.Register(tiff.NewTag(37122, "CompressedBitsPerPixel", nil)) exifTags.Register(tiff.NewTag(37377, "ShutterSpeedValue", nil)) exifTags.Register(tiff.NewTag(37378, "ApertureValue", nil)) exifTags.Register(tiff.NewTag(37379, "BrightnessValue", nil)) exifTags.Register(tiff.NewTag(37380, "ExposureBiasValue", nil)) exifTags.Register(tiff.NewTag(37381, "MaxApertureValue", nil)) exifTags.Register(tiff.NewTag(37382, "SubjectDistance", nil)) exifTags.Register(tiff.NewTag(37383, "MeteringMode", nil)) exifTags.Register(tiff.NewTag(37384, "LightSource", nil)) exifTags.Register(tiff.NewTag(37385, "Flash", nil)) exifTags.Register(tiff.NewTag(37386, "FocalLength", nil)) exifTags.Register(tiff.NewTag(37396, "SubjectArea", nil)) exifTags.Register(tiff.NewTag(37500, "MakerNote", nil)) exifTags.Register(tiff.NewTag(37510, "UserComment", nil)) exifTags.Register(tiff.NewTag(37520, "SubsecTime", nil)) exifTags.Register(tiff.NewTag(37521, "SubsecTimeOriginal", nil)) exifTags.Register(tiff.NewTag(37522, "SubsecTimeDigitized", nil)) exifTags.Register(tiff.NewTag(40960, "FlashpixVersion", nil)) exifTags.Register(tiff.NewTag(40961, "ColorSpace", nil)) exifTags.Register(tiff.NewTag(40962, "PixelXDimension", nil)) exifTags.Register(tiff.NewTag(40963, "PixelYDimension", nil)) exifTags.Register(tiff.NewTag(40964, "RelatedSoundFile", nil)) exifTags.Register(tiff.NewTag(41483, "FlashEnergy", nil)) exifTags.Register(tiff.NewTag(41484, "SpatialFrequencyResponse", nil)) exifTags.Register(tiff.NewTag(41486, "FocalPlaneXResolution", nil)) exifTags.Register(tiff.NewTag(41487, "FocalPlaneYResolution", nil)) exifTags.Register(tiff.NewTag(41488, "FocalPlaneResolutionUnit", nil)) exifTags.Register(tiff.NewTag(41492, "SubjectLocation", nil)) exifTags.Register(tiff.NewTag(41493, "ExposureIndex", nil)) exifTags.Register(tiff.NewTag(41495, "SensingMethod", nil)) exifTags.Register(tiff.NewTag(41728, "FileSource", nil)) exifTags.Register(tiff.NewTag(41729, "SceneType", nil)) exifTags.Register(tiff.NewTag(41730, "CFAPattern", nil)) exifTags.Register(tiff.NewTag(41985, "CustomRendered", nil)) exifTags.Register(tiff.NewTag(41986, "ExposureMode", nil)) exifTags.Register(tiff.NewTag(41987, "WhiteBalance", nil)) exifTags.Register(tiff.NewTag(41988, "DigitalZoomRatio", nil)) exifTags.Register(tiff.NewTag(41989, "FocalLengthIn35mmFilm", nil)) exifTags.Register(tiff.NewTag(41990, "SceneCaptureType", nil)) exifTags.Register(tiff.NewTag(41991, "GainControl", nil)) exifTags.Register(tiff.NewTag(41992, "Contrast", nil)) exifTags.Register(tiff.NewTag(41993, "Saturation", nil)) exifTags.Register(tiff.NewTag(41994, "Sharpness", nil)) exifTags.Register(tiff.NewTag(41995, "DeviceSettingDescription", nil)) exifTags.Register(tiff.NewTag(41996, "SubjectDistanceRange", nil)) exifTags.Register(tiff.NewTag(42016, "ImageUniqueID", nil)) exifTags.Register(tiff.NewTag(42032, "CameraOwnerName", nil)) exifTags.Register(tiff.NewTag(42033, "BodySerialNumber", nil)) exifTags.Register(tiff.NewTag(42034, "LensSpecification", nil)) exifTags.Register(tiff.NewTag(42035, "LensMake", nil)) exifTags.Register(tiff.NewTag(42036, "LensModel", nil)) exifTags.Register(tiff.NewTag(42037, "LensSerialNumber", nil)) // Tags that indicate the offsets to the respective IFDs. exifTags.Register(exifIFDTag) exifTags.Register(gpsIFDTag) exifTags.Register(iopIFDTag) // Not sure if this actually belongs in Exif, but it has shown up in an ExifIFD. exifTags.Register(tiff.NewTag(18246, "Rating", nil)) // Prevent further registration in exif. If tags are missing, they // should be added here instead of added from the outside. exifTags.Lock() tiff.DefaultTagSpace.RegisterTagSet(exifTags) ExifTagSpace.RegisterTagSet(tiff.BaselineTags) ExifTagSpace.RegisterTagSet(tiff.ExtendedTags) ExifTagSpace.RegisterTagSet(exifTags) tiff.RegisterTagSpace(ExifTagSpace) }
/* http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html http://www.exiv2.org/tags.html http://www.cipa.jp/exifprint/index_e.html http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf http://www.cipa.jp/std/documents/e/DC-008-Translation-2016-E.pdf http://www.jeita.or.jp/cgi-bin/standard_e/list.cgi?cateid=1&subcateid=4 */ const ExifIFDTagID = 34665 var ( exifTags = tiff.NewTagSet("Exif", 0, 65535) ExifTagSpace = tiff.NewTagSpace("Exif") exifIFDTag = tiff.NewTag(ExifIFDTagID, "ExifIFD", nil) ) /* TODO: Break up these exif tags into sets based on the exif version. They still all likely belong in the same space though. For an example, take a look at the way DNG was broken up. Tags introduced in newer versions are added to a set named for the version. They still all get put into the same space, just the sets are identified separately. */ /* TODO: Break up tags into categories From TIFF: A. Tags relating to image data structure B. Tags relating to recording offset