From ffa38bc2736f768e41903eb5ef5af543537bde20 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Thu, 25 Feb 2021 16:34:39 +0100 Subject: [PATCH] Remove properties from TiffFrame meta data which can be received directly from the ExifProfile --- .../Formats/Tiff/TiffFrameMetadata.cs | 74 ------------------- .../Formats/Tiff/TiffMetadataTests.cs | 68 ++++++++--------- 2 files changed, 34 insertions(+), 108 deletions(-) diff --git a/src/ImageSharp/Formats/Tiff/TiffFrameMetadata.cs b/src/ImageSharp/Formats/Tiff/TiffFrameMetadata.cs index 21a24896d..5d3674422 100644 --- a/src/ImageSharp/Formats/Tiff/TiffFrameMetadata.cs +++ b/src/ImageSharp/Formats/Tiff/TiffFrameMetadata.cs @@ -43,13 +43,11 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff /// /// Gets a general indication of the kind of data contained in this subfile. /// - /// A general indication of the kind of data contained in this subfile. public TiffNewSubfileType SubfileType => (TiffNewSubfileType?)this.ExifProfile.GetValue(ExifTag.SubfileType)?.Value ?? TiffNewSubfileType.FullImage; /// /// Gets a general indication of the kind of data contained in this subfile. /// - /// A general indication of the kind of data contained in this subfile. public TiffSubfileType? OldSubfileType => (TiffSubfileType?)this.ExifProfile.GetValue(ExifTag.OldSubfileType)?.Value; /// @@ -154,33 +152,6 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff /// internal TiffFillOrder FillOrder => (TiffFillOrder?)this.ExifProfile.GetValue(ExifTag.FillOrder)?.Value ?? TiffFillOrder.MostSignificantBitFirst; - /// - /// Gets or sets the a string that describes the subject of the image. - /// - public string ImageDescription - { - get => this.ExifProfile.GetValue(ExifTag.ImageDescription)?.Value; - set => this.ExifProfile.SetValue(ExifTag.ImageDescription, value); - } - - /// - /// Gets or sets the scanner manufacturer. - /// - public string Make - { - get => this.ExifProfile.GetValue(ExifTag.Make)?.Value; - set => this.ExifProfile.SetValue(ExifTag.Make, value); - } - - /// - /// Gets or sets the scanner model name or number. - /// - public string Model - { - get => this.ExifProfile.GetValue(ExifTag.Model)?.Value; - set => this.ExifProfile.SetValue(ExifTag.Model, value); - } - /// /// Gets for each strip, the byte offset of that strip. /// @@ -259,42 +230,6 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff /// public PixelResolutionUnit ResolutionUnit => this.GetResolutionUnit(); - /// - /// Gets or sets the name and version number of the software package(s) used to create the image. - /// - public string Software - { - get => this.ExifProfile.GetValue(ExifTag.Software)?.Value; - set => this.ExifProfile.SetValue(ExifTag.Software, value); - } - - /// - /// Gets or sets the date and time of image creation. - /// - public string DateTime - { - get => this.ExifProfile.GetValue(ExifTag.DateTime)?.Value; - set => this.ExifProfile.SetValue(ExifTag.DateTime, value); - } - - /// - /// Gets or sets the person who created the image. - /// - public string Artist - { - get => this.ExifProfile.GetValue(ExifTag.Artist)?.Value; - set => this.ExifProfile.SetValue(ExifTag.Artist, value); - } - - /// - /// Gets or sets the computer and/or operating system in use at the time of image creation. - /// - public string HostComputer - { - get => this.ExifProfile.GetValue(ExifTag.HostComputer)?.Value; - set => this.ExifProfile.SetValue(ExifTag.HostComputer, value); - } - /// /// Gets a color map for palette color images. /// @@ -305,15 +240,6 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff /// public ushort[] ExtraSamples => this.ExifProfile.GetValue(ExifTag.ExtraSamples)?.Value; - /// - /// Gets or sets the copyright notice. - /// - public string Copyright - { - get => this.ExifProfile.GetValue(ExifTag.Copyright)?.Value; - set => this.ExifProfile.SetValue(ExifTag.Copyright, value); - } - /// /// Gets a mathematical operator that is applied to the image data before an encoding scheme is applied. /// diff --git a/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs b/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs index e4b935e0f..b2eb3add9 100644 --- a/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs +++ b/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs @@ -191,9 +191,9 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Equal(TiffBitsPerSample.Four, frame.BitsPerSample); Assert.Equal(TiffCompression.Lzw, frame.Compression); Assert.Equal(TiffPhotometricInterpretation.PaletteColor, frame.PhotometricInterpretation); - Assert.Equal("This is Название", frame.ImageDescription); - Assert.Equal("This is Изготовитель камеры", frame.Make); - Assert.Equal("This is Модель камеры", frame.Model); + Assert.Equal("This is Название", frame.ExifProfile.GetValue(ExifTag.ImageDescription).Value); + Assert.Equal("This is Изготовитель камеры", frame.ExifProfile.GetValue(ExifTag.Make).Value); + Assert.Equal("This is Модель камеры", frame.ExifProfile.GetValue(ExifTag.Model).Value); Assert.Equal(new Number[] { 8u }, frame.StripOffsets, new NumberComparer()); Assert.Equal(1, frame.SamplesPerPixel); Assert.Equal(32u, frame.RowsPerStrip); @@ -202,10 +202,10 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Equal(10, frame.VerticalResolution); Assert.Equal(TiffPlanarConfiguration.Chunky, frame.PlanarConfiguration); Assert.Equal(PixelResolutionUnit.PixelsPerInch, frame.ResolutionUnit); - Assert.Equal("IrfanView", frame.Software); - Assert.Null(frame.DateTime); - Assert.Equal("This is author1;Author2", frame.Artist); - Assert.Null(frame.HostComputer); + Assert.Equal("IrfanView", frame.ExifProfile.GetValue(ExifTag.Software).Value); + Assert.Null(frame.ExifProfile.GetValue(ExifTag.DateTime)?.Value); + Assert.Equal("This is author1;Author2", frame.ExifProfile.GetValue(ExifTag.Artist).Value); + Assert.Null(frame.ExifProfile.GetValue(ExifTag.HostComputer)?.Value); Assert.Equal(48, frame.ColorMap.Length); Assert.Equal(10537, frame.ColorMap[0]); Assert.Equal(14392, frame.ColorMap[1]); @@ -215,7 +215,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Null(frame.ExtraSamples); Assert.Equal(TiffPredictor.None, frame.Predictor); Assert.Null(frame.SampleFormat); - Assert.Equal("This is Авторские права", frame.Copyright); + Assert.Equal("This is Авторские права", frame.ExifProfile.GetValue(ExifTag.Copyright).Value); Assert.Equal(4, frame.ExifProfile.GetValue(ExifTag.Rating).Value); Assert.Equal(75, frame.ExifProfile.GetValue(ExifTag.RatingPercent).Value); } @@ -293,33 +293,33 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Equal(frameMeta.HorizontalResolution, frameMetaOut.HorizontalResolution); Assert.Equal(frameMeta.VerticalResolution, frameMetaOut.VerticalResolution); - Assert.Equal("ImageSharp", frameMetaOut.Software); + Assert.Equal("ImageSharp", frameMetaOut.ExifProfile.GetValue(ExifTag.Software).Value); if (preserveMetadata) { Assert.Equal(tiffMeta.XmpProfile, tiffMetaOut.XmpProfile); - Assert.Equal("IrfanView", frameMeta.Software); - Assert.Equal("This is Название", frameMeta.ImageDescription); - Assert.Equal("This is Изготовитель камеры", frameMeta.Make); - Assert.Equal("This is Авторские права", frameMeta.Copyright); + Assert.Equal("IrfanView", frameMeta.ExifProfile.GetValue(ExifTag.Software).Value); + Assert.Equal("This is Название", frameMeta.ExifProfile.GetValue(ExifTag.ImageDescription).Value); + Assert.Equal("This is Изготовитель камеры", frameMeta.ExifProfile.GetValue(ExifTag.Make).Value); + Assert.Equal("This is Авторские права", frameMeta.ExifProfile.GetValue(ExifTag.Copyright).Value); - Assert.Equal(frameMeta.ImageDescription, frameMetaOut.ImageDescription); - Assert.Equal(frameMeta.Make, frameMetaOut.Make); - Assert.Equal(frameMeta.Copyright, frameMetaOut.Copyright); + Assert.Equal(frameMeta.ExifProfile.GetValue(ExifTag.ImageDescription).Value, frameMetaOut.ExifProfile.GetValue(ExifTag.ImageDescription).Value); + Assert.Equal(frameMeta.ExifProfile.GetValue(ExifTag.Make).Value, frameMetaOut.ExifProfile.GetValue(ExifTag.Make).Value); + Assert.Equal(frameMeta.ExifProfile.GetValue(ExifTag.Copyright).Value, frameMetaOut.ExifProfile.GetValue(ExifTag.Copyright).Value); } else { Assert.Null(tiffMetaOut.XmpProfile); - Assert.Null(frameMeta.Software); - Assert.Null(frameMeta.ImageDescription); - Assert.Null(frameMeta.Make); - Assert.Null(frameMeta.Copyright); + Assert.Null(frameMeta.ExifProfile.GetValue(ExifTag.Software)?.Value); + Assert.Null(frameMeta.ExifProfile.GetValue(ExifTag.ImageDescription)?.Value); + Assert.Null(frameMeta.ExifProfile.GetValue(ExifTag.Make)?.Value); + Assert.Null(frameMeta.ExifProfile.GetValue(ExifTag.Copyright)?.Value); - Assert.Null(frameMetaOut.ImageDescription); - Assert.Null(frameMetaOut.Make); - Assert.Null(frameMetaOut.Copyright); + Assert.Null(frameMetaOut.ExifProfile.GetValue(ExifTag.ImageDescription)?.Value); + Assert.Null(frameMetaOut.ExifProfile.GetValue(ExifTag.Make)?.Value); + Assert.Null(frameMetaOut.ExifProfile.GetValue(ExifTag.Copyright)?.Value); } } @@ -350,8 +350,8 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff coreMeta.VerticalResolution = 5400; var datetime = DateTime.Now.ToString(CultureInfo.InvariantCulture); - frameMeta.ImageDescription = "test ImageDescription"; - frameMeta.DateTime = datetime; + frameMeta.ExifProfile.SetValue(ExifTag.ImageDescription, "test ImageDescription"); + frameMeta.ExifProfile.SetValue(ExifTag.DateTime, datetime); // Save to Tiff var tiffEncoder = new TiffEncoder { Mode = TiffEncodingMode.Default, Compression = TiffEncoderCompression.Deflate }; @@ -385,7 +385,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Equal(frameMeta.HorizontalResolution, frameMetaOut.HorizontalResolution); Assert.Equal(frameMeta.VerticalResolution, frameMetaOut.VerticalResolution); - Assert.Equal("ImageSharp", frameMetaOut.Software); + Assert.Equal("ImageSharp", frameMetaOut.ExifProfile.GetValue(ExifTag.Software)?.Value); if (preserveMetadata) { @@ -397,11 +397,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Equal(coreMeta.IptcProfile.Data, coreMetaOut.IptcProfile.Data); Assert.Equal(coreMeta.IccProfile.ToByteArray(), coreMetaOut.IccProfile.ToByteArray()); - Assert.Equal("test ImageDescription", frameMeta.ImageDescription); - Assert.Equal(datetime, frameMeta.DateTime); + Assert.Equal("test ImageDescription", frameMeta.ExifProfile.GetValue(ExifTag.ImageDescription).Value); + Assert.Equal(datetime, frameMeta.ExifProfile.GetValue(ExifTag.DateTime)?.Value); - Assert.Equal(frameMeta.ImageDescription, frameMetaOut.ImageDescription); - Assert.Equal(frameMeta.DateTime, frameMetaOut.DateTime); + Assert.Equal(frameMeta.ExifProfile.GetValue(ExifTag.ImageDescription).Value, frameMetaOut.ExifProfile.GetValue(ExifTag.ImageDescription).Value); + Assert.Equal(frameMeta.ExifProfile.GetValue(ExifTag.DateTime).Value, frameMetaOut.ExifProfile.GetValue(ExifTag.DateTime).Value); } else { @@ -409,11 +409,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff Assert.Null(coreMetaOut.IptcProfile); Assert.Null(coreMetaOut.IccProfile); - Assert.Null(frameMeta.ImageDescription); - Assert.Null(frameMeta.DateTime); + Assert.Null(frameMeta.ExifProfile.GetValue(ExifTag.ImageDescription)?.Value); + Assert.Null(frameMeta.ExifProfile.GetValue(ExifTag.DateTime)?.Value); - Assert.Null(frameMetaOut.ImageDescription); - Assert.Null(frameMetaOut.DateTime); + Assert.Null(frameMetaOut.ExifProfile.GetValue(ExifTag.ImageDescription)?.Value); + Assert.Null(frameMetaOut.ExifProfile.GetValue(ExifTag.DateTime)?.Value); } }