Last active
September 12, 2017 09:56
-
-
Save idiotandrobot/5611e6c60c1bca9dc0c54fd3c3f19862 to your computer and use it in GitHub Desktop.
Enumerate all properties for jpegs in the current folder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $propertyname = @{ | |
| 0x013B= "PropertyTagArtist"; | |
| 0x0102= "PropertyTagBitsPerSample"; | |
| 0x0109= "PropertyTagCellHeight"; | |
| 0x0108= "PropertyTagCellWidth"; | |
| 0x5091= "PropertyTagChrominanceTable"; | |
| 0x0140= "PropertyTagColorMap"; | |
| 0x501A= "PropertyTagColorTransferFunction"; | |
| 0x0103= "PropertyTagCompression"; | |
| 0x8298= "PropertyTagCopyright"; | |
| 0x0132= "PropertyTagDateTime"; | |
| 0x010D= "PropertyTagDocumentName"; | |
| 0x0150= "PropertyTagDotRange"; | |
| 0x010F= "PropertyTagEquipMake"; | |
| 0x0110= "PropertyTagEquipModel"; | |
| 0x9202= "PropertyTagExifAperture"; | |
| 0x9203= "PropertyTagExifBrightness"; | |
| 0xA302= "PropertyTagExifCfaPattern"; | |
| 0xA001= "PropertyTagExifColorSpace"; | |
| 0x9102= "PropertyTagExifCompBPP"; | |
| 0x9101= "PropertyTagExifCompConfig"; | |
| 0x9004= "PropertyTagExifDTDigitized"; | |
| 0x9292= "PropertyTagExifDTDigSS"; | |
| 0x9003= "PropertyTagExifDTOrig"; | |
| 0x9291= "PropertyTagExifDTOrigSS"; | |
| 0x9290= "PropertyTagExifDTSubsec"; | |
| 0x9204= "PropertyTagExifExposureBias"; | |
| 0xA215= "PropertyTagExifExposureIndex"; | |
| 0x8822= "PropertyTagExifExposureProg"; | |
| 0x829A= "PropertyTagExifExposureTime"; | |
| 0xA300= "PropertyTagExifFileSource"; | |
| 0x9209= "PropertyTagExifFlash"; | |
| 0xA20B= "PropertyTagExifFlashEnergy"; | |
| 0x829D= "PropertyTagExifFNumber"; | |
| 0x920A= "PropertyTagExifFocalLength"; | |
| 0xA210= "PropertyTagExifFocalResUnit"; | |
| 0xA20E= "PropertyTagExifFocalXRes"; | |
| 0xA20F= "PropertyTagExifFocalYRes"; | |
| 0xA000= "PropertyTagExifFPXVer"; | |
| 0x8769= "PropertyTagExifIFD"; | |
| 0xA005= "PropertyTagExifInterop"; | |
| 0x8827= "PropertyTagExifISOSpeed"; | |
| 0x9208= "PropertyTagExifLightSource"; | |
| 0x927C= "PropertyTagExifMakerNote"; | |
| 0x9205= "PropertyTagExifMaxAperture"; | |
| 0x9207= "PropertyTagExifMeteringMode"; | |
| 0x8828= "PropertyTagExifOECF"; | |
| 0xA002= "PropertyTagExifPixXDim"; | |
| 0xA003= "PropertyTagExifPixYDim"; | |
| 0xA004= "PropertyTagExifRelatedWav"; | |
| 0xA301= "PropertyTagExifSceneType"; | |
| 0xA217= "PropertyTagExifSensingMethod"; | |
| 0x9201= "PropertyTagExifShutterSpeed"; | |
| 0xA20C= "PropertyTagExifSpatialFR"; | |
| 0x8824= "PropertyTagExifSpectralSense"; | |
| 0x9206= "PropertyTagExifSubjectDist"; | |
| 0xA214= "PropertyTagExifSubjectLoc"; | |
| 0x9286= "PropertyTagExifUserComment"; | |
| 0x9000= "PropertyTagExifVer"; | |
| 0x0152= "PropertyTagExtraSamples"; | |
| 0x010A= "PropertyTagFillOrder"; | |
| 0x5100= "PropertyTagFrameDelay"; | |
| 0x0121= "PropertyTagFreeByteCounts"; | |
| 0x0120= "PropertyTagFreeOffset"; | |
| 0x0301= "PropertyTagGamma"; | |
| 0x5102= "PropertyTagGlobalPalette"; | |
| 0x0006= "PropertyTagGpsAltitude"; | |
| 0x0005= "PropertyTagGpsAltitudeRef"; | |
| 0x0018= "PropertyTagGpsDestBear"; | |
| 0x0017= "PropertyTagGpsDestBearRef"; | |
| 0x001A= "PropertyTagGpsDestDist"; | |
| 0x0019= "PropertyTagGpsDestDistRef"; | |
| 0x0014= "PropertyTagGpsDestLat"; | |
| 0x0013= "PropertyTagGpsDestLatRef"; | |
| 0x0016= "PropertyTagGpsDestLong"; | |
| 0x0015= "PropertyTagGpsDestLongRef"; | |
| 0x000B= "PropertyTagGpsGpsDop"; | |
| 0x000A= "PropertyTagGpsGpsMeasureMode"; | |
| 0x0008= "PropertyTagGpsGpsSatellites"; | |
| 0x0009= "PropertyTagGpsGpsStatus"; | |
| 0x0007= "PropertyTagGpsGpsTime"; | |
| 0x8825= "PropertyTagGpsIFD"; | |
| 0x0011= "PropertyTagGpsImgDir"; | |
| 0x0010= "PropertyTagGpsImgDirRef"; | |
| 0x0002= "PropertyTagGpsLatitude"; | |
| 0x0001= "PropertyTagGpsLatitudeRef"; | |
| 0x0004= "PropertyTagGpsLongitude"; | |
| 0x0003= "PropertyTagGpsLongitudeRef"; | |
| 0x0012= "PropertyTagGpsMapDatum"; | |
| 0x000D= "PropertyTagGpsSpeed"; | |
| 0x000C= "PropertyTagGpsSpeedRef"; | |
| 0x000F= "PropertyTagGpsTrack"; | |
| 0x000E= "PropertyTagGpsTrackRef"; | |
| 0x0000= "PropertyTagGpsVer"; | |
| 0x0123= "PropertyTagGrayResponseCurve"; | |
| 0x0122= "PropertyTagGrayResponseUnit"; | |
| 0x5011= "PropertyTagGridSize"; | |
| 0x500C= "PropertyTagHalftoneDegree"; | |
| 0x0141= "PropertyTagHalftoneHints"; | |
| 0x500A= "PropertyTagHalftoneLPI"; | |
| 0x500B= "PropertyTagHalftoneLPIUnit"; | |
| 0x500E= "PropertyTagHalftoneMisc"; | |
| 0x500F= "PropertyTagHalftoneScreen"; | |
| 0x500D= "PropertyTagHalftoneShape"; | |
| 0x013C= "PropertyTagHostComputer"; | |
| 0x8773= "PropertyTagICCProfile"; | |
| 0x0302= "PropertyTagICCProfileDescriptor"; | |
| 0x010E= "PropertyTagImageDescription"; | |
| 0x0101= "PropertyTagImageHeight"; | |
| 0x0320= "PropertyTagImageTitle"; | |
| 0x0100= "PropertyTagImageWidth"; | |
| 0x5103= "PropertyTagIndexBackground"; | |
| 0x5104= "PropertyTagIndexTransparent"; | |
| 0x014D= "PropertyTagInkNames"; | |
| 0x014C= "PropertyTagInkSet"; | |
| 0x0209= "PropertyTagJPEGACTables"; | |
| 0x0208= "PropertyTagJPEGDCTables"; | |
| 0x0201= "PropertyTagJPEGInterFormat"; | |
| 0x0202= "PropertyTagJPEGInterLength"; | |
| 0x0205= "PropertyTagJPEGLosslessPredictors"; | |
| 0x0206= "PropertyTagJPEGPointTransforms"; | |
| 0x0200= "PropertyTagJPEGProc"; | |
| 0x0207= "PropertyTagJPEGQTables"; | |
| 0x5010= "PropertyTagJPEGQuality"; | |
| 0x0203= "PropertyTagJPEGRestartInterval"; | |
| 0x5101= "PropertyTagLoopCount"; | |
| 0x5090= "PropertyTagLuminanceTable"; | |
| 0x0119= "PropertyTagMaxSampleValue"; | |
| 0x0118= "PropertyTagMinSampleValue"; | |
| 0x00FE= "PropertyTagNewSubfileType"; | |
| 0x014E= "PropertyTagNumberOfInks"; | |
| 0x0112= "PropertyTagOrientation"; | |
| 0x011D= "PropertyTagPageName"; | |
| 0x0129= "PropertyTagPageNumber"; | |
| 0x5113= "PropertyTagPaletteHistogram"; | |
| 0x0106= "PropertyTagPhotometricInterp"; | |
| 0x5111= "PropertyTagPixelPerUnitX"; | |
| 0x5112= "PropertyTagPixelPerUnitY"; | |
| 0x5110= "PropertyTagPixelUnit"; | |
| 0x011C= "PropertyTagPlanarConfig"; | |
| 0x013D= "PropertyTagPredictor"; | |
| 0x013F= "PropertyTagPrimaryChromaticities"; | |
| 0x5005= "PropertyTagPrintFlags"; | |
| 0x5008= "PropertyTagPrintFlagsBleedWidth"; | |
| 0x5009= "PropertyTagPrintFlagsBleedWidthScale"; | |
| 0x5007= "PropertyTagPrintFlagsCrop"; | |
| 0x5006= "PropertyTagPrintFlagsVersion"; | |
| 0x0214= "PropertyTagREFBlackWhite"; | |
| 0x0128= "PropertyTagResolutionUnit"; | |
| 0x5003= "PropertyTagResolutionXLengthUnit"; | |
| 0x5001= "PropertyTagResolutionXUnit"; | |
| 0x5004= "PropertyTagResolutionYLengthUnit"; | |
| 0x5002= "PropertyTagResolutionYUnit"; | |
| 0x0116= "PropertyTagRowsPerStrip"; | |
| 0x0153= "PropertyTagSampleFormat"; | |
| 0x0115= "PropertyTagSamplesPerPixel"; | |
| 0x0155= "PropertyTagSMaxSampleValue"; | |
| 0x0154= "PropertyTagSMinSampleValue"; | |
| 0x0131= "PropertyTagSoftwareUsed"; | |
| 0x0303= "PropertyTagSRGBRenderingIntent"; | |
| 0x0117= "PropertyTagStripBytesCount"; | |
| 0x0111= "PropertyTagStripOffsets"; | |
| 0x00FF= "PropertyTagSubfileType"; | |
| 0x0124= "PropertyTagT4Option"; | |
| 0x0125= "PropertyTagT6Option"; | |
| 0x0151= "PropertyTagTargetPrinter"; | |
| 0x0107= "PropertyTagThreshHolding"; | |
| 0x5034= "PropertyTagThumbnailArtist"; | |
| 0x5022= "PropertyTagThumbnailBitsPerSample"; | |
| 0x5015= "PropertyTagThumbnailColorDepth"; | |
| 0x5019= "PropertyTagThumbnailCompressedSize"; | |
| 0x5023= "PropertyTagThumbnailCompression"; | |
| 0x503B= "PropertyTagThumbnailCopyRight"; | |
| 0x501B= "PropertyTagThumbnailData"; | |
| 0x5033= "PropertyTagThumbnailDateTime"; | |
| 0x5026= "PropertyTagThumbnailEquipMake"; | |
| 0x5027= "PropertyTagThumbnailEquipModel"; | |
| 0x5012= "PropertyTagThumbnailFormat"; | |
| 0x5014= "PropertyTagThumbnailHeight"; | |
| 0x5025= "PropertyTagThumbnailImageDescription"; | |
| 0x5021= "PropertyTagThumbnailImageHeight"; | |
| 0x5020= "PropertyTagThumbnailImageWidth"; | |
| 0x5029= "PropertyTagThumbnailOrientation"; | |
| 0x5024= "PropertyTagThumbnailPhotometricInterp"; | |
| 0x502F= "PropertyTagThumbnailPlanarConfig"; | |
| 0x5016= "PropertyTagThumbnailPlanes"; | |
| 0x5036= "PropertyTagThumbnailPrimaryChromaticities"; | |
| 0x5017= "PropertyTagThumbnailRawBytes"; | |
| 0x503A= "PropertyTagThumbnailRefBlackWhite"; | |
| 0x5030= "PropertyTagThumbnailResolutionUnit"; | |
| 0x502D= "PropertyTagThumbnailResolutionX"; | |
| 0x502E= "PropertyTagThumbnailResolutionY"; | |
| 0x502B= "PropertyTagThumbnailRowsPerStrip"; | |
| 0x502A= "PropertyTagThumbnailSamplesPerPixel"; | |
| 0x5018= "PropertyTagThumbnailSize"; | |
| 0x5032= "PropertyTagThumbnailSoftwareUsed"; | |
| 0x502C= "PropertyTagThumbnailStripBytesCount"; | |
| 0x5028= "PropertyTagThumbnailStripOffsets"; | |
| 0x5031= "PropertyTagThumbnailTransferFunction"; | |
| 0x5035= "PropertyTagThumbnailWhitePoint"; | |
| 0x5013= "PropertyTagThumbnailWidth"; | |
| 0x5037= "PropertyTagThumbnailYCbCrCoefficients"; | |
| 0x5039= "PropertyTagThumbnailYCbCrPositioning"; | |
| 0x5038= "PropertyTagThumbnailYCbCrSubsampling"; | |
| 0x0145= "PropertyTagTileByteCounts"; | |
| 0x0143= "PropertyTagTileLength"; | |
| 0x0144= "PropertyTagTileOffset"; | |
| 0x0142= "PropertyTagTileWidth"; | |
| 0x012D= "PropertyTagTransferFunction"; | |
| 0x0156= "PropertyTagTransferRange"; | |
| 0x013E= "PropertyTagWhitePoint"; | |
| 0x011E= "PropertyTagXPosition"; | |
| 0x011A= "PropertyTagXResolution"; | |
| 0x0211= "PropertyTagYCbCrCoefficients"; | |
| 0x0213= "PropertyTagYCbCrPositioning"; | |
| 0x0212= "PropertyTagYCbCrSubsampling"; | |
| 0x011F= "PropertyTagYPosition"; | |
| 0x011B= "PropertyTagYResolution"; | |
| 40091= "PropertyTagUnicodeTitle"; | |
| 40092= "PropertyTagUnicodeComments"; | |
| 40093= "PropertyTagUnicodeAuthors"; | |
| 40094= "PropertyTagUnicodeTags"; | |
| 40095= "PropertyTagUnicodeSubject"; | |
| } | |
| $extension = ".jpg" | |
| $filter = "*" + $extension | |
| $files = Get-ChildItem -Filter $filter | sort name | |
| $numFiles = @($files).Count | |
| $utf8encoding = New-Object System.Text.UTF8Encoding | |
| $utf16encoding = New-Object System.Text.UnicodeEncoding | |
| Write-Output "Listing $numFiles Jpegs" | |
| foreach ($file in $files) | |
| { | |
| Write-Host $file.FullName -foregroundcolor "yellow" | |
| $photo = [System.Drawing.Image]::FromFile($file.FullName) | |
| $properties = $photo.PropertyItems | |
| foreach ($property in $properties) | |
| { | |
| if ($propertyname.ContainsKey($property.Id)) | |
| { | |
| $propid = $propertyname.Get_Item($property.Id) | |
| } | |
| else | |
| { | |
| $propid = $property.Id | |
| } | |
| $proplen = $property.Len | |
| if ($proplen -lt 100) | |
| { | |
| switch ($propid) | |
| { | |
| {$_ -in | |
| "PropertyTagSoftwareUsed", | |
| "PropertyTagImageDescription", | |
| "PropertyTagEquipMake", | |
| "PropertyTagEquipModel", | |
| "PropertyTagArtist", | |
| "PropertyTagSoftwareUsed" | |
| } { $propvalue = $utf8encoding.GetString($property.Value).Trim() } | |
| {$_ -in | |
| "PropertyTagUnicodeTitle", | |
| "PropertyTagUnicodeComments", | |
| "PropertyTagUnicodeAuthors", | |
| "PropertyTagUnicodeTags", | |
| "PropertyTagUnicodeSubject" | |
| } { $propvalue = $utf16encoding.GetString($property.Value).Trim() } | |
| default { $propvalue = $property.Value } | |
| } | |
| Write-Output "$propid : $propvalue($proplen)" | |
| } | |
| else | |
| { | |
| Write-Output "$propid : ($proplen)" | |
| } | |
| } | |
| $photo.Dispose() | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment