UIImageの縦横サイズを変更する方法についてのメモ。
今作っている日記アプリで、iPhoneのカメラロールから取得したUIImageの縦横サイズがかなり大きかったため複数枚画像を表示すると動きがもっさりしてしまいました。
なので、取得したUIImageをリサイズして縮小表示させたところもっさり感が改善しました。
UIImageの縦横サイズを変更する方法
UIImageの縦横サイズは以下の方法で変更できます。
//UIImage リサイズ extension UIImage { func resize(size _size: CGSize) -> UIImage? { let widthRatio = _size.width / size.width let heightRatio = _size.height / size.height let ratio = widthRatio < heightRatio ? widthRatio : heightRatio let resizedSize = CGSize(width: size.width * ratio, height: size.height * ratio) UIGraphicsBeginImageContextWithOptions(resizedSize, false, 0.0) // 変更 draw(in: CGRect(origin: .zero, size: resizedSize)) let resizedImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return resizedImage } }
UIImageクラスを拡張して、リサイズするメソッドを追加してます。
使い方は以下のような感じです↓
// サイズを定義する let Resize:CGSize = CGSize.init(width: 100, height:100) //UIImageを指定のサイズにリサイズ let imageResize = image.resize(size: Resize)