2015-03-13 83 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