public void TestXResolutionDescription() { var directory = new ExifIfd0Directory(); directory.Set(ExifDirectoryBase.TagXResolution, new Rational(72, 1)); // 2 is for 'Inch' directory.Set(ExifDirectoryBase.TagResolutionUnit, 2); var descriptor = new ExifIfd0Descriptor(directory); Assert.Equal("72 dots per inch", descriptor.GetDescription(ExifDirectoryBase.TagXResolution)); }
public void TestYResolutionDescription() { var directory = new ExifIfd0Directory(); directory.Set(ExifDirectoryBase.TagYResolution, new Rational(50, 1)); // 3 is for 'cm' directory.Set(ExifDirectoryBase.TagResolutionUnit, 3); var descriptor = new ExifIfd0Descriptor(directory); Assert.Equal("50 dots per cm", descriptor.GetDescription(ExifDirectoryBase.TagYResolution)); }
public void TestWindowsXpFields() { var directory = ExifReaderTest.ProcessSegmentBytes<ExifIfd0Directory>("Tests/Data/windowsXpFields.jpg.app1"); Assert.Equal("Testing artist\x0", directory.GetString(ExifDirectoryBase.TagWinAuthor, Encoding.Unicode)); Assert.Equal("Testing comments\x0", directory.GetString(ExifDirectoryBase.TagWinComment, Encoding.Unicode)); Assert.Equal("Testing keywords\x0", directory.GetString(ExifDirectoryBase.TagWinKeywords, Encoding.Unicode)); Assert.Equal("Testing subject\x0", directory.GetString(ExifDirectoryBase.TagWinSubject, Encoding.Unicode)); Assert.Equal("Testing title\x0", directory.GetString(ExifDirectoryBase.TagWinTitle, Encoding.Unicode)); var descriptor = new ExifIfd0Descriptor(directory); Assert.Equal("Testing artist", descriptor.GetDescription(ExifDirectoryBase.TagWinAuthor)); Assert.Equal("Testing comments", descriptor.GetDescription(ExifDirectoryBase.TagWinComment)); Assert.Equal("Testing keywords", descriptor.GetDescription(ExifDirectoryBase.TagWinKeywords)); Assert.Equal("Testing subject", descriptor.GetDescription(ExifDirectoryBase.TagWinSubject)); Assert.Equal("Testing title", descriptor.GetDescription(ExifDirectoryBase.TagWinTitle)); }
public void TestWindowsXpFields() { var directory = ExifReaderTest.ProcessSegmentBytes <ExifIfd0Directory>("Tests/Data/windowsXpFields.jpg.app1"); Assert.Equal("Testing artist\x0", directory.GetString(ExifDirectoryBase.TagWinAuthor, Encoding.Unicode)); Assert.Equal("Testing comments\x0", directory.GetString(ExifDirectoryBase.TagWinComment, Encoding.Unicode)); Assert.Equal("Testing keywords\x0", directory.GetString(ExifDirectoryBase.TagWinKeywords, Encoding.Unicode)); Assert.Equal("Testing subject\x0", directory.GetString(ExifDirectoryBase.TagWinSubject, Encoding.Unicode)); Assert.Equal("Testing title\x0", directory.GetString(ExifDirectoryBase.TagWinTitle, Encoding.Unicode)); var descriptor = new ExifIfd0Descriptor(directory); Assert.Equal("Testing artist", descriptor.GetDescription(ExifDirectoryBase.TagWinAuthor)); Assert.Equal("Testing comments", descriptor.GetDescription(ExifDirectoryBase.TagWinComment)); Assert.Equal("Testing keywords", descriptor.GetDescription(ExifDirectoryBase.TagWinKeywords)); Assert.Equal("Testing subject", descriptor.GetDescription(ExifDirectoryBase.TagWinSubject)); Assert.Equal("Testing title", descriptor.GetDescription(ExifDirectoryBase.TagWinTitle)); }
private static Tuple <string, string, string[]> AlternativeReadingMetadataMethod(IFileSystem fileSystem, string filePath) { using var fs = fileSystem.File.OpenRead(filePath); var metadata = (JpegMetadataReader.ReadMetadata(fs)); var iFD0Directory = metadata.OfType <ExifIfd0Directory>().FirstOrDefault(); var exifIfd0Descriptor = new ExifIfd0Descriptor(iFD0Directory); var Ifd0Description = exifIfd0Descriptor.GetDescription(ExifIfd0Directory.TagImageDescription); var Ifd0Keywords = exifIfd0Descriptor.GetDescription(ExifIfd0Directory.TagWinKeywords); var Ifd0Title = exifIfd0Descriptor.GetDescription(ExifIfd0Directory.TagWinTitle); //var subIfdDirectory = metadata.OfType<ExifSubIfdDirectory>().FirstOrDefault(); //var subIfdDescriptor = new ExifSubIfdDescriptor(subIfdDirectory); // returns something like 4261 pixels //var dagExifImageWidth = subIfdDescriptor.GetDescription(ExifDirectoryBase.TagExifImageWidth); //var dagExifImageHeight = subIfdDescriptor.GetDescription(ExifDirectoryBase.TagExifImageHeight); var thumbnailDirectory = metadata.OfType <ExifThumbnailDirectory>().FirstOrDefault(); var thumbnailDescriptor = new ExifThumbnailDescriptor(thumbnailDirectory); var thumbnailOffset = thumbnailDescriptor.GetDescription(ExifThumbnailDirectory.TagThumbnailOffset); var thumbnailYResolution = thumbnailDescriptor.GetDescription(ExifThumbnailDirectory.TagYResolution); var thumbnailXResolution = thumbnailDescriptor.GetDescription(ExifThumbnailDirectory.TagXResolution); var thumbnailLength = thumbnailDescriptor.GetDescription(ExifThumbnailDirectory.TagThumbnailLength); var thumbnailCompression = thumbnailDescriptor.GetDescription(ExifThumbnailDirectory.TagCompression); var IPTCDirectory = metadata.OfType <IptcDirectory>().FirstOrDefault(); var iptcDescriptor = new IptcDescriptor(IPTCDirectory); var IPTCDescription = iptcDescriptor.GetDescription(IptcDirectory.TagCaption); var IPTCKeywords = iptcDescriptor.GetDescription(IptcDirectory.TagKeywords); // like "TestFile1Kw1;TestFile1Kw2;TestFile1Kw3;TestFile1Kw4" var IPTCTitle = iptcDescriptor.GetDescription(IptcDirectory.TagObjectName); var keywordsAsString = string.IsNullOrWhiteSpace(Ifd0Keywords) ? IPTCKeywords : Ifd0Keywords; var arrayOrKeywords = keywordsAsString?.Split(';'); var title = string.IsNullOrWhiteSpace(Ifd0Title) ? IPTCTitle : Ifd0Title; var description = string.IsNullOrWhiteSpace(Ifd0Description) ? IPTCDescription : Ifd0Description; return(new Tuple <string, string, string[]>(title, description, arrayOrKeywords)); }