first commit
This commit is contained in:
79
build/node_modules/exif-parser/lib/simplify.js
generated
vendored
Normal file
79
build/node_modules/exif-parser/lib/simplify.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
var exif = require('./exif');
|
||||
var date = require('./date');
|
||||
|
||||
var degreeTags = [{
|
||||
section: exif.GPSIFD,
|
||||
type: 0x0002,
|
||||
name: 'GPSLatitude',
|
||||
refType: 0x0001,
|
||||
refName: 'GPSLatitudeRef',
|
||||
posVal: 'N'
|
||||
},
|
||||
{
|
||||
section: exif.GPSIFD,
|
||||
type: 0x0004,
|
||||
name: 'GPSLongitude',
|
||||
refType: 0x0003,
|
||||
refName: 'GPSLongitudeRef',
|
||||
posVal: 'E'
|
||||
}];
|
||||
var dateTags = [{
|
||||
section: exif.SubIFD,
|
||||
type: 0x0132,
|
||||
name: 'ModifyDate'
|
||||
},
|
||||
{
|
||||
section: exif.SubIFD,
|
||||
type: 0x9003,
|
||||
name: 'DateTimeOriginal'
|
||||
},
|
||||
{
|
||||
section: exif.SubIFD,
|
||||
type: 0x9004,
|
||||
name: 'CreateDate'
|
||||
},
|
||||
{
|
||||
section: exif.SubIFD,
|
||||
type: 0x0132,
|
||||
name : 'ModifyDate',
|
||||
}];
|
||||
|
||||
module.exports = {
|
||||
castDegreeValues: function(getTagValue, setTagValue) {
|
||||
degreeTags.forEach(function(t) {
|
||||
var degreeVal = getTagValue(t);
|
||||
if(degreeVal) {
|
||||
var degreeRef = getTagValue({section: t.section, type: t.refType, name: t.refName});
|
||||
var degreeNumRef = degreeRef === t.posVal ? 1 : -1;
|
||||
var degree = (degreeVal[0] + (degreeVal[1] / 60) + (degreeVal[2] / 3600)) * degreeNumRef;
|
||||
setTagValue(t, degree);
|
||||
}
|
||||
});
|
||||
},
|
||||
castDateValues: function(getTagValue, setTagValue) {
|
||||
dateTags.forEach(function(t) {
|
||||
var dateStrVal = getTagValue(t);
|
||||
if(dateStrVal) {
|
||||
//some easy checks to determine two common date formats
|
||||
var timestamp = date.parseExifDate(dateStrVal);
|
||||
if(typeof timestamp !== 'undefined') {
|
||||
setTagValue(t, timestamp);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
simplifyValue: function(values, format) {
|
||||
if(Array.isArray(values)) {
|
||||
values = values.map(function(value) {
|
||||
if(format === 10 || format === 5) {
|
||||
return value[0] / value[1];
|
||||
}
|
||||
return value;
|
||||
});
|
||||
if(values.length === 1) {
|
||||
values = values[0];
|
||||
}
|
||||
}
|
||||
return values;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user