#方法
UIGraphicsImageRenderer
を使用することで、画像のデータサイズを変更することができます。
以下のExtension
を使用することで、resizedメソッド
が使えます。
(参考: https://stackoverflow.com/questions/29137488/how-do-i-resize-the-uiimage-to-reduce-upload-image-size)
extension UIImage {
//データサイズを変更する
func resized(withPercentage percentage: CGFloat) -> UIImage? {
let canvas = CGSize(width: size.width * percentage, height: size.height * percentage)
return UIGraphicsImageRenderer(size: canvas, format: imageRendererFormat).image {
_ in draw(in: CGRect(origin: .zero, size: canvas))
}
}
}
var usersImage = UIImage()
//ここでは、UIImagePickerControllerを使用しています。
let pickerImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
//pickerで取得したUIImageのサイズを90%カットする。
let resizedImage = pickerImage?.resized(withPercentage: 0.1)
//usersImageに代入する
usersImage = resizedImage
#UIGraphicsImageRenderer
とは?
A graphics renderer for creating Core Graphics-backed images.
(和訳:Core Graphics
-backed画像を作成するためのグラフィックスレンダラー。)
(引用: https://developer.apple.com/documentation/uikit/uigraphicsimagerenderer)
#####Core Graphics
とは?
Quartz
テクノロジーのパワーを活用して、高忠実度の出力で軽量の2Dレンダリングを実行します。パスベースの描画、アンチエイリアスレンダリング、グラデーション、画像、カラーマネジメント、PDFドキュメントなどを処理します。
(引用: https://developer.apple.com/documentation/coregraphics)
#####Quartz
とは?
ユーザーがスライドショーとCore Imageフィルターを使用して、画像を閲覧、編集、保存できるようにします。
(引用: https://developer.apple.com/documentation/quartz)
###つまり?
UIGraphicsImageRenderer
は、Core GraphicsフレームワークとQuartzフレームワークを使用して、画像(UIImage)の作成や編集を実行します。
#引用文献(スペシャルサンクス)