ios9下照片浏览模糊的解决方法(ALAsset.thumbnail模糊)

原创 2015年10月12日 18:59:13

    在ios9下,使用ALAsset方式实现的照片浏览器都存在照片模糊的问题,但是目前能找到的大部分开源的照片浏览器都是使用这个框架编写的。

    我们通常用以下方法获得照片缩略图:

self.image = [UIImage imageWithCGImage:self.asset.thumbnail];


调试发现,在ios8上,照片尺寸是150*150,而在ios9上,这个尺寸变成了75*75。

查看apple文档,发现ALAsset已经被废弃了,建议使用新的Photos框架。

https://developer.apple.com/library/ios/samplecode/UsingPhotosFramework/Introduction/Intro.html


不过重写照片浏览器是比较费时的,如果项目比较紧张,可以使用以下方法过渡一下:

self.image = [UIImage imageWithCGImage:self.asset.aspectRatioThumbnail];


aspectRatioThumbnail获得的是原始照片的缩略图,注意不是方图,所以显示这个照片的view需要

[imageView setContentMode:UIViewContentModeScaleAspectFill];


这个办法带来的附加问题是:性能。由于aspectRatioThumbnail图片尺寸比较大,所以显示不是很流畅(iPhone5),异步裁切一下可以解决。

__weak typeof(self) weakself = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //裁切
    weakself.image = [weakself.image imageCroppedToFitSize:(CGSize){150,150}];
    dispatch_async(dispatch_get_main_queue(), ^{
        //完成,设置到view
        [weakself.imageView setImage:weakself.image];
    });
});

好了,现在可以慢慢替换成Photos框架了,不过,如果你要继续支持ios7,貌似ALAsset还是要保留的(就是需要两套读图库的接口)。




版权声明:本文为博主原创文章,未经博主允许不得转载。博主微信:lofocus

相关文章推荐

IOS探索之从拍照中获取图像对应的ALAsset

打开相机 //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库 UIImagePickerControllerSourceTy...

iOS AssetsLibrary和Photos的使用总结(2): 原图获取

- (UIImage *)originImage { @autoreleasepool { if (_originImage) { return _or...

ALAsset和ALAssetRepresentation详解

ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小...
  • sbvfhp
  • sbvfhp
  • 2013年10月07日 14:53
  • 10057

使用ALAssetsLibrary读取所有照片

一. ALAssetsLibrary 介绍 ALAssetsLibrary 提供了访问iOS设备下”照片”应用下所有照片和视频的接口; 从 ALAssetsLibrary 中可读取所有的相...

ALAssetsLibrary的使用问题:获取到ALAsset的thumbnail或者其他属性保存数组,在别地地方为nil的问题处理

我们在block方法中通过UIImage *image = [UIImage imageWithCGImage:asset.thumbnail];能拿到图片,但在其他地方再次调用时却为nil了, 解决...

iOS 史上最全的图片压缩方法集合

做上传图片功能,特别是类似于微信,QQ里面,发布9张图片, 少不了碰到一个问题,就是图片压缩问题,当然我也遇到了. 我研究了这个问题,发现网上普遍的方法是如下 上面的方法比较常见,可是需要加载到内存中...

iOS 获取图像的方式与坑点

请求图像(这里有巨坑) 关于PHImageManager类,NSHipster 有篇总结文章不错。 - requestImageForAsset:targetSize:contentM...
  • jeffasd
  • jeffasd
  • 2016年01月05日 21:13
  • 10324

ios 相册获取图片模糊解决办法

将黑色字体代码注释掉,修改为红色代码,就可以解决照片模糊的问题 //现在非模糊的代码,防止照片太模糊 UIImage *posterImage = (asset.aspectRa...

使用ALAsset处理多图片选择后,图片显示不清晰

使用ALAsset处理多图片选择后,图片显示不清晰 UIImage设置不方法不当造成图片不清晰 ALAsset *asset 不清晰的设置方法如下: UIImage...

用ALAsset获取相册原图

最近在用ALAsset获取相册时候,ALAsset的ALAssetRepresentation只提供了全尺寸图、全屏幕图、metadata等,但是将这些转换成NSData的时候,尺寸都不精确,不是变大...
  • yqmfly
  • yqmfly
  • 2015年11月16日 11:44
  • 4577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios9下照片浏览模糊的解决方法(ALAsset.thumbnail模糊)
举报原因:
原因补充:

(最多只允许输入30个字)