From d41faeb71e3cb2f5e93fa800af80e443d03b3dd4 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Mon, 1 Apr 2019 20:38:09 -0400 Subject: [PATCH] Maintain aspect ratio when resizing images --- Persephone/Extensions/NSImage.swift | 12 +++++++++++- Persephone/Resources/AlbumViewItem.xib | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Persephone/Extensions/NSImage.swift b/Persephone/Extensions/NSImage.swift index a7b6a96..08c32a1 100644 --- a/Persephone/Extensions/NSImage.swift +++ b/Persephone/Extensions/NSImage.swift @@ -15,7 +15,17 @@ extension NSImage { static let defaultCoverArt = NSImage(named: "blankAlbum") func toFitBox(size: NSSize) -> NSImage { - let newImage = NSImage(size: size) + var newSize: NSSize = NSSize.zero + let aspectRatio = self.size.width / self.size.height + let boxAspectRatio = size.width / size.height + + if aspectRatio > boxAspectRatio { + newSize = NSSize(width: size.width, height: size.width / aspectRatio) + } else { + newSize = NSSize(width: size.height * aspectRatio, height: size.height) + } + + let newImage = NSImage(size: newSize) newImage.lockFocus() self.draw(in: newImage.alignmentRect) newImage.unlockFocus() diff --git a/Persephone/Resources/AlbumViewItem.xib b/Persephone/Resources/AlbumViewItem.xib index a2bf2bf..97b0981 100644 --- a/Persephone/Resources/AlbumViewItem.xib +++ b/Persephone/Resources/AlbumViewItem.xib @@ -1,8 +1,8 @@ - + - + @@ -37,7 +37,7 @@ - +