iOS 8, de Charger des Images Rapide De PHAsset

J'ai une application qui permet aux gens de combiner jusqu'à 4 photos. Cependant, quand je les laisse choisir à partir de leurs photos (jusqu'à 4), il peut être très lente, même lorsque j'ai mis la qualité de l'image à FastFormat. Il va prendre 4 secondes (environ 1 seconde par photo). Sur la plus haute qualité, 4 images prend 6 secondes.

Pouvez-vous suggérer de toute façon je obtenir les images plus vite?

Ici est le bloc où je traite les images.

func processImages()
{
_selectediImages = Array()
_cacheImageComplete = 0
for asset in _selectedAssets
{
var options:PHImageRequestOptions = PHImageRequestOptions()
options.synchronous = true
options.deliveryMode = PHImageRequestOptionsDeliveryMode.FastFormat
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize:CGSizeMake(CGFloat(asset.pixelWidth), CGFloat(asset.pixelHeight)), contentMode: .AspectFit, options: options)
{
result, info in
var minRatio:CGFloat = 1
//Reduce file size so take 1/3 the screen w&h
                    if(CGFloat(asset.pixelWidth) > UIScreen.mainScreen().bounds.width/2 || CGFloat(asset.pixelHeight) > UIScreen.mainScreen().bounds.height/2)
{
minRatio = min((UIScreen.mainScreen().bounds.width/2)/(CGFloat(asset.pixelWidth)), ((UIScreen.mainScreen().bounds.height/2)/CGFloat(asset.pixelHeight)))
}
var size:CGSize = CGSizeMake((CGFloat(asset.pixelWidth)*minRatio),(CGFloat(asset.pixelHeight)*minRatio))
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
result.drawInRect(CGRectMake(0, 0, size.width, size.height))
var final = UIGraphicsGetImageFromCurrentImageContext()
var image = iImage(uiimage: final)
self._selectediImages.append(image)
self._cacheImageComplete!++
println(self._cacheImageComplete)
if(self._cacheImageComplete == self._selectionCount)
{
self._processingImages = false
self.selectionCallback(self._selectediImages)
}
}
}
}
  • Cela peut être aider à obtenir ce dont vous avez besoin, sans beaucoup plus d'efforts. Jetez un oeil à iOS code pas besoin de courir Réagir Native code : stackoverflow.com/questions/49305438/...
InformationsquelleAutor Aggressor | 2014-12-10