Swiftを使用して以下のことを行いたいのですが、1で撮影した画像を2で呼び出せなくて困っています。
1. Swiftでカメラを起動させ撮影(CameraViewController)
2. シーンを切り替えて撮影した画像の表示(CropViewController)
3. その画像を編集(トリミング)する(CropViewController)
私が行っている手順としては、まずCameraViewControllerで
let CameraData = NSUserDefaults.standardUserDefaults() // 設定保存
これを宣言しておいて、作成したカメラのシャッターボタンを押した時に取得した画像をJpegに変換し、それからUIImageを作成し、imageをPNGに変換し、CameraDataに保存しました。
// 取得したImageのDataBufferをJpegに変換 let myImageData : NSData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataBuffer) // JpegからUIIMageを作成 let myImage : UIImage = UIImage(data: myImageData)! // 画像保存 var imageData = UIImagePNGRepresentation(myImage) //imageをPNGに変換(NSData) self.CameraData.setObject(imageData, forKey: "Phote") // 画像を保存
そのあとに画面遷移を行いCropViewControllerで保存した画像を表示させたいのですが、
// ImageView
var myImageView: UIImageView!
/**
- 最初に呼び出されるメソッド
*/
override func viewDidLoad() {
super.viewDidLoad()
let myInputImage: AnyObject? = CameraData.objectForKey("Phote") // 撮った画像呼び出し // UIImageViewの生成 myImageView = UIImageView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)) myImageView.image = myInputImage // ここがエラー self.view.addSubview(myImageView)
}
myImageViewにmyInputImageを入れることができず、真っ暗の画面が表示されてしまいます。エラー内容は
Cannot assign a value of type 'AnyObject?' to a value of type 'UIImage?'
でした。型が違うので代入できないとのことですが、どのようにすればわかりませんでした。
ちなみにカメラの起動と撮影を参考にしたサイトはこちらです。
https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/3-avfoundation/002-kamerano-qi-dongto-hua-xiangno-bao-cun
少し見ずらい文章になってしまい申し訳ないですが、どなたか教えてください。よろしくお願いしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/08 16:14
2016/01/09 09:10