27 lines
732 B
C#
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);
|
|
}
|
|
}
|
|
} |