【Swift4】UIImageをアスペクト比をそのままにリサイズする方法
UIImageを指定した横幅を元に、画像のアスペクト比をそのままにリサイズする方法です。
リサイズする手順は以下のような手順になります。
1.リサイズ用の大きさを作成
2.リサイズ用の大きさのContextを作成
3.Contextに、リサイズ用サイズで画像を描画
4.コンテキストからUIImageに変換
UIImageをアスペクト比をそのままにリサイズする方法
func resize(image: UIImage, width: Double) -> UIImage {
// オリジナル画像のサイズからアスペクト比を計算
let aspectScale = image.size.height / image.size.width
// widthからアスペクト比を元にリサイズ後のサイズを取得
let resizedSize = CGSize(width: width, height: width * Double(aspectScale))
// リサイズ後のUIImageを生成して返却
UIGraphicsBeginImageContext(resizedSize)
image.draw(in: CGRect(x: 0, y: 0, width: resizedSize.width, height: resizedSize.height))
let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return resizedImage!
}