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));
 }
Пример #3
0
        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));
        }
Пример #4
0
        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 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));
 }
Пример #6
0
        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));
        }
Пример #7
0
        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));
        }