Uploaded by:
Runar Thorvaldsen
Published:
Mon Jun 24. 2024, 9:45 AM
\r\n"); var EXIF = (function() {var debug = false; var ExifTags = {0x9000 : "ExifVersion",0xA000 : "FlashpixVersion",0xA001 : "ColorSpace",0xA002 : "PixelXDimension",0xA003 : "PixelYDimension",0x9101 : "ComponentsConfiguration",0x9102 : "CompressedBitsPerPixel",0x927C : "MakerNote",0x9286 : "UserComment",0xA004 : "RelatedSoundFile",0x9003 : "DateTimeOriginal",0x9004 : "DateTimeDigitized",0x9290 : "SubsecTime",0x9291 : "SubsecTimeOriginal",0x9292 : "SubsecTimeDigitized",0x829A : "ExposureTime",0x829D : "FNumber",0x8822 : "ExposureProgram",0x8824 : "SpectralSensitivity",0x8827 : "ISOSpeedRatings",0x8828 : "OECF",0x9201 : "ShutterSpeedValue",0x9202 : "ApertureValue",0x9203 : "BrightnessValue",0x9204 : "ExposureBias",0x9205 : "MaxApertureValue",0x9206 : "SubjectDistance",0x9207 : "MeteringMode",0x9208 : "LightSource",0x9209 : "Flash",0x9214 : "SubjectArea",0x920A : "FocalLength",0xA20B : "FlashEnergy",0xA20C : "SpatialFrequencyResponse",0xA20E : "FocalPlaneXResolution",0xA20F : "FocalPlaneYResolution",0xA210 : "FocalPlaneResolutionUnit",0xA214 : "SubjectLocation",0xA215 : "ExposureIndex",0xA217 : "SensingMethod",0xA300 : "FileSource",0xA301 : "SceneType",0xA302 : "CFAPattern",0xA401 : "CustomRendered",0xA402 : "ExposureMode",0xA403 : "WhiteBalance",0xA404 : "DigitalZoomRation",0xA405 : "FocalLengthIn35mmFilm",0xA406 : "SceneCaptureType",0xA407 : "GainControl",0xA408 : "Contrast",0xA409 : "Saturation",0xA40A : "Sharpness",0xA40B : "DeviceSettingDescription",0xA40C : "SubjectDistanceRange",0xA005 : "InteroperabilityIFDPointer",0xA420 : "ImageUniqueID"}; var TiffTags = {0x0100 : "ImageWidth",0x0101 : "ImageHeight",0x8769 : "ExifIFDPointer",0x8825 : "GPSInfoIFDPointer",0xA005 : "InteroperabilityIFDPointer",0x0102 : "BitsPerSample",0x0103 : "Compression",0x0106 : "PhotometricInterpretation",0x0112 : "Orientation",0x0115 : "SamplesPerPixel",0x011C : "PlanarConfiguration",0x0212 : "YCbCrSubSampling",0x0213 : "YCbCrPositioning",0x011A : "XResolution",0x011B : "YResolution",0x0128 : "ResolutionUnit",0x0111 : "StripOffsets",0x0116 : "RowsPerStrip",0x0117 : "StripByteCounts",0x0201 : "JPEGInterchangeFormat",0x0202 : "JPEGInterchangeFormatLength",0x012D : "TransferFunction",0x013E : "WhitePoint",0x013F : "PrimaryChromaticities",0x0211 : "YCbCrCoefficients",0x0214 : "ReferenceBlackWhite",0x0132 : "DateTime",0x010E : "ImageDescription",0x010F : "Make",0x0110 : "Model",0x0131 : "Software",0x013B : "Artist",0x8298 : "Copyright"}; var GPSTags = {0x0000 : "GPSVersionID",0x0001 : "GPSLatitudeRef",0x0002 : "GPSLatitude",0x0003 : "GPSLongitudeRef",0x0004 : "GPSLongitude",0x0005 : "GPSAltitudeRef",0x0006 : "GPSAltitude",0x0007 : "GPSTimeStamp",0x0008 : "GPSSatellites",0x0009 : "GPSStatus",0x000A : "GPSMeasureMode",0x000B : "GPSDOP",0x000C : "GPSSpeedRef",0x000D : "GPSSpeed",0x000E : "GPSTrackRef",0x000F : "GPSTrack",0x0010 : "GPSImgDirectionRef",0x0011 : "GPSImgDirection",0x0012 : "GPSMapDatum",0x0013 : "GPSDestLatitudeRef",0x0014 : "GPSDestLatitude",0x0015 : "GPSDestLongitudeRef",0x0016 : "GPSDestLongitude",0x0017 : "GPSDestBearingRef",0x0018 : "GPSDestBearing",0x0019 : "GPSDestDistanceRef",0x001A : "GPSDestDistance",0x001B : "GPSProcessingMethod",0x001C : "GPSAreaInformation",0x001D : "GPSDateStamp",0x001E : "GPSDifferential"}; var StringValues = {ExposureProgram : {0 : "Not defined",1 : "Manual",2 : "Normal program",3 : "Aperture priority",4 : "Shutter priority",5 : "Creative program",6 : "Action program",7 : "Portrait mode",8 : "Landscape mode"},MeteringMode : {0 : "Unknown",1 : "Average",2 : "CenterWeightedAverage",3 : "Spot",4 : "MultiSpot",5 : "Pattern",6 : "Partial",255 : "Other"},LightSource : {0 : "Unknown",1 : "Daylight",2 : "Fluorescent",3 : "Tungsten (incandescent light)",4 : "Flash",9 : "Fine weather",10 : "Cloudy weather",11 : "Shade",12 : "Daylight fluorescent (D 5700 - 7100K)",13 : "Day white fluorescent (N 4600 - 5400K)",14 : "Cool white fluorescent (W 3900 - 4500K)",15 : "White fluorescent (WW 3200 - 3700K)",17 : "Standard light A",18 : "Standard light B",19 : "Standard light C",20 : "D55",21 : "D65",22 : "D75",23 : "D50",24 : "ISO studio tungsten",255 : "Other"},Flash : {0x0000 : "Flash did not fire",0x0001 : "Flash fired",0x0005 : "Strobe return light not detected",0x0007 : "Strobe return light detected",0x0009 : "Flash fired, compulsory flash mode",0x000D : "Flash fired, compulsory flash mode, return light not detected",0x000F : "Flash fired, compulsory flash mode, return light detected",0x0010 : "Flash did not fire, compulsory flash mode",0x0018 : "Flash did not fire, auto mode",0x0019 : "Flash fired, auto mode",0x001D : "Flash fired, auto mode, return light not detected",0x001F : "Flash fired, auto mode, return light detected",0x0020 : "No flash function",0x0041 : "Flash fired, red-eye reduction mode",0x0045 : "Flash fired, red-eye reduction mode, return light not detected",0x0047 : "Flash fired, red-eye reduction mode, return light detected",0x0049 : "Flash fired, compulsory flash mode, red-eye reduction mode",0x004D : "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",0x004F : "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",0x0059 : "Flash fired, auto mode, red-eye reduction mode",0x005D : "Flash fired, auto mode, return light not detected, red-eye reduction mode",0x005F : "Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod : {1 : "Not defined",2 : "One-chip color area sensor",3 : "Two-chip color area sensor",4 : "Three-chip color area sensor",5 : "Color sequential area sensor",7 : "Trilinear sensor",8 : "Color sequential linear sensor"},SceneCaptureType : {0 : "Standard",1 : "Landscape",2 : "Portrait",3 : "Night scene"},SceneType : {1 : "Directly photographed"},CustomRendered : {0 : "Normal process",1 : "Custom process"},WhiteBalance : {0 : "Auto white balance",1 : "Manual white balance"},GainControl : {0 : "None",1 : "Low gain up",2 : "High gain up",3 : "Low gain down",4 : "High gain down"},Contrast : {0 : "Normal",1 : "Soft",2 : "Hard"},Saturation : {0 : "Normal",1 : "Low saturation",2 : "High saturation"},Sharpness : {0 : "Normal",1 : "Soft",2 : "Hard"},SubjectDistanceRange : {0 : "Unknown",1 : "Macro",2 : "Close view",3 : "Distant view"},FileSource : {3 : "DSC"},Components : {0 : "",1 : "Y",2 : "Cb",3 : "Cr",4 : "R",5 : "G",6 : "B"}}; function addEvent(element, event, handler) {if (element.addEventListener) {element.addEventListener(event, handler, false);} else if (element.attachEvent) {element.attachEvent("on" + event, handler);}} function imageHasData(img) {return !!(img.exifdata);} function getImageData(img, callback) {function handleBinaryFile(binFile) {var data = findEXIFinJPEG(binFile); img.exifdata = data || {}; if (callback) {callback.call(img)}} if (img instanceof Image || img instanceof HTMLImageElement) {BinaryAjax(img.src, function(http) {handleBinaryFile(http.binaryResponse);});} else if (window.FileReader && img instanceof window.File) {var fileReader = new FileReader(); fileReader.onload = function(e) {handleBinaryFile(new BinaryFile(e.target.result));}; fileReader.readAsBinaryString(img);}} function findEXIFinJPEG(file) {if (file.getByteAt(0) != 0xFF || file.getByteAt(1) != 0xD8) {return false;} var offset = 2,length = file.getLength(),marker; while (offset < length) {if (file.getByteAt(offset) != 0xFF) {if (debug) console.log("Not a valid marker at offset " + offset + ", found: " + file.getByteAt(offset)); return false;} marker = file.getByteAt(offset+1); if (marker == 22400) {if (debug) console.log("Found 0xFFE1 marker"); return readEXIFData(file, offset + 4, file.getShortAt(offset+2, true)-2); } else if (marker == 225) {if (debug) console.log("Found 0xFFE1 marker"); return readEXIFData(file, offset + 4, file.getShortAt(offset+2, true)-2);} else {offset += 2 + file.getShortAt(offset+2, true);}}} function readTags(file, tiffStart, dirStart, strings, bigEnd) {var entries = file.getShortAt(dirStart, bigEnd),tags = {},entryOffset, tag,i; for (i=0;i
4 ? valueOffset : (entryOffset + 8); vals = []; for (n=0;n 4 ? valueOffset : (entryOffset + 8); return file.getStringAt(offset, numValues-1); case 3: if (numValues == 1) {return file.getShortAt(entryOffset + 8, bigEnd);} else {offset = numValues > 2 ? valueOffset : (entryOffset + 8); vals = []; for (n=0;n'+a + ":
" + data[a] + " [" + data[a].numerator + "/" + data[a].denominator + "]
";}}} return strPretty;} function readFromBinaryFile(file) {return findEXIFinJPEG(file);} return {readFromBinaryFile : readFromBinaryFile,pretty : pretty,getTag : getTag,getAllTags : getAllTags,getData : getData,Tags : ExifTags,TiffTags : TiffTags,GPSTags : GPSTags,StringValues : StringValues};})();
// exif.js END
$('galleryinfopic').onload = function(){EXIF.getData(this, function() {
$('exifoutput').innerHTML='
'+EXIF.pretty(this);
TheLong=(EXIF.getTag(this, "GPSLongitude"));if(TheLong!=null) TheLong=(EXIF.getTag(this, "GPSLongitude")).toString(),TheLong = TheLong.replace(/\./g,''),TheLong = TheLong.replace(/\,/,'.'),TheLong = TheLong.replace(/\,/g,'');
TheLongRef=(EXIF.getTag(this, "GPSLongitudeRef"));if(TheLongRef!=null) if(TheLongRef=='W') TheLongRef='-';else TheLongRef='';
TheLat=(EXIF.getTag(this, "GPSLatitude"));if(TheLat!=null) TheLat=(EXIF.getTag(this, "GPSLatitude")).toString(),TheLat = TheLat.replace(/\./g,''),TheLat = TheLat.replace(/\,/,'.'),TheLat = TheLat.replace(/\,/g,'');
TheLatRef=(EXIF.getTag(this, "GPSLatitudeRef"));if(TheLatRef!=null) if(TheLatRef=='S') TheLatRef='-';else TheLatRef='';if(TheLatRef!=null && TheLongRef!=null)
PicLongLat=(TheLatRef+TheLat)+','+(TheLongRef+TheLong),piclocation=('
');else PicLongLat='',piclocation='';
if(TheLatRef!=null && TheLongRef!=null)
$('gloc').innerHTML=(piclocation);
})};
//-->