Socket
Socket
Sign inDemoInstall

blueimp-load-image

Package Overview
Dependencies
0
Maintainers
1
Versions
82
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.0.1 to 5.0.0

18

js/load-image-exif-map.js

@@ -82,2 +82,5 @@ /*

0x9004: 'DateTimeDigitized', // Date and time when the image was stored digitally
0x9010: 'OffsetTime', // Time zone when the image file was last changed
0x9011: 'OffsetTimeOriginal', // Time zone when the image was stored digitally
0x9012: 'OffsetTimeDigitized', // Time zone when the image was stored digitally
0x9290: 'SubSecTime', // Fractions of seconds for DateTime

@@ -181,2 +184,5 @@ 0x9291: 'SubSecTimeOriginal', // Fractions of seconds for DateTimeOriginal

// IFD1 directory can contain any IFD0 tags:
ExifMapProto.tags.ifd1 = ExifMapProto.tags
ExifMapProto.stringValues = {

@@ -377,3 +383,3 @@ ExposureProgram: {

if (obj && obj.getAll) {
map[this.privateIFDs[prop].name] = obj.getAll()
map[this.ifds[prop].name] = obj.getAll()
} else {

@@ -390,3 +396,3 @@ name = this.tags[prop]

var name = this.tags[tagCode]
if (typeof name === 'object') return this.privateIFDs[tagCode].name
if (typeof name === 'object') return this.ifds[tagCode].name
return name

@@ -399,3 +405,3 @@ }

var prop
var privateIFD
var ifd
var subTags

@@ -405,8 +411,8 @@ // Map the tag names to tags:

if (Object.prototype.hasOwnProperty.call(tags, prop)) {
privateIFD = ExifMapProto.privateIFDs[prop]
if (privateIFD) {
ifd = ExifMapProto.ifds[prop]
if (ifd) {
subTags = tags[prop]
for (prop in subTags) {
if (Object.prototype.hasOwnProperty.call(subTags, prop)) {
privateIFD.map[subTags[prop]] = Number(prop)
ifd.map[subTags[prop]] = Number(prop)
}

@@ -413,0 +419,0 @@ }

@@ -35,3 +35,3 @@ /*

* @class
* @param {number} tagCode Private IFD tag code
* @param {number|string} tagCode IFD tag code
*/

