public void TestGetYCbCrSubsamplingDescription()
 {
     var directory = new ExifThumbnailDirectory();
     directory.Set(ExifDirectoryBase.TagYcbcrSubsampling, new[] { 2, 1 });
     var descriptor = new ExifThumbnailDescriptor(directory);
     Assert.Equal("YCbCr4:2:2", descriptor.GetDescription(ExifDirectoryBase.TagYcbcrSubsampling));
     Assert.Equal("YCbCr4:2:2", descriptor.GetYCbCrSubsamplingDescription());
     directory.Set(ExifDirectoryBase.TagYcbcrSubsampling, new[] { 2, 2 });
     Assert.Equal("YCbCr4:2:0", descriptor.GetDescription(ExifDirectoryBase.TagYcbcrSubsampling));
     Assert.Equal("YCbCr4:2:0", descriptor.GetYCbCrSubsamplingDescription());
 }
		public virtual void TestGetYCbCrSubsamplingDescription()
		{
			ExifThumbnailDirectory directory = new ExifThumbnailDirectory();
			directory.SetIntArray(ExifThumbnailDirectory.TagYcbcrSubsampling, new int[] { 2, 1 });
			ExifThumbnailDescriptor descriptor = new ExifThumbnailDescriptor(directory);
			Sharpen.Tests.AreEqual("YCbCr4:2:2", descriptor.GetDescription(ExifThumbnailDirectory.TagYcbcrSubsampling));
			Sharpen.Tests.AreEqual("YCbCr4:2:2", descriptor.GetYCbCrSubsamplingDescription());
			directory.SetIntArray(ExifThumbnailDirectory.TagYcbcrSubsampling, new int[] { 2, 2 });
			Sharpen.Tests.AreEqual("YCbCr4:2:0", descriptor.GetDescription(ExifThumbnailDirectory.TagYcbcrSubsampling));
			Sharpen.Tests.AreEqual("YCbCr4:2:0", descriptor.GetYCbCrSubsamplingDescription());
		}
示例#3
0
        public void GetYCbCrSubsamplingDescription()
        {
            var directory  = new ExifThumbnailDirectory();
            var descriptor = new ExifThumbnailDescriptor(directory);

            directory.Set(ExifDirectoryBase.TagYCbCrSubsampling, new[] { 2, 1 });
            Assert.Equal("YCbCr4:2:2", descriptor.GetDescription(ExifDirectoryBase.TagYCbCrSubsampling));
            Assert.Equal("YCbCr4:2:2", descriptor.GetYCbCrSubsamplingDescription());

            directory.Set(ExifDirectoryBase.TagYCbCrSubsampling, new[] { 2, 2 });
            Assert.Equal("YCbCr4:2:0", descriptor.GetDescription(ExifDirectoryBase.TagYCbCrSubsampling));
            Assert.Equal("YCbCr4:2:0", descriptor.GetYCbCrSubsamplingDescription());
        }
示例#4
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));
        }