Files
harmonia/Harmonia.Core/Imaging/AudioImageExtractor.cs

27 lines
732 B
C#

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