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()); }
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()); }
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)); }