从照片库快速调整图像(ALAssets)的大小以获取缩略图

Posted

技术标签:

【中文标题】从照片库快速调整图像(ALAssets)的大小以获取缩略图【英文标题】:Swift resizing images (ALAssets) from Photo library for thumbnails 【发布时间】:2015-03-13 19:23:43 【问题描述】:

我正在寻找解决方案,如何显示照片库中保存的图像的缩略图。我知道有缩略图的方法,但结果太小(并且相反的全屏尺寸太大)。我想设置我想要的缩略图的自定义大小。我试图寻找任何解决方案,但我认为它太复杂了。现在我有这些显示拇指的方法:

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 创建具有自定义大小的缩略图吗?有着精彩的表演。谢谢

【问题讨论】:

【参考方案1】:
let objAlAsset = arrayImages.objectAtIndex(0)  as! ALAsset
var image = UIImage(CGImage:objAlAsset.aspectRatioThumbnail().takeUnretainedValue())
let imgData = UIImageJPEGRepresentation(image, 1.0)

【讨论】:

请避免仅给出代码答案。尝试解释您的代码如何解决 OP 的问题。帮助经验不足的人了解您的解决方案。

以上是关于从照片库快速调整图像(ALAssets)的大小以获取缩略图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 中以高质量调整图像大小

在 iOS 中调整图像大小并保持其纵横比

iPhone OS 图像/照片大小调整工具更改 EXIF 方向数据

从 iPhone 的照片库中调整方形裁剪图像的正确方法而不会失真

iOS 5 - ALAssets 库 - 将视频的 URL 从资产转换为 NSDATA 文件

通过保护 Django 上的纵横比来调整照片大小