From 7c9ab73a34a88613541d4ce70bcf178499f2a2ba Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Mon, 4 Aug 2025 14:38:02 -0400 Subject: [PATCH] Fix #76 --- .../BetterLyrics.WinUI3/Helper/ImageHelper.cs | 11 ++++------- .../BetterLyrics.WinUI3/Models/LyricsLine.cs | 2 +- .../BetterLyrics.WinUI3/Services/PlaybackService.cs | 5 +++-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/ImageHelper.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/ImageHelper.cs index 52d6507..d9941b0 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/ImageHelper.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/ImageHelper.cs @@ -187,13 +187,10 @@ namespace BetterLyrics.WinUI3.Helper public static byte[] Resize(byte[] imageBytes, int size) { using Image image = Image.Load(imageBytes); - var factor = Math.Max(size / image.Width, size / image.Height); - if (factor <= 1) - { - return imageBytes; - } - int width = image.Width * factor; - int height = image.Height * factor; + var factor = Math.Max((float)size / image.Width, (float)size / image.Height); + + int width = (int)(image.Width * factor); + int height = (int)(image.Height * factor); image.Mutate(x => x.Resize(width, height, KnownResamplers.Welch)); using var ms = new MemoryStream(); diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsLine.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsLine.cs index 32b8a83..391b20f 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsLine.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LyricsLine.cs @@ -14,7 +14,7 @@ namespace BetterLyrics.WinUI3.Models { public class LyricsLine { - private const float _animationDuration = 0.5f; + private const float _animationDuration = 0.3f; public ValueTransition AngleTransition { get; set; } = new( initialValue: 0f, durationSeconds: _animationDuration, diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/PlaybackService.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/PlaybackService.cs index cadd151..6c2822c 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/PlaybackService.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/PlaybackService.cs @@ -54,6 +54,7 @@ namespace BetterLyrics.WinUI3.Services private SongInfo? _cachedSongInfo; private List _mediaSourceProvidersInfo; private byte[]? _SMTCAlbumArtBytes = null; + private int _targetAlbumArtSize = 400; public event EventHandler? IsPlayingChanged; public event EventHandler? TimelineChanged; @@ -178,7 +179,6 @@ namespace BetterLyrics.WinUI3.Services if (mediaProperties.Thumbnail is IRandomAccessStreamReference streamReference) { _SMTCAlbumArtBytes = await ImageHelper.ToByteArrayAsync(streamReference); - _SMTCAlbumArtBytes = ImageHelper.Resize(_SMTCAlbumArtBytes, 800); } else { @@ -281,11 +281,12 @@ namespace BetterLyrics.WinUI3.Services if (bytes == null) { - bytes = await ImageHelper.CreateTextPlaceholderBytesAsync(400, 400); + bytes = await ImageHelper.CreateTextPlaceholderBytesAsync(_targetAlbumArtSize, _targetAlbumArtSize); token.ThrowIfCancellationRequested(); } bytes = ImageHelper.MakeSquareWithThemeColor(bytes); + bytes = ImageHelper.Resize(bytes, _targetAlbumArtSize); using var stream = new InMemoryRandomAccessStream(); await stream.WriteAsync(bytes.AsBuffer());