Beispiel #1
0
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)
}
Beispiel #2
0
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)
}
Beispiel #3
0
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)
}
Beispiel #4
0
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)
}
Beispiel #5
0
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)
}
Beispiel #6
0
// 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))
Beispiel #7
0
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)
}
Beispiel #8
0
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)
}
Beispiel #9
0
// 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)
}
Beispiel #10
0
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)
}
Beispiel #11
0
/*
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