2015-03-13 5 views
2

Я ищу решение, как я могу показать эскизы изображений, сохраненных в библиотеке фотографий. Я знаю, что есть метод для миниатюры, но результат слишком мал (а для противоположного полноэкранного размера слишком большой). Я хотел бы установить собственный размер миниатюры, который я хочу. Я пытался найти любое решение, но я думаю, что это было слишком сложно. Теперь у меня есть эти методы, показывая пальцы:Быстрое изменение размера изображений (ALAssets) из библиотеки фотографий для миниатюр

func setFromAlbum(album:ALAssetsGroup) { 
    //self.imageView.image = UIImage(CGImage:album.posterImage().takeUnretainedValue()) 

    album.enumerateAssetsWithOptions(NSEnumerationOptions.Reverse, usingBlock: { 
     (asset: ALAsset!, index: Int, stop: UnsafeMutablePointer<ObjCBool>) -> Void in 
     if ((asset) != nil) // first non-nil element will be the recent asset 
     { 
      var assetRep: ALAssetRepresentation = asset.defaultRepresentation() 
      self.imageView.image = UIImage(CGImage: assetRep.fullScreenImage().takeUnretainedValue()) 
      stop.initialize(true) 
     } 
    }) 
} 

и это для показа эскизов фотографий:

func setFromAsset(asset:ALAsset) { 
    let assetRep: ALAssetRepresentation = asset.defaultRepresentation() 
    let image = UIImage(CGImage: assetRep.fullScreenImage().takeUnretainedValue()) 
    self.photoImageView.image = image 
} 

Я пробовал это, но без успеха:

func setFromAsset(asset:ALAsset) { 

    let imageOptions:[NSObject: AnyObject] = [ 
     kCGImageSourceThumbnailMaxPixelSize : 20 
    ] 
    let assetRep: ALAssetRepresentation = asset.defaultRepresentation() 
    let imageRef = assetRep.CGImageWithOptions(imageOptions).takeUnretainedValue() 
    let image = UIImage(CGImage: imageRef) 
    self.photoImageView.image = image 
} 

Я попытался несколько ключей в словаре с разными значениями, но не может работать. Я обнаружил, что способ CGImageSourceCreateThumbnailAtIndex может помочь мне, но примеры были только в Objective C, и мне было слишком много, чтобы заставить его работать.

Так может кто-нибудь помочь мне, как я могу создавать эскизы с нестандартным размером из ALAssets? С великолепными показательными выступлениями. Thanks

ответ

0
let objAlAsset = arrayImages.objectAtIndex(0) as! ALAsset 
var image = UIImage(CGImage:objAlAsset.aspectRatioThumbnail().takeUnretainedValue()) 
let imgData = UIImageJPEGRepresentation(image, 1.0) 
+0

Пожалуйста, избегайте давать ответы только на код. Попробуйте объяснить, как ваш код решает проблему OP. Помогите тем менее опытным понять ваше решение. –

+0

Да, давид, я извиняюсь за это. – kalpesh