diff --git a/core/artwork.go b/core/artwork.go index 7f747eaf9..8bb319b97 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 07a6e3375..8476217b3 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, }, })