gomfunkel / node-exif

A node.js library to extract Exif metadata from images.
MIT License
581 stars 104 forks source link

A cli version? #41

Closed kud closed 8 years ago

RodrigoEspinosa commented 8 years ago

A work in progress yet functional cli version: https://github.com/RodrigoEspinosa/exif-cli

Install: npm install -g exif-cli Execute: exif PICTURE-PATH

Hope it helps!

kud commented 8 years ago
~/P/_/play-tv ❯❯❯ exif app/assets/static/src/images/premium/bg-ginx-tv.jpg
image
  ExifOffset: 26

exif
  ColorSpace: 1
  ExifImageWidth: 824
  ExifImageHeight: 714

~/P/_/play-tv ❯❯❯ exiftool app/assets/static/src/images/premium/bg-ginx-tv.jpg
ExifTool Version Number         : 10.01
File Name                       : bg-ginx-tv.jpg
Directory                       : app/assets/static/src/images/premium
File Size                       : 362 kB
File Modification Date/Time     : 2015:09:21 12:33:32+02:00
File Access Date/Time           : 2015:11:17 15:30:10+01:00
File Inode Change Date/Time     : 2015:09:21 12:33:32+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Profile CMM Type                : Lino
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
Profile Connection Space        : XYZ
Profile Date Time               : 1998:02:09 06:49:00
Profile File Signature          : acsp
Primary Platform                : Microsoft Corporation
CMM Flags                       : Not Embedded, Independent
Device Manufacturer             : IEC
Device Model                    : sRGB
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Creator                 : HP
Profile ID                      : 0
Profile Copyright               : Copyright (c) 1998 Hewlett-Packard Company
Profile Description             : sRGB IEC61966-2.1
Media White Point               : 0.95045 1 1.08905
Media Black Point               : 0 0 0
Red Matrix Column               : 0.43607 0.22249 0.01392
Green Matrix Column             : 0.38515 0.71687 0.09708
Blue Matrix Column              : 0.14307 0.06061 0.7141
Device Mfg Desc                 : IEC http://www.iec.ch
Device Model Desc               : IEC 61966-2.1 Default RGB colour space - sRGB
Viewing Cond Desc               : Reference Viewing Condition in IEC61966-2.1
Viewing Cond Illuminant         : 19.6445 20.3718 16.8089
Viewing Cond Surround           : 3.92889 4.07439 3.36179
Viewing Cond Illuminant Type    : D50
Luminance                       : 76.03647 80 87.12462
Measurement Observer            : CIE 1931
Measurement Backing             : 0 0 0
Measurement Geometry            : Unknown
Measurement Flare               : 0.999%
Measurement Illuminant          : D65
Technology                      : Cathode Ray Tube Display
Red Tone Reproduction Curve     : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve   : (Binary data 2060 bytes, use -b option to extract)
Blue Tone Reproduction Curve    : (Binary data 2060 bytes, use -b option to extract)
Exif Byte Order                 : Big-endian (Motorola, MM)
Color Space                     : sRGB
Exif Image Width                : 824
Exif Image Height               : 714
Image Width                     : 824
Image Height                    : 714
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 824x714
Megapixels                      : 0.588

It's cool but needs more information.

RodrigoEspinosa commented 8 years ago

It should be parsing the same information from node-exif but I'll take a look ;)

kud commented 8 years ago

Haha ;) okay.

oeuillot commented 8 years ago

Hello, We can integrate your cli command in the project. The package.json has a "bin" property to do that !

RodrigoEspinosa commented 8 years ago

@oeuillot Sounds good to me!

oeuillot commented 8 years ago

Ok I can integrate (copy) your code directly ?

RodrigoEspinosa commented 8 years ago

Sure you can :smiley: !

But... Maybe there is a better way to keep things synchronised. Like add it to the dependencies (haven't tried this but circular dependencies shouldn't be an issue anymore) or as a git submodule.

I'm fine by copying. Just wanted to mentioned another idea.

oeuillot commented 8 years ago

CLI has too many dependencies: i am worry about adding "commander" as dependency. I propose to continue to distinguish the lib and the cli.

RodrigoEspinosa commented 8 years ago

I think that's a good call :D

Libraries like commander or chalk have purpose on command line interfaces or related subjects. Given that node-exif works as an API I wouldn't see the point in adding them neither.

Idea: What if you point out the command line interface on the README for people who would like to try it and close this issue?

oeuillot commented 8 years ago

Good idea, I will add a link to the README !