2015-03-13 85 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中的自定義大小創建縮略圖?具有出色的演出表現。謝謝

回答

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

請避免給出代碼的答案。嘗試解釋您的代碼如何解決OP的問題。幫助那些經驗較少的人瞭解您的解決方案 – 2016-12-21 08:19:56

+0

是的大衛,我爲此道歉。 – kalpesh 2016-12-21 08:52:14