diff --git a/src/ImageSharp/Formats/Bmp/BmpMetadata.cs b/src/ImageSharp/Formats/Bmp/BmpMetadata.cs index a2ed1d21d0..f381249d8f 100644 --- a/src/ImageSharp/Formats/Bmp/BmpMetadata.cs +++ b/src/ImageSharp/Formats/Bmp/BmpMetadata.cs @@ -1,4 +1,4 @@ -// Copyright (c) Six Labors. +// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.ImageSharp.Formats.Bmp; @@ -6,7 +6,7 @@ namespace SixLabors.ImageSharp.Formats.Bmp; /// /// Provides Bmp specific metadata information for the image. /// -public class BmpMetadata : IDeepCloneable +public class BmpMetadata : IFormatMetadata, IFormatFrameMetadata { /// /// Initializes a new instance of the class. @@ -36,7 +36,26 @@ public class BmpMetadata : IDeepCloneable public BmpBitsPerPixel BitsPerPixel { get; set; } = BmpBitsPerPixel.Pixel24; /// - public IDeepCloneable DeepClone() => new BmpMetadata(this); + public static BmpMetadata FromFormatConnectingMetadata(FormatConnectingMetadata metadata) + => throw new NotImplementedException(); + + /// + public static BmpMetadata FromFormatConnectingFrameMetadata(FormatConnectingFrameMetadata metadata) + => throw new NotImplementedException(); + + /// + public FormatConnectingMetadata ToFormatConnectingMetadata() + => throw new NotImplementedException(); + + /// + public FormatConnectingFrameMetadata ToFormatConnectingFrameMetadata() + => throw new NotImplementedException(); + + /// + public IDeepCloneable DeepClone() => ((IDeepCloneable)this).DeepClone(); + + /// + BmpMetadata IDeepCloneable.DeepClone() => new(this); // TODO: Colors used once we support encoding palette bmps. } diff --git a/src/ImageSharp/Formats/IFormatFrameMetadata.cs b/src/ImageSharp/Formats/IFormatFrameMetadata.cs index bd7c6c45b1..4c5321073d 100644 --- a/src/ImageSharp/Formats/IFormatFrameMetadata.cs +++ b/src/ImageSharp/Formats/IFormatFrameMetadata.cs @@ -19,7 +19,7 @@ public interface IFormatFrameMetadata : IDeepCloneable /// An interface that provides metadata for a specific image format frames. /// /// The metadata type implementing this interface. -public interface IFormatFrameMetadata : IFormatMetadata, IDeepCloneable +public interface IFormatFrameMetadata : IFormatFrameMetadata, IDeepCloneable where TSelf : class, IFormatFrameMetadata, new() { ///