アプリでカメラを起動をして写真を撮影し、撮影した写真を40%のサイズにリサイズしたいと思っています。
参考にしたサイトは以下になります。
http://docs.fabo.io/swift/uikit/059_uiimage.html
記述したコードは以下になります。
Swift
1extension UIImage{ 2 // Resizeするクラスメソッド. 3 func ResizeÜIImage(width : CGFloat, height : CGFloat)-> UIImage!{ 4 // 指定された画像の大きさのコンテキストを用意. 5 UIGraphicsBeginImageContext(CGSize(width: width, height: height)) 6 // コンテキストに自身に設定された画像を描画する. 7 self.draw(in: CGRect(x: 0, y: 0, width: width, height: height)) 8 // コンテキストからUIImageを作る. 9 let newImage = UIGraphicsGetImageFromCurrentImageContext() 10 // コンテキストを閉じる. 11 UIGraphicsEndImageContext() 12 13 return newImage 14 } 15} 16 17class ViewController: UIViewController { 18 19 @IBAction func sendPic(_ sender: AnyObject) { 20 21 var resizeWidth:CGFloat = 0 22 resizeWidth = (cameraView.image?.size.width)! * 0.4 23 24 var resizeHeight:CGFloat = 0 25 resizeHeight = (cameraView.image?.size.height)! * 0.4 26 27 // リサイズ後のUIImageを用意. 28 let image:UIImage! = cameraView.image?.ResizeÜIImage(width: resizeWidth, height: resizeHeight) 29 } 30}
カメラで撮影した画像(cameraView.image)がリサイズ関数(ResizeÜIImage)を通ってリサイズされ、
リサイズ後の値(image)が取得できればと思っています。
コンパイルは通って実行もできるのですが、サイズは変更されませんでした。
誤っている箇所があればご指摘をいただきたいです。
また、もっと簡潔な方法があるのでしたらご教授いただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。