using Harmonia.Core.Tags; namespace Harmonia.Core.Imaging; public class AudioImageExtractor(ITagResolver tagResolver) : IAudioImageExtractor { public SongPictureInfo ExtractImage(string fileName) { SongTagInfo songTagInfo = tagResolver.GetSongTagInfo(fileName); return ExtractImage(fileName, songTagInfo); } public SongPictureInfo ExtractImage(string fileName, SongTagInfo songTagInfo) { if (songTagInfo.FrontCover != null) { using MemoryStream memoryStream = new(songTagInfo.FrontCover.Data); return SongPictureInfo.FromStream(memoryStream); } else { return SongPictureInfo.FromFile(fileName); } } }