从照片库快速调整图像(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 OS 图像/照片大小调整工具更改 EXIF 方向数据
从 iPhone 的照片库中调整方形裁剪图像的正确方法而不会失真