カメラ機能の連続撮影ではなく「連写」にするために、基本的な動作実験をRun Logger でやってみた。
カメラで撮影した結果は imagePickerController:didFinishPickingImage:editingInfo コールバックで取得できるが、その後のフローは
1)拡大処理用クリップ動作
2)画像の縮小(600x800にするなど)
3)日付の追加
必要に応じて、MAP画像合成
4)画像保存
にしているが、スピードを計ったら以下の様な結果だった。
1)動作終了までだと 6.9秒/8枚程度
2)動作終了までだと 25.5秒/8枚程度
3)動作終了までだと 23.1秒/8枚程度
4)画像保存 27秒/8枚程度
この結果から分かるのは
1.普通にしては1秒/枚程度のスピードしか出ない
(内部メモリーに結果を保存して、撮影後にまとめて書くようにした場合)
2.スピードが遅いのは画像縮小処理
(drawInRect処理が遅い)
ですね。
カメラアプリでは、0.1秒/枚のスピードが出ている物もあるので、まともな方法ではなく、相当の工夫をして有るようですね。
方法としては、アップルが禁止しているような、内部クラスから直接画像を取得する方式にすれば良いのだろうが、そうするとApp-Storeで売れないから。。。別な方法があるのでしょうね
カメラアプリも難しい物ですね
カメラで撮影した結果は imagePickerController:didFinishPickingImage:editingInfo コールバックで取得できるが、その後のフローは
1)拡大処理用クリップ動作
2)画像の縮小(600x800にするなど)
3)日付の追加
必要に応じて、MAP画像合成
4)画像保存
にしているが、スピードを計ったら以下の様な結果だった。
1)動作終了までだと 6.9秒/8枚程度
2)動作終了までだと 25.5秒/8枚程度
3)動作終了までだと 23.1秒/8枚程度
4)画像保存 27秒/8枚程度
この結果から分かるのは
1.普通にしては1秒/枚程度のスピードしか出ない
(内部メモリーに結果を保存して、撮影後にまとめて書くようにした場合)
2.スピードが遅いのは画像縮小処理
(drawInRect処理が遅い)
ですね。
カメラアプリでは、0.1秒/枚のスピードが出ている物もあるので、まともな方法ではなく、相当の工夫をして有るようですね。
方法としては、アップルが禁止しているような、内部クラスから直接画像を取得する方式にすれば良いのだろうが、そうするとApp-Storeで売れないから。。。別な方法があるのでしょうね
カメラアプリも難しい物ですね
※コメント投稿者のブログIDはブログ作成者のみに通知されます