diff --git a/src/ImageSharp/Formats/Tiff/TiffDecoderMetadataCreator.cs b/src/ImageSharp/Formats/Tiff/TiffDecoderMetadataCreator.cs index 327e366331..aa44b0b035 100644 --- a/src/ImageSharp/Formats/Tiff/TiffDecoderMetadataCreator.cs +++ b/src/ImageSharp/Formats/Tiff/TiffDecoderMetadataCreator.cs @@ -54,24 +54,6 @@ namespace SixLabors.ImageSharp.Formats.Tiff } } - if (coreMetadata.ExifProfile == null && frame.ExifProfile != null) - { - coreMetadata.ExifProfile = frame.ExifProfile.DeepClone(); - - // Remove Tiff specific tags from the profile. - coreMetadata.ExifProfile.RemoveValue(ExifTag.ImageWidth); - coreMetadata.ExifProfile.RemoveValue(ExifTag.ImageLength); - coreMetadata.ExifProfile.RemoveValue(ExifTag.ResolutionUnit); - coreMetadata.ExifProfile.RemoveValue(ExifTag.Predictor); - coreMetadata.ExifProfile.RemoveValue(ExifTag.PlanarConfiguration); - coreMetadata.ExifProfile.RemoveValue(ExifTag.PhotometricInterpretation); - coreMetadata.ExifProfile.RemoveValue(ExifTag.BitsPerSample); - coreMetadata.ExifProfile.RemoveValue(ExifTag.ColorMap); - coreMetadata.ExifProfile.RemoveValue(ExifTag.Compression); - coreMetadata.ExifProfile.RemoveValue(ExifTag.StripOffsets); - coreMetadata.ExifProfile.RemoveValue(ExifTag.StripByteCounts); - } - if (coreMetadata.IptcProfile == null) { if (TryGetIptc(frame.ExifProfile.Values, out byte[] iptcBytes)) diff --git a/src/ImageSharp/Formats/Tiff/TiffEncoderEntriesCollector.cs b/src/ImageSharp/Formats/Tiff/TiffEncoderEntriesCollector.cs index 4916a9804c..f20395221e 100644 --- a/src/ImageSharp/Formats/Tiff/TiffEncoderEntriesCollector.cs +++ b/src/ImageSharp/Formats/Tiff/TiffEncoderEntriesCollector.cs @@ -177,15 +177,15 @@ namespace SixLabors.ImageSharp.Formats.Tiff private void ProcessProfiles(ImageMetadata imageMetadata, TiffFrameMetadata tiffFrameMetadata) { - if (imageMetadata.ExifProfile != null && imageMetadata.ExifProfile.Parts != ExifParts.None) + ExifProfile exifProfile = tiffFrameMetadata.ExifProfile; + if (exifProfile != null && exifProfile.Parts != ExifParts.None) { - imageMetadata.SyncProfiles(); - foreach (IExifValue entry in imageMetadata.ExifProfile.Values) + foreach (IExifValue entry in exifProfile.Values) { if (!this.collector.Entries.Exists(t => t.Tag == entry.Tag) && entry.GetValue() != null) { ExifParts entryPart = ExifTags.GetPart(entry.Tag); - if (entryPart != ExifParts.None && imageMetadata.ExifProfile.Parts.HasFlag(entryPart)) + if (entryPart != ExifParts.None && exifProfile.Parts.HasFlag(entryPart)) { this.collector.AddOrReplace(entry.DeepClone()); } diff --git a/tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifProfileTests.cs b/tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifProfileTests.cs index 23d29b4ebf..208222a857 100644 --- a/tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifProfileTests.cs +++ b/tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifProfileTests.cs @@ -28,12 +28,7 @@ namespace SixLabors.ImageSharp.Tests /// /// Writes a png file. /// - Png, - - /// - /// Writes a tiff file. - /// - Tiff, + Png } private static readonly Dictionary TestProfileValues = new Dictionary @@ -97,7 +92,6 @@ namespace SixLabors.ImageSharp.Tests [Theory] [InlineData(TestImageWriteFormat.Jpeg)] [InlineData(TestImageWriteFormat.Png)] - [InlineData(TestImageWriteFormat.Tiff)] public void WriteFraction(TestImageWriteFormat imageFormat) { using (var memStream = new MemoryStream()) @@ -141,7 +135,6 @@ namespace SixLabors.ImageSharp.Tests [Theory] [InlineData(TestImageWriteFormat.Jpeg)] [InlineData(TestImageWriteFormat.Png)] - [InlineData(TestImageWriteFormat.Tiff)] public void ReadWriteInfinity(TestImageWriteFormat imageFormat) { Image image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateRgba32Image(); @@ -175,7 +168,6 @@ namespace SixLabors.ImageSharp.Tests https://exiftool.org/TagNames/EXIF.html */ [InlineData(TestImageWriteFormat.Jpeg, 16)] [InlineData(TestImageWriteFormat.Png, 16)] - [InlineData(TestImageWriteFormat.Tiff, 16)] public void SetValue(TestImageWriteFormat imageFormat, int expectedProfileValueCount) { Image image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateRgba32Image(); @@ -411,7 +403,6 @@ namespace SixLabors.ImageSharp.Tests [Theory] [InlineData(TestImageWriteFormat.Jpeg)] [InlineData(TestImageWriteFormat.Png)] - [InlineData(TestImageWriteFormat.Tiff)] public void WritingImagePreservesExifProfile(TestImageWriteFormat imageFormat) { // Arrange @@ -486,8 +477,6 @@ namespace SixLabors.ImageSharp.Tests return WriteAndReadJpeg(image); case TestImageWriteFormat.Png: return WriteAndReadPng(image); - case TestImageWriteFormat.Tiff: - return WriteAndReadTiff(image); default: throw new ArgumentException("Unexpected test image format, only Jpeg, Png and Tiff are allowed"); }