From 69b2fe92f5ad6a1394024c93ba1fa1fdbb23674f Mon Sep 17 00:00:00 2001 From: Jason Walton Date: Sun, 22 Nov 2020 11:13:38 -0500 Subject: [PATCH] Fix aspect ratio for non-square album art. --- core/artwork.go | 11 ++++++++++- ui/src/album/AlbumGridView.js | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/core/artwork.go b/core/artwork.go index 7f747eaf..8bb319b9 100644 --- a/core/artwork.go +++ b/core/artwork.go @@ -171,7 +171,16 @@ func resizeImage(reader io.Reader, size int) ([]byte, error) { if err != nil { return nil, err } - m := imaging.Resize(img, size, size, imaging.Lanczos) + + // Preserve the aspect ratio of the image. + var m *image.NRGBA + bounds := img.Bounds() + if bounds.Max.X > bounds.Max.Y { + m = imaging.Resize(img, size, 0, imaging.Lanczos) + } else { + m = imaging.Resize(img, 0, size, imaging.Lanczos) + } + buf := new(bytes.Buffer) err = jpeg.Encode(buf, m, &jpeg.Options{Quality: conf.Server.CoverJpegQuality}) return buf.Bytes(), err diff --git a/ui/src/album/AlbumGridView.js b/ui/src/album/AlbumGridView.js index 07a6e337..8476217b 100644 --- a/ui/src/album/AlbumGridView.js +++ b/ui/src/album/AlbumGridView.js @@ -77,6 +77,7 @@ const useCoverStyles = makeStyles({ cover: { display: 'inline-block', width: '100%', + 'object-fit': 'contain', height: (props) => props.height, }, })