@@ -41,3 +41,3 @@ function ExifMap(tagCode) {

Object.defineProperty(this, 'map', {
value: this.privateIFDs[tagCode].map
value: this.ifds[tagCode].map
})

@@ -52,3 +52,4 @@ Object.defineProperty(this, 'tags', {

Orientation: 0x0112,
Thumbnail: 0x0201,
Thumbnail: 'ifd1',
Blob: 0x0201, // Alias for JPEGInterchangeFormat
Exif: 0x8769,

@@ -59,3 +60,4 @@ GPSInfo: 0x8825,

ExifMap.prototype.privateIFDs = {
ExifMap.prototype.ifds = {
ifd1: { name: 'Thumbnail', map: ExifMap.prototype.map },
0x8769: { name: 'Exif', map: {} },

@@ -89,5 +91,8 @@ 0x8825: { name: 'GPSInfo', map: {} },

}
return new Blob([dataView.buffer.slice(offset, offset + length)], {
type: 'image/jpeg'
})
return new Blob(
[loadImage.bufferSlice.call(dataView.buffer, offset, offset + length)],
{
type: 'image/jpeg'
}
)
}

@@ -225,2 +230,17 @@

/**
* Determines if the given tag should be included.
*
* @param {object} includeTags Map of tags to include
* @param {object} excludeTags Map of tags to exclude
* @param {number|string} tagCode Tag code to check
* @returns {boolean} True if the tag should be included
*/
function shouldIncludeTag(includeTags, excludeTags, tagCode) {
return (
(!includeTags || includeTags[tagCode]) &&
(!excludeTags || excludeTags[tagCode] !== true)
)
}
/**
* Parses Exif tags.

@@ -262,4 +282,3 @@ *

tagNumber = dataView.getUint16(tagOffset, littleEndian)
if (includeTags && !includeTags[tagNumber]) continue
if (excludeTags && excludeTags[tagNumber] === true) continue
if (!shouldIncludeTag(includeTags, excludeTags, tagNumber)) continue
tagValue = getExifValue(

@@ -283,6 +302,6 @@ dataView,

/**
* Parses Private IFD tags.
* Parses tags in a given IFD (Image File Directory).
*
* @param {object} data Data object to store exif tags and offsets
* @param {number} tagCode Private IFD tag code
* @param {number|string} tagCode IFD tag code
* @param {DataView} dataView Data view interface

@@ -294,3 +313,3 @@ * @param {number} tiffOffset TIFF offset

*/
function parseExifPrivateIFD(
function parseExifIFD(
data,

@@ -337,3 +356,3 @@ tagCode,

var dirOffset
var privateIFDs
var thumbnailIFD
// Check for the ASCII code for "Exif" (0x45786966):

@@ -379,4 +398,4 @@ if (dataView.getUint32(offset + 4) !== 0x45786966) {

}
// Parse the tags of the main image directory and retrieve the
// offset to the next directory, usually the thumbnail directory:
// Parse the tags of the main image directory (IFD0) and retrieve the
// offset to the next directory (IFD1), usually the thumbnail directory:
dirOffset = parseExifTags(

@@ -392,25 +411,10 @@ dataView,

)
if (dirOffset && !options.disableExifThumbnail) {
dirOffset = parseExifTags(
dataView,
tiffOffset,
tiffOffset + dirOffset,
littleEndian,
data.exif,
data.exifOffsets,
includeTags,
excludeTags
)
// Check for JPEG Thumbnail offset:
if (data.exif[0x0201] && data.exif[0x0202]) {
data.exif[0x0201] = getExifThumbnail(
dataView,
tiffOffset + data.exif[0x0201],
data.exif[0x0202] // Thumbnail data length
)
if (dirOffset && shouldIncludeTag(includeTags, excludeTags, 'ifd1')) {
data.exif.ifd1 = dirOffset
if (data.exifOffsets) {
data.exifOffsets.ifd1 = tiffOffset + dirOffset
}
}
privateIFDs = Object.keys(data.exif.privateIFDs)
privateIFDs.forEach(function (tagCode) {
parseExifPrivateIFD(
Object.keys(data.exif.ifds).forEach(function (tagCode) {
parseExifIFD(
data,

@@ -425,2 +429,11 @@ tagCode,

})
thumbnailIFD = data.exif.ifd1
// Check for JPEG Thumbnail offset and data length:
if (thumbnailIFD && thumbnailIFD[0x0201] && thumbnailIFD[0x0202]) {
thumbnailIFD[0x0201] = getExifThumbnail(
dataView,
tiffOffset + thumbnailIFD[0x0201],
thumbnailIFD[0x0202] // Thumbnail data length
)
}
}

@@ -454,3 +467,2 @@

// - disableExif: Disables Exif parsing when true.
// - disableExifThumbnail: Disables parsing of Thumbnail data when true.
// - disableExifOffsets: Disables storing Exif tag offsets when true.

@@ -457,0 +469,0 @@ // - includeExifTags: A map of Exif tags to include for parsing.

@@ -78,3 +78,3 @@ /*

*
* @param {number} tagCode Private IFD tag code
* @param {number} tagCode tag code
* @param {IptcMap} map IPTC tag map

@@ -81,0 +81,0 @@ * @param {DataView} dataView Data view interface

@@ -32,4 +32,4 @@ /*

var hasblobSlice =
typeof Blob !== 'undefined' &&
loadImage.blobSlice =
loadImage.global.Blob &&
(Blob.prototype.slice ||

@@ -39,7 +39,12 @@ Blob.prototype.webkitSlice ||

loadImage.blobSlice =
hasblobSlice &&
function () {
var slice = this.slice || this.webkitSlice || this.mozSlice
return slice.apply(this, arguments)
loadImage.bufferSlice =
loadImage.global.ArrayBuffer.prototype.slice ||
function (begin, end) {
// Polyfill for IE10, which does not support ArrayBuffer.slice
// eslint-disable-next-line no-param-reassign
end = end || this.byteLength - begin
var arr1 = new Uint8Array(this, begin, end)
var arr2 = new Uint8Array(end)
arr2.set(arr1)
return arr2.buffer
}

@@ -70,3 +75,3 @@

var noMetaData = !(
typeof DataView !== 'undefined' &&
loadImage.global.DataView &&
file &&

@@ -102,4 +107,2 @@ file.size >= 12 &&

var i
var arr1
var arr2
// Check for the JPEG marker (0xffd8):

@@ -150,12 +153,3 @@ if (dataView.getUint16(0) === 0xffd8) {

if (!options.disableImageHead && headLength > 6) {
if (buffer.slice) {
data.imageHead = buffer.slice(0, headLength)
} else {
// Workaround for IE10, which does not support
// ArrayBuffer.slice:
arr1 = new Uint8Array(buffer, 0, headLength)
arr2 = new Uint8Array(headLength)
arr2.set(arr1)
data.imageHead = arr2.buffer
}
data.imageHead = loadImage.bufferSlice.call(buffer, 0, headLength)
}

@@ -162,0 +156,0 @@ } else {

@@ -1,2 +0,2 @@

!function(n){"use strict";function s(i,a,n){var r,o=document.createElement("img");function e(e,t){t&&console.log(t),e&&s.isInstanceOf("Blob",e)?(i=e,r=s.createObjectURL(i)):(r=i,n&&n.crossOrigin&&(o.crossOrigin=n.crossOrigin)),o.src=r}return o.onerror=function(e){return s.onerror(o,e,i,r,a,n)},o.onload=function(e){return s.onload(o,e,i,r,a,n)},"string"==typeof i?(s.requiresMetaData(n)?s.fetchBlob(i,e,n):e(),o):s.isInstanceOf("Blob",i)||s.isInstanceOf("File",i)?(r=s.createObjectURL(i))?(o.src=r,o):s.readFile(i,function(e){var t=e.target;t&&t.result?o.src=t.result:a&&a(e)}):void 0}var t=n.createObjectURL&&n||n.URL&&URL.revokeObjectURL&&URL||n.webkitURL&&webkitURL;function o(e,t){!e||"blob:"!==e.slice(0,5)||t&&t.noRevoke||s.revokeObjectURL(e)}s.requiresMetaData=function(e){return e&&e.meta},s.fetchBlob=function(e,t){t()},s.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},s.transform=function(e,t,i,a,n){i(e,n)},s.onerror=function(e,t,i,a,n,r){o(a,r),n&&n.call(e,t)},s.onload=function(e,t,i,a,n,r){o(a,r),n&&s.transform(e,r,n,i,{originalWidth:e.naturalWidth||e.width,originalHeight:e.naturalHeight||e.height})},s.createObjectURL=function(e){return!!t&&t.createObjectURL(e)},s.revokeObjectURL=function(e){return!!t&&t.revokeObjectURL(e)},s.readFile=function(e,t,i){if(n.FileReader){var a=new FileReader;if(a.onload=a.onerror=t,a[i=i||"readAsDataURL"])return a[i](e),a}return!1},s.global=n,"function"==typeof define&&define.amd?define(function(){return s}):"object"==typeof module&&module.exports?module.exports=s:n.loadImage=s}("undefined"!=typeof window&&window||this),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):"object"==typeof module&&module.exports?e(require("./load-image")):e(window.loadImage)}(function(x){"use strict";var r=x.transform;x.createCanvas=function(e,t,i){if(i&&x.global.OffscreenCanvas)return new OffscreenCanvas(e,t);var a=document.createElement("canvas");return a.width=e,a.height=t,a},x.transform=function(e,t,i,a,n){r.call(x,x.scale(e,t,n),t,i,a,n)},x.transformCoordinates=function(){},x.getTransformedOptions=function(e,t){var i,a,n,r,o=t.aspectRatio;if(!o)return t;for(a in i={},t)Object.prototype.hasOwnProperty.call(t,a)&&(i[a]=t[a]);return i.crop=!0,o<(n=e.naturalWidth||e.width)/(r=e.naturalHeight||e.height)?(i.maxWidth=r*o,i.maxHeight=r):(i.maxWidth=n,i.maxHeight=n/o),i},x.drawImage=function(e,t,i,a,n,r,o,s,c){var l=t.getContext("2d");return!1===c.imageSmoothingEnabled?(l.msImageSmoothingEnabled=!1,l.imageSmoothingEnabled=!1):c.imageSmoothingQuality&&(l.imageSmoothingQuality=c.imageSmoothingQuality),l.drawImage(e,i,a,n,r,0,0,o,s),l},x.requiresCanvas=function(e){return e.canvas||e.crop||!!e.aspectRatio},x.scale=function(e,t,i){t=t||{},i=i||{};var a,n,r,o,s,c,l,u,f,d,g,m,h=e.getContext||x.requiresCanvas(t)&&!!x.global.HTMLCanvasElement,p=e.naturalWidth||e.width,A=e.naturalHeight||e.height,b=p,S=A;function y(){var e=Math.max((r||b)/b,(o||S)/S);1<e&&(b*=e,S*=e)}function v(){var e=Math.min((a||b)/b,(n||S)/S);e<1&&(b*=e,S*=e)}if(h&&(l=(t=x.getTransformedOptions(e,t,i)).left||0,u=t.top||0,t.sourceWidth?(s=t.sourceWidth,void 0!==t.right&&void 0===t.left&&(l=p-s-t.right)):s=p-l-(t.right||0),t.sourceHeight?(c=t.sourceHeight,void 0!==t.bottom&&void 0===t.top&&(u=A-c-t.bottom)):c=A-u-(t.bottom||0),b=s,S=c),a=t.maxWidth,n=t.maxHeight,r=t.minWidth,o=t.minHeight,h&&a&&n&&t.crop?(g=s/c-(b=a)/(S=n))<0?(c=n*s/a,void 0===t.top&&void 0===t.bottom&&(u=(A-c)/2)):0<g&&(s=a*c/n,void 0===t.left&&void 0===t.right&&(l=(p-s)/2)):((t.contain||t.cover)&&(r=a=a||r,o=n=n||o),t.cover?(v(),y()):(y(),v())),h){if(1<(f=t.pixelRatio)&&parseInt(e.style.width,10)!==p/f&&(b*=f,S*=f),x.orientationCropBug&&!e.getContext&&(l||u||s!==p||c!==A)&&(g=e,e=x.createCanvas(p,A,!0),x.drawImage(g,e,0,0,p,A,p,A,t)),0<(d=t.downsamplingRatio)&&d<1&&b<s&&S<c)for(;b<s*d;)m=x.createCanvas(s*d,c*d,!0),x.drawImage(e,m,l,u,s,c,m.width,m.height,t),u=l=0,s=m.width,c=m.height,e=m;return m=x.createCanvas(b,S),x.transformCoordinates(m,t,i),1<f&&(m.style.width=m.width/f+"px",m.style.height=m.height/f+"px"),x.drawImage(e,m,l,u,s,c,b,S,t).setTransform(1,0,0,1,0,0),m}return e.width=b,e.height=S,e}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):"object"==typeof module&&module.exports?e(require("./load-image")):e(window.loadImage)}(function(p){"use strict";var e="undefined"!=typeof Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);p.blobSlice=e&&function(){return(this.slice||this.webkitSlice||this.mozSlice).apply(this,arguments)},p.metaDataParsers={jpeg:{65505:[],65517:[]}},p.parseMetaData=function(e,d,g,m){m=m||{};var h=this,t=(g=g||{}).maxMetaDataSize||262144;!!("undefined"!=typeof DataView&&e&&12<=e.size&&"image/jpeg"===e.type&&p.blobSlice)&&p.readFile(p.blobSlice.call(e,0,t),function(e){if(e.target.error)return console.log(e.target.error),void d(m);var t,i,a,n,r,o,s=e.target.result,c=new DataView(s),l=2,u=c.byteLength-4,f=l;if(65496===c.getUint16(0)){for(;l<u&&(65504<=(t=c.getUint16(l))&&t<=65519||65534===t);){if(l+(i=c.getUint16(l+2)+2)>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if((a=p.metaDataParsers.jpeg[t])&&!g.disableMetaDataParsers)for(n=0;n<a.length;n+=1)a[n].call(h,c,l,i,m,g);f=l+=i}!g.disableImageHead&&6<f&&(s.slice?m.imageHead=s.slice(0,f):(r=new Uint8Array(s,0,f),(o=new Uint8Array(f)).set(r),m.imageHead=o.buffer))}else console.log("Invalid JPEG file: Missing JPEG marker.");d(m)},"readAsArrayBuffer")||d(m)},p.replaceHead=function(t,i,a){p.parseMetaData(t,function(e){a(new Blob([i,p.blobSlice.call(t,e.imageHead.byteLength)],{type:"image/jpeg"}))},{maxMetaDataSize:256,disableMetaDataParsers:!0})};var r=p.transform;p.transform=function(t,i,a,n,e){p.requiresMetaData(i)?p.parseMetaData(n,function(e){r.call(p,t,i,a,n,e)},i,e):r.apply(p,arguments)}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):"object"==typeof module&&module.exports?e(require("./load-image")):e(window.loadImage)}(function(e){"use strict";"undefined"!=typeof fetch&&"undefined"!=typeof Request?e.fetchBlob=function(e,t,i){fetch(new Request(e,i)).then(function(e){return e.blob()}).then(t).catch(function(e){t(null,e)})}:"undefined"!=typeof XMLHttpRequest&&"undefined"!=typeof ProgressEvent&&(e.fetchBlob=function(e,t,i){i=i||{};var a=new XMLHttpRequest;a.open(i.method||"GET",e),i.headers&&Object.keys(i.headers).forEach(function(e){a.setRequestHeader(e,i.headers[e])}),a.withCredentials="include"===i.credentials,a.responseType="blob",a.onload=function(){t(a.response)},a.onerror=a.onabort=a.ontimeout=function(e){t(null,e)},a.send(i.body)})}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-scale","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-scale"),require("./load-image-meta")):e(window.loadImage)}(function(h){"use strict";var n=h.transform,t=h.requiresCanvas,i=h.requiresMetaData,u=h.transformCoordinates,p=h.getTransformedOptions;function a(e,t){var i=e&&e.orientation;return!0===i&&!h.orientation||1===i&&h.orientation||(!t||h.orientation)&&1<i&&i<9}function A(e,t){return e!==t&&(1===e&&1<t&&t<9||1<e&&e<9)}function b(e,t){if(1<t&&t<9)switch(e){case 2:case 4:return 4<t;case 5:case 7:return t%2==0;case 6:case 8:return 2===t||4===t||5===t||7===t}}!function(t){if(t.global.document){var i=document.createElement("img");i.onload=function(){if(t.orientation=2===i.width&&3===i.height,t.orientation){var e=t.createCanvas(1,1,!0).getContext("2d");e.drawImage(i,1,1,1,1,0,0,1,1),t.orientationCropBug="255,255,255,255"!==e.getImageData(0,0,1,1).data.toString()}},i.src="data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k="}}(h),h.requiresCanvas=function(e){return a(e)||t.call(h,e)},h.requiresMetaData=function(e){return a(e,!0)||i.call(h,e)},h.transform=function(e,t,r,i,a){n.call(h,e,t,function(e,t){if(t){var i=h.orientation&&t.exif&&t.exif.get("Orientation");if(4<i&&i<9){var a=t.originalWidth,n=t.originalHeight;t.originalWidth=n,t.originalHeight=a}}r(e,t)},i,a)},h.getTransformedOptions=function(e,t,i){var a=p.call(h,e,t),n=i.exif&&i.exif.get("Orientation"),r=a.orientation,o=h.orientation&&n;if(!0===r&&(r=n),!A(r,o))return a;var s=a.top,c=a.right,l=a.bottom,u=a.left,f={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&(f[d]=a[d]);if((4<(f.orientation=r)&&!(4<o)||r<5&&4<o)&&(f.maxWidth=a.maxHeight,f.maxHeight=a.maxWidth,f.minWidth=a.minHeight,f.minHeight=a.minWidth,f.sourceWidth=a.sourceHeight,f.sourceHeight=a.sourceWidth),1<o){switch(o){case 2:c=a.left,u=a.right;break;case 3:s=a.bottom,c=a.left,l=a.top,u=a.right;break;case 4:s=a.bottom,l=a.top;break;case 5:s=a.left,c=a.bottom,l=a.right,u=a.top;break;case 6:s=a.left,c=a.top,l=a.right,u=a.bottom;break;case 7:s=a.right,c=a.top,l=a.left,u=a.bottom;break;case 8:s=a.right,c=a.bottom,l=a.left,u=a.top}if(b(r,o)){var g=s,m=c;s=l,c=u,l=g,u=m}}switch(f.top=s,f.right=c,f.bottom=l,f.left=u,r){case 2:f.right=u,f.left=c;break;case 3:f.top=l,f.right=u,f.bottom=s,f.left=c;break;case 4:f.top=l,f.bottom=s;break;case 5:f.top=u,f.right=l,f.bottom=c,f.left=s;break;case 6:f.top=c,f.right=l,f.bottom=u,f.left=s;break;case 7:f.top=c,f.right=s,f.bottom=u,f.left=l;break;case 8:f.top=u,f.right=s,f.bottom=c,f.left=l}return f},h.transformCoordinates=function(e,t,i){u.call(h,e,t,i);var a=t.orientation,n=h.orientation&&i.exif&&i.exif.get("Orientation");if(A(a,n)){var r=e.getContext("2d"),o=e.width,s=e.height,c=o,l=s;switch((4<a&&!(4<n)||a<5&&4<n)&&(e.width=s,e.height=o),4<a&&(c=s,l=o),n){case 2:r.translate(c,0),r.scale(-1,1);break;case 3:r.translate(c,l),r.rotate(Math.PI);break;case 4:r.translate(0,l),r.scale(1,-1);break;case 5:r.rotate(-.5*Math.PI),r.scale(-1,1);break;case 6:r.rotate(-.5*Math.PI),r.translate(-c,0);break;case 7:r.rotate(-.5*Math.PI),r.translate(-c,l),r.scale(1,-1);break;case 8:r.rotate(.5*Math.PI),r.translate(0,-l)}switch(b(a,n)&&(r.translate(c,l),r.rotate(Math.PI)),a){case 2:r.translate(o,0),r.scale(-1,1);break;case 3:r.translate(o,s),r.rotate(Math.PI);break;case 4:r.translate(0,s),r.scale(1,-1);break;case 5:r.rotate(.5*Math.PI),r.scale(1,-1);break;case 6:r.rotate(.5*Math.PI),r.translate(0,-s);break;case 7:r.rotate(.5*Math.PI),r.translate(o,-s),r.scale(-1,1);break;case 8:r.rotate(-.5*Math.PI),r.translate(-o,0)}}}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(n){"use strict";function h(e){e&&(Object.defineProperty(this,"map",{value:this.privateIFDs[e].map}),Object.defineProperty(this,"tags",{value:this.tags&&this.tags[e]||{}}))}h.prototype.map={Orientation:274,Thumbnail:513,Exif:34665,GPSInfo:34853,Interoperability:40965},h.prototype.privateIFDs={34665:{name:"Exif",map:{}},34853:{name:"GPSInfo",map:{}},40965:{name:"Interoperability",map:{}}},h.prototype.get=function(e){return this[e]||this[this.map[e]]};var g={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,i){return e.getUint16(t,i)},size:2},4:{getValue:function(e,t,i){return e.getUint32(t,i)},size:4},5:{getValue:function(e,t,i){return e.getUint32(t,i)/e.getUint32(t+4,i)},size:8},9:{getValue:function(e,t,i){return e.getInt32(t,i)},size:4},10:{getValue:function(e,t,i){return e.getInt32(t,i)/e.getInt32(t+4,i)},size:8}};function m(e,t,i,a,n,r){var o,s,c,l,u,f,d=g[a];if(d){if(!((s=4<(o=d.size*n)?t+e.getUint32(i+8,r):i+8)+o>e.byteLength)){if(1===n)return d.getValue(e,s,r);for(c=[],l=0;l<n;l+=1)c[l]=d.getValue(e,s+l*d.size,r);if(d.ascii){for(u="",l=0;l<c.length&&"\0"!==(f=c[l]);l+=1)u+=f;return u}return c}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")}function p(e,t,i,a,n,r,o,s){var c,l,u,f,d,g;if(i+6>e.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(!((l=i+2+12*(c=e.getUint16(i,a)))+4>e.byteLength)){for(u=0;u<c;u+=1)f=i+2+12*u,d=e.getUint16(f,a),o&&!o[d]||s&&!0===s[d]||(g=m(e,t,f,e.getUint16(f+2,a),e.getUint32(f+4,a),a),n[d]=g,r&&(r[d]=f));return e.getUint32(l,a)}console.log("Invalid Exif data: Invalid directory size.")}}g[7]=g[1],n.parseExifData=function(l,e,t,u,i){if(!i.disableExif){var f,a,d=i.includeExifTags,g=i.excludeExifTags||{34665:{37500:!0}},m=e+10;if(1165519206===l.getUint32(e+4))if(m+8>l.byteLength)console.log("Invalid Exif data: Invalid segment size.");else if(0===l.getUint16(e+8)){switch(l.getUint16(m)){case 18761:f=!0;break;case 19789:f=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}42===l.getUint16(m+2,f)?(a=l.getUint32(m+4,f),u.exif=new h,i.disableExifOffsets||(u.exifOffsets=new h,u.exifTiffOffset=m,u.exifLittleEndian=f),(a=p(l,m,m+a,f,u.exif,u.exifOffsets,d,g))&&!i.disableExifThumbnail&&(a=p(l,m,m+a,f,u.exif,u.exifOffsets,d,g),u.exif[513]&&u.exif[514]&&(u.exif[513]=function(e,t,i){if(i&&!(t+i>e.byteLength))return new Blob([e.buffer.slice(t,t+i)],{type:"image/jpeg"});console.log("Invalid Exif data: Invalid thumbnail data.")}(l,m+u.exif[513],u.exif[514]))),Object.keys(u.exif.privateIFDs).forEach(function(e){var t,i,a,n,r,o,s,c;i=e,a=l,n=m,r=f,o=d,s=g,(c=(t=u).exif[i])&&(t.exif[i]=new h(i),t.exifOffsets&&(t.exifOffsets[i]=new h(i)),p(a,n,n+c,r,t.exif[i],t.exifOffsets&&t.exifOffsets[i],o&&o[i],s&&s[i]))})):console.log("Invalid Exif data: Missing TIFF marker.")}else console.log("Invalid Exif data: Missing byte alignment offset.")}},n.metaDataParsers.jpeg[65505].push(n.parseExifData),n.exifWriters={274:function(e,t,i){return new DataView(e,t.exifOffsets[274]+8,2).setUint16(0,i,t.exifLittleEndian),e}},n.writeExifData=function(e,t,i,a){n.exifWriters[t.exif.map[i]](e,t,a)},n.ExifMap=h}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-exif")):e(window.loadImage)}(function(e){"use strict";var n=e.ExifMap.prototype;n.tags={256:"ImageWidth",257:"ImageHeight",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",34665:{36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber"},34853:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},40965:{1:"InteroperabilityIndex"}},n.stringValues={ExposureProgram:{0:"Undefined",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:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",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"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},n.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":if(!t)return;return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":if(!t)return;return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":if(!t)return;return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},n.getAll=function(){var e,t,i,a={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&((t=this[e])&&t.getAll?a[this.privateIFDs[e].name]=t.getAll():(i=this.tags[e])&&(a[i]=this.getText(i)));return a},n.getName=function(e){var t=this.tags[e];return"object"==typeof t?this.privateIFDs[e].name:t},function(){var e,t,i,a=n.tags;for(e in a)if(Object.prototype.hasOwnProperty.call(a,e))if(t=n.privateIFDs[e])for(e in i=a[e])Object.prototype.hasOwnProperty.call(i,e)&&(t.map[i[e]]=Number(e));else n.map[a[e]]=Number(e)}()}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(e){"use strict";function g(){}function m(e,t,i,a,n){return"binary"===t.types[e]?new Blob([i.buffer.slice(a,a+n)]):"Uint16"===t.types[e]?i.getUint16(a):function(e,t,i){for(var a="",n=t+i,r=t;r<n;r+=1)a+=String.fromCharCode(e.getUint8(r));return a}(i,a,n)}function h(e,t,i,a,n,r){for(var o,s,c,l,u,f=t+i,d=t;d<f;)28===e.getUint8(d)&&2===e.getUint8(d+1)&&(c=e.getUint8(d+2),n&&!n[c]||r&&r[c]||(s=e.getInt16(d+3),o=m(c,a.iptc,e,d+5,s),a.iptc[c]=(l=a.iptc[c],u=o,void 0===l?u:l instanceof Array?(l.push(u),l):[l,u]),a.iptcOffsets&&(a.iptcOffsets[c]=d))),d+=1}g.prototype.map={ObjectName:5},g.prototype.types={0:"Uint16",200:"Uint16",201:"Uint16",202:"binary"},g.prototype.get=function(e){return this[e]||this[this.map[e]]},e.parseIptcData=function(e,t,i,a,n){if(!n.disableIptc)for(var r,o,s,c,l=t+i;t+8<l;){if(c=t,943868237===(s=e).getUint32(c)&&1028===s.getUint16(c+4)){var u=(r=t,o=void 0,(o=e.getUint8(r+7))%2!=0&&(o+=1),0===o&&(o=4),o),f=t+8+u;if(l<f){console.log("Invalid IPTC data: Invalid segment offset.");break}var d=e.getUint16(t+6+u);if(l<t+d){console.log("Invalid IPTC data: Invalid segment size.");break}return a.iptc=new g,n.disableIptcOffsets||(a.iptcOffsets=new g),void h(e,f,d,a,n.includeIptcTags,n.excludeIptcTags||{202:!0})}t+=1}},e.metaDataParsers.jpeg[65517].push(e.parseIptcData),e.IptcMap=g}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-iptc"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-iptc")):e(window.loadImage)}(function(e){"use strict";var a=e.IptcMap.prototype;a.tags={0:"ApplicationRecordVersion",3:"ObjectTypeReference",4:"ObjectAttributeReference",5:"ObjectName",7:"EditStatus",8:"EditorialUpdate",10:"Urgency",12:"SubjectReference",15:"Category",20:"SupplementalCategories",22:"FixtureIdentifier",25:"Keywords",26:"ContentLocationCode",27:"ContentLocationName",30:"ReleaseDate",35:"ReleaseTime",37:"ExpirationDate",38:"ExpirationTime",40:"SpecialInstructions",42:"ActionAdvised",45:"ReferenceService",47:"ReferenceDate",50:"ReferenceNumber",55:"DateCreated",60:"TimeCreated",62:"DigitalCreationDate",63:"DigitalCreationTime",65:"OriginatingProgram",70:"ProgramVersion",75:"ObjectCycle",80:"Byline",85:"BylineTitle",90:"City",92:"Sublocation",95:"State",100:"CountryCode",101:"Country",103:"OriginalTransmissionReference",105:"Headline",110:"Credit",115:"Source",116:"CopyrightNotice",118:"Contact",120:"Caption",121:"LocalCaption",122:"Writer",125:"RasterizedCaption",130:"ImageType",131:"ImageOrientation",135:"LanguageIdentifier",150:"AudioType",151:"AudioSamplingRate",152:"AudioSamplingResolution",153:"AudioDuration",154:"AudioOutcue",184:"JobID",185:"MasterDocumentID",186:"ShortDocumentID",187:"UniqueDocumentID",188:"OwnerID",200:"ObjectPreviewFileFormat",201:"ObjectPreviewFileVersion",202:"ObjectPreviewData",221:"Prefs",225:"ClassifyState",228:"SimilarityIndex",230:"DocumentNotes",231:"DocumentHistory",232:"ExifCameraInfo",255:"CatalogSets"},a.stringValues={10:{0:"0 (reserved)",1:"1 (most urgent)",2:"2",3:"3",4:"4",5:"5 (normal urgency)",6:"6",7:"7",8:"8 (least urgent)",9:"9 (user-defined priority)"},75:{a:"Morning",b:"Both Morning and Evening",p:"Evening"},131:{L:"Landscape",P:"Portrait",S:"Square"}},a.getText=function(e){var t=this.get(e),i=this.map[e],a=this.stringValues[i];return a?a[t]:String(t)},a.getAll=function(){var e,t,i={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&(t=this.tags[e])&&(i[t]=this.getText(t));return i},a.getName=function(e){return this.tags[e]},function(){var e,t=a.tags,i=a.map||{};for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(i[t[e]]=Number(e))}()});
!function(n){"use strict";function s(i,a,n){var r,o=document.createElement("img");function e(e,t){t&&console.log(t),e&&s.isInstanceOf("Blob",e)?(i=e,r=s.createObjectURL(i)):(r=i,n&&n.crossOrigin&&(o.crossOrigin=n.crossOrigin)),o.src=r}return o.onerror=function(e){return s.onerror(o,e,i,r,a,n)},o.onload=function(e){return s.onload(o,e,i,r,a,n)},"string"==typeof i?(s.requiresMetaData(n)?s.fetchBlob(i,e,n):e(),o):s.isInstanceOf("Blob",i)||s.isInstanceOf("File",i)?(r=s.createObjectURL(i))?(o.src=r,o):s.readFile(i,function(e){var t=e.target;t&&t.result?o.src=t.result:a&&a(e)}):void 0}var t=n.createObjectURL&&n||n.URL&&URL.revokeObjectURL&&URL||n.webkitURL&&webkitURL;function o(e,t){!e||"blob:"!==e.slice(0,5)||t&&t.noRevoke||s.revokeObjectURL(e)}s.requiresMetaData=function(e){return e&&e.meta},s.fetchBlob=function(e,t){t()},s.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},s.transform=function(e,t,i,a,n){i(e,n)},s.onerror=function(e,t,i,a,n,r){o(a,r),n&&n.call(e,t)},s.onload=function(e,t,i,a,n,r){o(a,r),n&&s.transform(e,r,n,i,{originalWidth:e.naturalWidth||e.width,originalHeight:e.naturalHeight||e.height})},s.createObjectURL=function(e){return!!t&&t.createObjectURL(e)},s.revokeObjectURL=function(e){return!!t&&t.revokeObjectURL(e)},s.readFile=function(e,t,i){if(n.FileReader){var a=new FileReader;if(a.onload=a.onerror=t,a[i=i||"readAsDataURL"])return a[i](e),a}return!1},s.global=n,"function"==typeof define&&define.amd?define(function(){return s}):"object"==typeof module&&module.exports?module.exports=s:n.loadImage=s}("undefined"!=typeof window&&window||this),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):"object"==typeof module&&module.exports?e(require("./load-image")):e(window.loadImage)}(function(x){"use strict";var r=x.transform;x.createCanvas=function(e,t,i){if(i&&x.global.OffscreenCanvas)return new OffscreenCanvas(e,t);var a=document.createElement("canvas");return a.width=e,a.height=t,a},x.transform=function(e,t,i,a,n){r.call(x,x.scale(e,t,n),t,i,a,n)},x.transformCoordinates=function(){},x.getTransformedOptions=function(e,t){var i,a,n,r,o=t.aspectRatio;if(!o)return t;for(a in i={},t)Object.prototype.hasOwnProperty.call(t,a)&&(i[a]=t[a]);return i.crop=!0,o<(n=e.naturalWidth||e.width)/(r=e.naturalHeight||e.height)?(i.maxWidth=r*o,i.maxHeight=r):(i.maxWidth=n,i.maxHeight=n/o),i},x.drawImage=function(e,t,i,a,n,r,o,s,l){var c=t.getContext("2d");return!1===l.imageSmoothingEnabled?(c.msImageSmoothingEnabled=!1,c.imageSmoothingEnabled=!1):l.imageSmoothingQuality&&(c.imageSmoothingQuality=l.imageSmoothingQuality),c.drawImage(e,i,a,n,r,0,0,o,s),c},x.requiresCanvas=function(e){return e.canvas||e.crop||!!e.aspectRatio},x.scale=function(e,t,i){t=t||{},i=i||{};var a,n,r,o,s,l,c,f,u,d,g,m,h=e.getContext||x.requiresCanvas(t)&&!!x.global.HTMLCanvasElement,p=e.naturalWidth||e.width,A=e.naturalHeight||e.height,b=p,S=A;function y(){var e=Math.max((r||b)/b,(o||S)/S);1<e&&(b*=e,S*=e)}function v(){var e=Math.min((a||b)/b,(n||S)/S);e<1&&(b*=e,S*=e)}if(h&&(c=(t=x.getTransformedOptions(e,t,i)).left||0,f=t.top||0,t.sourceWidth?(s=t.sourceWidth,void 0!==t.right&&void 0===t.left&&(c=p-s-t.right)):s=p-c-(t.right||0),t.sourceHeight?(l=t.sourceHeight,void 0!==t.bottom&&void 0===t.top&&(f=A-l-t.bottom)):l=A-f-(t.bottom||0),b=s,S=l),a=t.maxWidth,n=t.maxHeight,r=t.minWidth,o=t.minHeight,h&&a&&n&&t.crop?(g=s/l-(b=a)/(S=n))<0?(l=n*s/a,void 0===t.top&&void 0===t.bottom&&(f=(A-l)/2)):0<g&&(s=a*l/n,void 0===t.left&&void 0===t.right&&(c=(p-s)/2)):((t.contain||t.cover)&&(r=a=a||r,o=n=n||o),t.cover?(v(),y()):(y(),v())),h){if(1<(u=t.pixelRatio)&&parseInt(e.style.width,10)!==p/u&&(b*=u,S*=u),x.orientationCropBug&&!e.getContext&&(c||f||s!==p||l!==A)&&(g=e,e=x.createCanvas(p,A,!0),x.drawImage(g,e,0,0,p,A,p,A,t)),0<(d=t.downsamplingRatio)&&d<1&&b<s&&S<l)for(;b<s*d;)m=x.createCanvas(s*d,l*d,!0),x.drawImage(e,m,c,f,s,l,m.width,m.height,t),f=c=0,s=m.width,l=m.height,e=m;return m=x.createCanvas(b,S),x.transformCoordinates(m,t,i),1<u&&(m.style.width=m.width/u+"px",m.style.height=m.height/u+"px"),x.drawImage(e,m,c,f,s,l,b,S,t).setTransform(1,0,0,1,0,0),m}return e.width=b,e.height=S,e}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):"object"==typeof module&&module.exports?e(require("./load-image")):e(window.loadImage)}(function(m){"use strict";m.blobSlice=m.global.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),m.bufferSlice=m.global.ArrayBuffer.prototype.slice||function(e,t){t=t||this.byteLength-e;var i=new Uint8Array(this,e,t),a=new Uint8Array(t);return a.set(i),a.buffer},m.metaDataParsers={jpeg:{65505:[],65517:[]}},m.parseMetaData=function(e,f,u,d){d=d||{};var g=this,t=(u=u||{}).maxMetaDataSize||262144;!!(m.global.DataView&&e&&12<=e.size&&"image/jpeg"===e.type&&m.blobSlice)&&m.readFile(m.blobSlice.call(e,0,t),function(e){if(e.target.error)return console.log(e.target.error),void f(d);var t,i,a,n,r=e.target.result,o=new DataView(r),s=2,l=o.byteLength-4,c=s;if(65496===o.getUint16(0)){for(;s<l&&(65504<=(t=o.getUint16(s))&&t<=65519||65534===t);){if(s+(i=o.getUint16(s+2)+2)>o.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if((a=m.metaDataParsers.jpeg[t])&&!u.disableMetaDataParsers)for(n=0;n<a.length;n+=1)a[n].call(g,o,s,i,d,u);c=s+=i}!u.disableImageHead&&6<c&&(d.imageHead=m.bufferSlice.call(r,0,c))}else console.log("Invalid JPEG file: Missing JPEG marker.");f(d)},"readAsArrayBuffer")||f(d)},m.replaceHead=function(t,i,a){m.parseMetaData(t,function(e){a(new Blob([i,m.blobSlice.call(t,e.imageHead.byteLength)],{type:"image/jpeg"}))},{maxMetaDataSize:256,disableMetaDataParsers:!0})};var r=m.transform;m.transform=function(t,i,a,n,e){m.requiresMetaData(i)?m.parseMetaData(n,function(e){r.call(m,t,i,a,n,e)},i,e):r.apply(m,arguments)}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):"object"==typeof module&&module.exports?e(require("./load-image")):e(window.loadImage)}(function(e){"use strict";"undefined"!=typeof fetch&&"undefined"!=typeof Request?e.fetchBlob=function(e,t,i){fetch(new Request(e,i)).then(function(e){return e.blob()}).then(t).catch(function(e){t(null,e)})}:"undefined"!=typeof XMLHttpRequest&&"undefined"!=typeof ProgressEvent&&(e.fetchBlob=function(e,t,i){i=i||{};var a=new XMLHttpRequest;a.open(i.method||"GET",e),i.headers&&Object.keys(i.headers).forEach(function(e){a.setRequestHeader(e,i.headers[e])}),a.withCredentials="include"===i.credentials,a.responseType="blob",a.onload=function(){t(a.response)},a.onerror=a.onabort=a.ontimeout=function(e){t(null,e)},a.send(i.body)})}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-scale","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-scale"),require("./load-image-meta")):e(window.loadImage)}(function(h){"use strict";var n=h.transform,t=h.requiresCanvas,i=h.requiresMetaData,f=h.transformCoordinates,p=h.getTransformedOptions;function a(e,t){var i=e&&e.orientation;return!0===i&&!h.orientation||1===i&&h.orientation||(!t||h.orientation)&&1<i&&i<9}function A(e,t){return e!==t&&(1===e&&1<t&&t<9||1<e&&e<9)}function b(e,t){if(1<t&&t<9)switch(e){case 2:case 4:return 4<t;case 5:case 7:return t%2==0;case 6:case 8:return 2===t||4===t||5===t||7===t}}!function(t){if(t.global.document){var i=document.createElement("img");i.onload=function(){if(t.orientation=2===i.width&&3===i.height,t.orientation){var e=t.createCanvas(1,1,!0).getContext("2d");e.drawImage(i,1,1,1,1,0,0,1,1),t.orientationCropBug="255,255,255,255"!==e.getImageData(0,0,1,1).data.toString()}},i.src="data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k="}}(h),h.requiresCanvas=function(e){return a(e)||t.call(h,e)},h.requiresMetaData=function(e){return a(e,!0)||i.call(h,e)},h.transform=function(e,t,r,i,a){n.call(h,e,t,function(e,t){if(t){var i=h.orientation&&t.exif&&t.exif.get("Orientation");if(4<i&&i<9){var a=t.originalWidth,n=t.originalHeight;t.originalWidth=n,t.originalHeight=a}}r(e,t)},i,a)},h.getTransformedOptions=function(e,t,i){var a=p.call(h,e,t),n=i.exif&&i.exif.get("Orientation"),r=a.orientation,o=h.orientation&&n;if(!0===r&&(r=n),!A(r,o))return a;var s=a.top,l=a.right,c=a.bottom,f=a.left,u={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&(u[d]=a[d]);if((4<(u.orientation=r)&&!(4<o)||r<5&&4<o)&&(u.maxWidth=a.maxHeight,u.maxHeight=a.maxWidth,u.minWidth=a.minHeight,u.minHeight=a.minWidth,u.sourceWidth=a.sourceHeight,u.sourceHeight=a.sourceWidth),1<o){switch(o){case 2:l=a.left,f=a.right;break;case 3:s=a.bottom,l=a.left,c=a.top,f=a.right;break;case 4:s=a.bottom,c=a.top;break;case 5:s=a.left,l=a.bottom,c=a.right,f=a.top;break;case 6:s=a.left,l=a.top,c=a.right,f=a.bottom;break;case 7:s=a.right,l=a.top,c=a.left,f=a.bottom;break;case 8:s=a.right,l=a.bottom,c=a.left,f=a.top}if(b(r,o)){var g=s,m=l;s=c,l=f,c=g,f=m}}switch(u.top=s,u.right=l,u.bottom=c,u.left=f,r){case 2:u.right=f,u.left=l;break;case 3:u.top=c,u.right=f,u.bottom=s,u.left=l;break;case 4:u.top=c,u.bottom=s;break;case 5:u.top=f,u.right=c,u.bottom=l,u.left=s;break;case 6:u.top=l,u.right=c,u.bottom=f,u.left=s;break;case 7:u.top=l,u.right=s,u.bottom=f,u.left=c;break;case 8:u.top=f,u.right=s,u.bottom=l,u.left=c}return u},h.transformCoordinates=function(e,t,i){f.call(h,e,t,i);var a=t.orientation,n=h.orientation&&i.exif&&i.exif.get("Orientation");if(A(a,n)){var r=e.getContext("2d"),o=e.width,s=e.height,l=o,c=s;switch((4<a&&!(4<n)||a<5&&4<n)&&(e.width=s,e.height=o),4<a&&(l=s,c=o),n){case 2:r.translate(l,0),r.scale(-1,1);break;case 3:r.translate(l,c),r.rotate(Math.PI);break;case 4:r.translate(0,c),r.scale(1,-1);break;case 5:r.rotate(-.5*Math.PI),r.scale(-1,1);break;case 6:r.rotate(-.5*Math.PI),r.translate(-l,0);break;case 7:r.rotate(-.5*Math.PI),r.translate(-l,c),r.scale(1,-1);break;case 8:r.rotate(.5*Math.PI),r.translate(0,-c)}switch(b(a,n)&&(r.translate(l,c),r.rotate(Math.PI)),a){case 2:r.translate(o,0),r.scale(-1,1);break;case 3:r.translate(o,s),r.rotate(Math.PI);break;case 4:r.translate(0,s),r.scale(1,-1);break;case 5:r.rotate(.5*Math.PI),r.scale(1,-1);break;case 6:r.rotate(.5*Math.PI),r.translate(0,-s);break;case 7:r.rotate(.5*Math.PI),r.translate(o,-s),r.scale(-1,1);break;case 8:r.rotate(-.5*Math.PI),r.translate(-o,0)}}}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(r){"use strict";function h(e){e&&(Object.defineProperty(this,"map",{value:this.ifds[e].map}),Object.defineProperty(this,"tags",{value:this.tags&&this.tags[e]||{}}))}h.prototype.ifds={ifd1:{name:"Thumbnail",map:h.prototype.map={Orientation:274,Thumbnail:"ifd1",Blob:513,Exif:34665,GPSInfo:34853,Interoperability:40965}},34665:{name:"Exif",map:{}},34853:{name:"GPSInfo",map:{}},40965:{name:"Interoperability",map:{}}},h.prototype.get=function(e){return this[e]||this[this.map[e]]};var g={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,i){return e.getUint16(t,i)},size:2},4:{getValue:function(e,t,i){return e.getUint32(t,i)},size:4},5:{getValue:function(e,t,i){return e.getUint32(t,i)/e.getUint32(t+4,i)},size:8},9:{getValue:function(e,t,i){return e.getInt32(t,i)},size:4},10:{getValue:function(e,t,i){return e.getInt32(t,i)/e.getInt32(t+4,i)},size:8}};function m(e,t,i,a,n,r){var o,s,l,c,f,u,d=g[a];if(d){if(!((s=4<(o=d.size*n)?t+e.getUint32(i+8,r):i+8)+o>e.byteLength)){if(1===n)return d.getValue(e,s,r);for(l=[],c=0;c<n;c+=1)l[c]=d.getValue(e,s+c*d.size,r);if(d.ascii){for(f="",c=0;c<l.length&&"\0"!==(u=l[c]);c+=1)f+=u;return f}return l}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")}function p(e,t,i){return(!e||e[i])&&(!t||!0!==t[i])}function A(e,t,i,a,n,r,o,s){var l,c,f,u,d,g;if(i+6>e.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(!((c=i+2+12*(l=e.getUint16(i,a)))+4>e.byteLength)){for(f=0;f<l;f+=1)u=i+2+12*f,p(o,s,d=e.getUint16(u,a))&&(g=m(e,t,u,e.getUint16(u+2,a),e.getUint32(u+4,a),a),n[d]=g,r&&(r[d]=u));return e.getUint32(c,a)}console.log("Invalid Exif data: Invalid directory size.")}}g[7]=g[1],r.parseExifData=function(c,e,t,f,i){if(!i.disableExif){var u,a,n,d=i.includeExifTags,g=i.excludeExifTags||{34665:{37500:!0}},m=e+10;if(1165519206===c.getUint32(e+4))if(m+8>c.byteLength)console.log("Invalid Exif data: Invalid segment size.");else if(0===c.getUint16(e+8)){switch(c.getUint16(m)){case 18761:u=!0;break;case 19789:u=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}42===c.getUint16(m+2,u)?(a=c.getUint32(m+4,u),f.exif=new h,i.disableExifOffsets||(f.exifOffsets=new h,f.exifTiffOffset=m,f.exifLittleEndian=u),(a=A(c,m,m+a,u,f.exif,f.exifOffsets,d,g))&&p(d,g,"ifd1")&&(f.exif.ifd1=a,f.exifOffsets&&(f.exifOffsets.ifd1=m+a)),Object.keys(f.exif.ifds).forEach(function(e){var t,i,a,n,r,o,s,l;i=e,a=c,n=m,r=u,o=d,s=g,(l=(t=f).exif[i])&&(t.exif[i]=new h(i),t.exifOffsets&&(t.exifOffsets[i]=new h(i)),A(a,n,n+l,r,t.exif[i],t.exifOffsets&&t.exifOffsets[i],o&&o[i],s&&s[i]))}),(n=f.exif.ifd1)&&n[513]&&n[514]&&(n[513]=function(e,t,i){if(i&&!(t+i>e.byteLength))return new Blob([r.bufferSlice.call(e.buffer,t,t+i)],{type:"image/jpeg"});console.log("Invalid Exif data: Invalid thumbnail data.")}(c,m+n[513],n[514]))):console.log("Invalid Exif data: Missing TIFF marker.")}else console.log("Invalid Exif data: Missing byte alignment offset.")}},r.metaDataParsers.jpeg[65505].push(r.parseExifData),r.exifWriters={274:function(e,t,i){return new DataView(e,t.exifOffsets[274]+8,2).setUint16(0,i,t.exifLittleEndian),e}},r.writeExifData=function(e,t,i,a){r.exifWriters[t.exif.map[i]](e,t,a)},r.ExifMap=h}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-exif")):e(window.loadImage)}(function(e){"use strict";var n=e.ExifMap.prototype;n.tags={256:"ImageWidth",257:"ImageHeight",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",34665:{36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",36880:"OffsetTime",36881:"OffsetTimeOriginal",36882:"OffsetTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber"},34853:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},40965:{1:"InteroperabilityIndex"}},n.tags.ifd1=n.tags,n.stringValues={ExposureProgram:{0:"Undefined",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:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",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"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},n.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":if(!t)return;return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":if(!t)return;return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":if(!t)return;return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},n.getAll=function(){var e,t,i,a={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&((t=this[e])&&t.getAll?a[this.ifds[e].name]=t.getAll():(i=this.tags[e])&&(a[i]=this.getText(i)));return a},n.getName=function(e){var t=this.tags[e];return"object"==typeof t?this.ifds[e].name:t},function(){var e,t,i,a=n.tags;for(e in a)if(Object.prototype.hasOwnProperty.call(a,e))if(t=n.ifds[e])for(e in i=a[e])Object.prototype.hasOwnProperty.call(i,e)&&(t.map[i[e]]=Number(e));else n.map[a[e]]=Number(e)}()}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(e){"use strict";function g(){}function m(e,t,i,a,n){return"binary"===t.types[e]?new Blob([i.buffer.slice(a,a+n)]):"Uint16"===t.types[e]?i.getUint16(a):function(e,t,i){for(var a="",n=t+i,r=t;r<n;r+=1)a+=String.fromCharCode(e.getUint8(r));return a}(i,a,n)}function h(e,t,i,a,n,r){for(var o,s,l,c,f,u=t+i,d=t;d<u;)28===e.getUint8(d)&&2===e.getUint8(d+1)&&(l=e.getUint8(d+2),n&&!n[l]||r&&r[l]||(s=e.getInt16(d+3),o=m(l,a.iptc,e,d+5,s),a.iptc[l]=(c=a.iptc[l],f=o,void 0===c?f:c instanceof Array?(c.push(f),c):[c,f]),a.iptcOffsets&&(a.iptcOffsets[l]=d))),d+=1}g.prototype.map={ObjectName:5},g.prototype.types={0:"Uint16",200:"Uint16",201:"Uint16",202:"binary"},g.prototype.get=function(e){return this[e]||this[this.map[e]]},e.parseIptcData=function(e,t,i,a,n){if(!n.disableIptc)for(var r,o,s,l,c=t+i;t+8<c;){if(l=t,943868237===(s=e).getUint32(l)&&1028===s.getUint16(l+4)){var f=(r=t,o=void 0,(o=e.getUint8(r+7))%2!=0&&(o+=1),0===o&&(o=4),o),u=t+8+f;if(c<u){console.log("Invalid IPTC data: Invalid segment offset.");break}var d=e.getUint16(t+6+f);if(c<t+d){console.log("Invalid IPTC data: Invalid segment size.");break}return a.iptc=new g,n.disableIptcOffsets||(a.iptcOffsets=new g),void h(e,u,d,a,n.includeIptcTags,n.excludeIptcTags||{202:!0})}t+=1}},e.metaDataParsers.jpeg[65517].push(e.parseIptcData),e.IptcMap=g}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-iptc"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-iptc")):e(window.loadImage)}(function(e){"use strict";var a=e.IptcMap.prototype;a.tags={0:"ApplicationRecordVersion",3:"ObjectTypeReference",4:"ObjectAttributeReference",5:"ObjectName",7:"EditStatus",8:"EditorialUpdate",10:"Urgency",12:"SubjectReference",15:"Category",20:"SupplementalCategories",22:"FixtureIdentifier",25:"Keywords",26:"ContentLocationCode",27:"ContentLocationName",30:"ReleaseDate",35:"ReleaseTime",37:"ExpirationDate",38:"ExpirationTime",40:"SpecialInstructions",42:"ActionAdvised",45:"ReferenceService",47:"ReferenceDate",50:"ReferenceNumber",55:"DateCreated",60:"TimeCreated",62:"DigitalCreationDate",63:"DigitalCreationTime",65:"OriginatingProgram",70:"ProgramVersion",75:"ObjectCycle",80:"Byline",85:"BylineTitle",90:"City",92:"Sublocation",95:"State",100:"CountryCode",101:"Country",103:"OriginalTransmissionReference",105:"Headline",110:"Credit",115:"Source",116:"CopyrightNotice",118:"Contact",120:"Caption",121:"LocalCaption",122:"Writer",125:"RasterizedCaption",130:"ImageType",131:"ImageOrientation",135:"LanguageIdentifier",150:"AudioType",151:"AudioSamplingRate",152:"AudioSamplingResolution",153:"AudioDuration",154:"AudioOutcue",184:"JobID",185:"MasterDocumentID",186:"ShortDocumentID",187:"UniqueDocumentID",188:"OwnerID",200:"ObjectPreviewFileFormat",201:"ObjectPreviewFileVersion",202:"ObjectPreviewData",221:"Prefs",225:"ClassifyState",228:"SimilarityIndex",230:"DocumentNotes",231:"DocumentHistory",232:"ExifCameraInfo",255:"CatalogSets"},a.stringValues={10:{0:"0 (reserved)",1:"1 (most urgent)",2:"2",3:"3",4:"4",5:"5 (normal urgency)",6:"6",7:"7",8:"8 (least urgent)",9:"9 (user-defined priority)"},75:{a:"Morning",b:"Both Morning and Evening",p:"Evening"},131:{L:"Landscape",P:"Portrait",S:"Square"}},a.getText=function(e){var t=this.get(e),i=this.map[e],a=this.stringValues[i];return a?a[t]:String(t)},a.getAll=function(){var e,t,i={};for(e in this)Object.prototype.hasOwnProperty.call(this,e)&&(t=this.tags[e])&&(i[t]=this.getText(t));return i},a.getName=function(e){return this.tags[e]},function(){var e,t=a.tags,i=a.map||{};for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(i[t[e]]=Number(e))}()});
//# sourceMappingURL=load-image.all.min.js.map
{
"name": "blueimp-load-image",
"version": "4.0.1",
"version": "5.0.0",
"title": "JavaScript Load Image",

@@ -5,0 +5,0 @@ "description": "JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled and/or cropped HTML img or canvas element. It also provides methods to parse image meta data to extract IPTC and Exif tags as well as embedded thumbnail images and to restore the complete image header after resizing.",

@@ -67,2 +67,8 @@ # JavaScript Load Image

Install via [NPM](https://www.npmjs.com/):
```sh
npm install blueimp-load-image
```
Include the (combined and minified) JavaScript Load Image script in your HTML

@@ -531,7 +537,13 @@ markup:

function (img, data) {
var thumbBlob = data.exif && data.exif.get('Thumbnail')
if (thumbBlob) {
loadImage(thumbBlob, function (thumbImage) {
document.body.appendChild(thumbImage)
})
var exif = data.exif
var thumbnail = exif && exif.get('Thumbnail')
var blob = thumbnail.get('Blob')
if (blob) {
loadImage(
blob,
function (thumbImage) {
document.body.appendChild(thumbImage)
},
{ orientation: exif.get('Orientation') }
)
}

@@ -609,3 +621,2 @@ },

- `disableExif`: Disables Exif parsing when `true`.
- `disableExifThumbnail`: Disables parsing of Thumbnail data when `true`.
- `disableExifOffsets`: Disables storing Exif tag offsets when `true`.

@@ -628,4 +639,6 @@ - `includeExifTags`: A map of Exif tags to include for parsing (includes all but

0x0112: true, // Orientation
0x0201: true, // JPEGInterchangeFormat (Thumbnail data offset)
0x0202: true, // JPEGInterchangeFormatLength (Thumbnail data length)
ifd1: {
0x0201: true, // JPEGInterchangeFormat (Thumbnail data offset)
0x0202: true // JPEGInterchangeFormatLength (Thumbnail data length)
},
0x8769: {

@@ -632,0 +645,0 @@ // ExifIFDPointer

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc