###前提・実現したいこと
swiftで日記アプリを作っています。
実現したいことは、ユーザーが選んだ写真4枚(asset)をUIImageに変換して、documentフォルダに保存後、画面遷移という一連の処理のスピードが遅いので、それを速くすることです。
速く処理が終わることもあるのですが、処理に時間がかかることもあり、まちまちな状況です。
他の日記アプリでは写真4枚をもっと速く保存することができるのですが、
何か処理を速くする方法があるのでしょうか。
よろしくお願いします。
###発生している問題・エラーメッセージ
assetをUIImageに変換する以下の部分で時間がかかってしまいます。
manager.requestImageForAsset(asset, targetSize:size , contentMode: .AspectFill, options: options, resultHandler: {(image,info)->Void in self.data = UIImageJPEGRepresentation(image!,1.0)
###該当のソースコード
swift
1 2 let options = PHImageRequestOptions() 3 // options.deliveryMode = PHImageRequestOptionsDeliveryMode.HighQualityFormat 4 options.networkAccessAllowed = true 5 options.synchronous = true 6 7 8 let asset = selectPhots[ind] 9 10 let manager = PHImageManager() 11 12 13 var minRatio:CGFloat = 1 14 15 if CGFloat(asset.pixelWidth) > UIScreen.mainScreen().bounds.width || CGFloat(asset.pixelHeight) > UIScreen.mainScreen().bounds.height{ 16 17 minRatio = min(UIScreen.mainScreen().bounds.width / CGFloat(asset.pixelWidth), UIScreen.mainScreen().bounds.height / CGFloat(asset.pixelHeight)) 18 19 } 20 21 22 let size:CGSize = CGSizeMake(CGFloat(asset.pixelWidth)*minRatio + 125, CGFloat(asset.pixelHeight)*minRatio) 23 24 manager.requestImageForAsset(asset, targetSize:size , contentMode: .AspectFill, options: options, resultHandler: {(image,info)->Void in 25 26 27 self.data = UIImageJPEGRepresentation(image!,1.0) 28 self.data?.writeToFile(filepath, atomically: true) 29 30 31 }) 32 33
###試したこと
ターゲットサイズを調整したり、optionのdeliveryModeなどを変更してみたりしましたが、スピード改善にはつながりませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。