{"_id":"@atombrenner/exif-reader-jpeg","_rev":"4-163128f4083f1953b06f8c34999d1bd2","name":"@atombrenner/exif-reader-jpeg","dist-tags":{"latest":"2.0.1"},"versions":{"0.1.0":{"name":"@atombrenner/exif-reader-jpeg","version":"0.1.0","keywords":["exif","image","photo","jpeg","metadata","node"],"author":{"name":"Christian Rodemeyer"},"license":"MIT","_id":"@atombrenner/exif-reader-jpeg@0.1.0","maintainers":[{"name":"atombrenner","email":"atombrenner@gmail.com"}],"homepage":"https://github.com/atombrenner/exif-reader-jpeg#readme","bugs":{"url":"https://github.com/atombrenner/exif-reader-jpeg/issues"},"dist":{"shasum":"ec12635d308d7cd3bb48924008ef6c8d44abb9ee","tarball":"https://registry.npmjs.org/@atombrenner/exif-reader-jpeg/-/exif-reader-jpeg-0.1.0.tgz","fileCount":5,"integrity":"sha512-Ujt7QhqgRa1WPlXHtm7YDKQMkeTpb4a+0WYb1VLz9Z2Jr2ullH12IkRrcKapie+IuEUuMlnbG20xkqgeU99bYA==","signatures":[{"sig":"MEQCIDATo6bVEoj2OJcFqMr2zoXYhCdbF1syIdFq52cWXT2ZAiAUU2q5eLGLXl0wsX4nPlU4PW79rsxsKVNIdsjLiLR1Cw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5012},"main":"index.js","types":"index.d.ts","engines":{"npm":">=8","node":">=16"},"gitHead":"757f3b988e7dddc8fef6c8f3466901b2b49d240c","scripts":{"test":"node --test && npx tsd"},"_npmUser":{"name":"atombrenner","email":"atombrenner@gmail.com"},"repository":{"url":"git+https://github.com/atombrenner/exif-reader-jpeg.git","type":"git"},"_npmVersion":"9.6.7","description":"read and parse exif metadata from jpeg files","directories":{},"_nodeVersion":"20.2.0","dependencies":{"exif-reader":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.1","prettier":"^2.8.8","typescript":"^5.0.4","@types/node":">=16.x"},"_npmOperationalInternal":{"tmp":"tmp/exif-reader-jpeg_0.1.0_1685101305098_0.749464640439764","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@atombrenner/exif-reader-jpeg","version":"1.0.0","keywords":["exif","image","photo","jpeg","metadata","node"],"author":{"name":"Christian Rodemeyer"},"license":"MIT","_id":"@atombrenner/exif-reader-jpeg@1.0.0","maintainers":[{"name":"atombrenner","email":"atombrenner@gmail.com"}],"homepage":"https://github.com/atombrenner/exif-reader-jpeg#readme","bugs":{"url":"https://github.com/atombrenner/exif-reader-jpeg/issues"},"dist":{"shasum":"e8513481265c929de21cbe43d2209d3bd9eaa71d","tarball":"https://registry.npmjs.org/@atombrenner/exif-reader-jpeg/-/exif-reader-jpeg-1.0.0.tgz","fileCount":5,"integrity":"sha512-VTKF5K7dz3mKB87sRFclmO1EceADEzdaa0NmOfxEFjbbkaX1PMRkVEcHdJQ7F5eqrjfD4egXG660kTTq7HUYaw==","signatures":[{"sig":"MEUCIG2jPs6/kJGa1pXAkh3JlTLAxMG76Hvs+DESf5vtsNSxAiEAmVnS1LDfUQeZv1/uIkGPZc9SSA3KVpMu2x7ayBHUZho=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7179},"main":"index.js","types":"index.d.ts","engines":{"npm":">=8","node":">=16"},"gitHead":"019def22e7671f2ecc648e2d173a4e8bf1f7fe91","scripts":{"test":"node --test && npx tsd"},"_npmUser":{"name":"atombrenner","email":"atombrenner@gmail.com"},"repository":{"url":"git+https://github.com/atombrenner/exif-reader-jpeg.git","type":"git"},"_npmVersion":"9.6.7","description":"read and parse exif metadata from jpeg files","directories":{},"_nodeVersion":"20.2.0","dependencies":{"exif-reader":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.1","prettier":"^2.8.8","typescript":"^5.0.4","@types/node":">=16.x"},"_npmOperationalInternal":{"tmp":"tmp/exif-reader-jpeg_1.0.0_1685200996382_0.8857950557702252","host":"s3://npm-registry-packages"}},"2.0.0-rc.1":{"name":"@atombrenner/exif-reader-jpeg","version":"2.0.0-rc.1","keywords":["exif","image","photo","jpeg","metadata","node"],"author":{"name":"Christian Rodemeyer"},"license":"MIT","_id":"@atombrenner/exif-reader-jpeg@2.0.0-rc.1","maintainers":[{"name":"atombrenner","email":"atombrenner@gmail.com"}],"homepage":"https://github.com/atombrenner/exif-reader-jpeg#readme","bugs":{"url":"https://github.com/atombrenner/exif-reader-jpeg/issues"},"dist":{"shasum":"7cd63680751375429d66a631c5f895198953483d","tarball":"https://registry.npmjs.org/@atombrenner/exif-reader-jpeg/-/exif-reader-jpeg-2.0.0-rc.1.tgz","fileCount":5,"integrity":"sha512-zdy6Q3nLFYpZxReX7N3uR9oOjvRY0p6jA3f4mGJHm66JTwxAwSjCdqhdgAvojqlDwKkGNhzuvryonkE6Sz4Y3w==","signatures":[{"sig":"MEUCIQCAQQELcjeQDCAbBPP2VMa4LTfLGWqPkc80+YgLuJmNBwIgFau8z+4RDj+GHF/ukhfUrf91/b/1b/ITHUS34aOl42g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8711},"main":"index.js","types":"index.d.ts","engines":{"npm":">=8","node":">=16"},"gitHead":"309153d7fdc5261923d02caddbd2e48d0aabd4f3","scripts":{"test":"node --test && npx tsd"},"_npmUser":{"name":"atombrenner","email":"atombrenner@gmail.com"},"repository":{"url":"git+https://github.com/atombrenner/exif-reader-jpeg.git","type":"git"},"_npmVersion":"9.6.7","description":"read and parse exif metadata from jpeg files","directories":{},"_nodeVersion":"20.2.0","dependencies":{"@atombrenner/exif-reader":"2.0.0-rc.1"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.28.1","prettier":"^2.8.8","typescript":"^5.0.4","@types/node":">=16.x"},"_npmOperationalInternal":{"tmp":"tmp/exif-reader-jpeg_2.0.0-rc.1_1685216533324_0.6278461409247356","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@atombrenner/exif-reader-jpeg","version":"2.0.0","keywords":["exif","image","photo","jpeg","metadata","node"],"author":{"name":"Christian Rodemeyer"},"license":"MIT","_id":"@atombrenner/exif-reader-jpeg@2.0.0","maintainers":[{"name":"atombrenner","email":"atombrenner@gmail.com"}],"homepage":"https://github.com/atombrenner/exif-reader-jpeg#readme","bugs":{"url":"https://github.com/atombrenner/exif-reader-jpeg/issues"},"dist":{"shasum":"3878ee5cad0c2e3f6925bdaac4dc4c693b031d5e","tarball":"https://registry.npmjs.org/@atombrenner/exif-reader-jpeg/-/exif-reader-jpeg-2.0.0.tgz","fileCount":5,"integrity":"sha512-ChmbfGTkPmH+BKmnEZ/gVzSqLdpzVPGc3bOur1EPF9u+zB0bvCe0jx0dFZC8Q332fm3KFZ1uSHlbLXxXliXthA==","signatures":[{"sig":"MEUCIQDa72rRb0DJf43yooWomCo/qwfGZPRFExL8pxbIrjYv3QIgMNWE3Na/ggFytgKa7mDkfz09Efmo/YmNQfOpOmEhWqk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8662},"main":"index.js","types":"index.d.ts","engines":{"npm":">=8","node":">=16"},"gitHead":"c5284bf0a853b03f2f2c8f9c83e266c886371e8a","scripts":{"test":"node --test && npx tsd"},"_npmUser":{"name":"atombrenner","email":"atombrenner@gmail.com"},"repository":{"url":"git+https://github.com/atombrenner/exif-reader-jpeg.git","type":"git"},"_npmVersion":"9.7.2","description":"read and parse exif metadata from jpeg files","directories":{},"_nodeVersion":"20.4.0","dependencies":{"exif-reader":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.29.0","prettier":"^3.0.3","typescript":"^5.2.2","@types/node":">=16.x"},"_npmOperationalInternal":{"tmp":"tmp/exif-reader-jpeg_2.0.0_1696083763306_0.7974539050249771","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@atombrenner/exif-reader-jpeg","version":"2.0.1","description":"read and parse exif metadata from jpeg files","main":"index.js","types":"index.d.ts","engines":{"node":">=16","npm":">=8"},"scripts":{"test":"node --test && npx tsd"},"repository":{"type":"git","url":"git+https://github.com/atombrenner/exif-reader-jpeg.git"},"keywords":["exif","image","photo","jpeg","metadata","node"],"author":{"name":"Christian Rodemeyer"},"license":"MIT","bugs":{"url":"https://github.com/atombrenner/exif-reader-jpeg/issues"},"homepage":"https://github.com/atombrenner/exif-reader-jpeg#readme","devDependencies":{"@types/node":">=16.x","prettier":"^3.0.3","tsd":"^0.31.2","typescript":"^5.2.2"},"dependencies":{"exif-reader":"^2.0.0"},"_id":"@atombrenner/exif-reader-jpeg@2.0.1","gitHead":"8cbcc6067114707a4785f85e23dedb00557925c4","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-DED64MLpmSyuR38Ev1HHH/3FnHJpdHPe42zGzoCrkKY1MOQy3Y4D6rcPgqdnzEdPNL+8wAbU67voF723rS7utw==","shasum":"e088c9e477ad5c067a1c8d75a1014b5280cbc2e1","tarball":"https://registry.npmjs.org/@atombrenner/exif-reader-jpeg/-/exif-reader-jpeg-2.0.1.tgz","fileCount":5,"unpackedSize":8712,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHV8S9Qky+1JEb1f8SrUpa30Y2A+95ombuTYmK14NyC/AiEAoEV5fnJ/lkIiYwpn+sOU0NFIpxirywRS101315QMtT4="}]},"_npmUser":{"name":"atombrenner","email":"atombrenner@gmail.com"},"directories":{},"maintainers":[{"name":"atombrenner","email":"atombrenner@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exif-reader-jpeg_2.0.1_1733058354795_0.2767907721183509"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-26T11:41:45.031Z","modified":"2024-12-01T13:05:55.133Z","0.1.0":"2023-05-26T11:41:45.332Z","1.0.0":"2023-05-27T15:23:16.600Z","2.0.0-rc.1":"2023-05-27T19:42:13.497Z","2.0.0":"2023-09-30T14:22:43.599Z","2.0.1":"2024-12-01T13:05:54.973Z"},"bugs":{"url":"https://github.com/atombrenner/exif-reader-jpeg/issues"},"author":{"name":"Christian Rodemeyer"},"license":"MIT","homepage":"https://github.com/atombrenner/exif-reader-jpeg#readme","keywords":["exif","image","photo","jpeg","metadata","node"],"repository":{"type":"git","url":"git+https://github.com/atombrenner/exif-reader-jpeg.git"},"description":"read and parse exif metadata from jpeg files","maintainers":[{"name":"atombrenner","email":"atombrenner@gmail.com"}],"readme":"# exif-reader-jpeg\n\nRead Exif metadata from a jpeg file.\n\n## Usage\n\n`npm i @atombrenner/exif-reader-jpeg`\n\n```typescript\nimport { readExifData } from '@atombrenner/exif-reader-jpeg'\n\nconst exif = await readExifData('some.jpg') // path or stream\n\nconsole.dir(exif)\n```\n\nExample Output:\n\n```\n{\n  bigEndian: false,\n  Image: {\n    ImageWidth: 2448,\n    ImageLength: 3264,\n    Make: 'Some Make',\n    Model: 'Some Model',\n    Orientation: 1,\n    XResolution: 72,\n    YResolution: 72,\n    ResolutionUnit: 2,\n    Software: 'HDR+ 1.0.520435816zd',\n    DateTime: 2023-05-20T17:02:00.000Z,\n    YCbCrPositioning: 1,\n  },\n  Thumbnail: {\n    ImageWidth: 219,\n    ImageLength: 292,\n    Compression: 6,\n    Orientation: 1,\n    XResolution: 72,\n    YResolution: 72,\n    ResolutionUnit: 2,\n  },\n  Photo: {\n    ExposureTime: 0.016679,\n    FNumber: 2,\n    ExposureProgram: 2,\n    ISOSpeedRatings: 129,\n    ExifVersion: Buffer(4) [Uint8Array] [ 48, 50, 51, 50 ],\n    DateTimeOriginal: 2023-05-20T17:02:00.000Z,\n    DateTimeDigitized: 2023-05-20T17:02:00.000Z,\n    OffsetTime: '+02:00',\n    OffsetTimeOriginal: '+02:00',\n    OffsetTimeDigitized: '+02:00',\n    ShutterSpeedValue: 5.91,\n    ApertureValue: 2,\n    BrightnessValue: 2.54,\n    ExposureBiasValue: 0,\n    MaxApertureValue: 2,\n    SubjectDistance: 0.35,\n    MeteringMode: 2,\n    Flash: 16,\n    FocalLength: 2.57,\n    SubSecTime: '811',\n    SubSecTimeOriginal: '811',\n    SubSecTimeDigitized: '811',\n    FlashpixVersion: Buffer(4) [Uint8Array] [ 48, 49, 48, 48 ],\n    ColorSpace: 1,\n    PixelXDimension: 2448,\n    PixelYDimension: 3264,\n    InteroperabilityTag: 958,\n    SensingMethod: 2,\n    CustomRendered: 1,\n    ExposureMode: 0,\n    WhiteBalance: 0,\n    DigitalZoomRatio: 1.4,\n    FocalLengthIn35mmFilm: 24,\n    SceneCaptureType: 0,\n    Contrast: 0,\n    Saturation: 0,\n    Sharpness: 0,\n    SubjectDistanceRange: 1,\n    LensMake: 'Some Lens Make',\n    LensModel: 'Some front camera 2.57mm f/2.0',\n    CompositeImage: 3\n  },\n  GPSInfo: {\n    GPSLatitudeRef: 'N',\n    GPSLatitude: [ 49, 1, 3.12 ],\n    GPSLongitudeRef: 'E',\n    GPSLongitude: [ 11, 1, 4.56 ],\n    GPSAltitudeRef: 0,\n    GPSAltitude: 296.1,\n    GPSTimeStamp: [ 15, 1, 48 ],\n    GPSImgDirectionRef: 'M',\n    GPSImgDirection: 258,\n    GPSDateStamp: '2023:05:20'\n  }\n}\n```\n\n## Implementation Details\n\nThis is a companion to the [exif-reader package](https://www.npmjs.com/package/exif-reader).\nIt parses a `Buffer` with raw Exif data and returns an object with metadata.\nYou need to extract the raw metadata from a file on your own,\ne.g. with [sharp](https://www.npmjs.com/package/sharp)'s metadata function.\nThis package reads and parses the Exif data from a jpeg file in one step.\n\n`readExifData(path: string): Promise<Exif>` returns the parsed Exif metadata by reading a file.\n\n`readExifData(stream: NodeJS.ReadableStream): Promise<Exif>` reads the parsed Exif metadata from a stream.\nWarning: this performs 4 times slower than the file version. We need to read the entire stream\ninto memory before we can search for the metadata, while the file access version can skip\nreading data and will only read metadata bytes.\n","readmeFilename":"README.md"}