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 https://blog.csdn.net/cuibo1123/article/details/49077923

IOS 调取系统相册 ios9 图片模糊问题

我做的调用系统相册功能,在iOS9之前,照片的显示都是正常的。但是升级iOS9之后,照片变模糊啦,真是坑爹啊!无奈还得想办法解决。iOS9之前显示照片的方法如下: UIImage *photoIma...
  • qq_33846248
  • qq_33846248
  • 2016-06-24 16:03:39
  • 1013

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

将黑色字体代码注释掉,修改为红色代码,就可以解决照片模糊的问题 //现在非模糊的代码,防止照片太模糊 UIImage *posterImage = (asset.aspectRa...
  • robinson_911
  • robinson_911
  • 2016-02-26 20:47:22
  • 1168

cocos2dx3.x 图片模糊解决方法

最近做cocos2dx ,由于在window平台上运行的游戏,故出很多问题,图片模糊就是其中一个。 下面给出我的解决方案,(由于用的cocostudio 加载的图片文件,故只能改源码解决了)(个人建议...
  • xie1xiao1jun
  • xie1xiao1jun
  • 2014-08-25 11:50:38
  • 6062

使用ALAssetsLibrary读取所有照片

一.ALAssetsLibrary介绍 ALAssetsLibrary提供了访问iOS设备下”照片”应用下所有照片和视频的接口; 从ALAssetsLibrary中可读取所有的相册数据,即ALAs...
  • LIN1986LIN
  • LIN1986LIN
  • 2014-03-20 13:02:00
  • 7188

用ALAsset获取相册原图

最近在用ALAsset获取相册时候,ALAsset的ALAssetRepresentation只提供了全尺寸图、全屏幕图、metadata等,但是将这些转换成NSData的时候,尺寸都不精确,不是变大...
  • yqmfly
  • yqmfly
  • 2015-11-16 11:44:57
  • 5111

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

打开相机 //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库 UIImagePickerControllerSourceTy...
  • u011740322
  • u011740322
  • 2016-01-07 11:40:02
  • 2526

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

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

Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理

前言        java开发中经常遇到对图片的处理,JDK中也提供了对应的工具类,不过处理起来很麻烦,Thumbnailator是一个优秀的图片处理的开源Java类库,处理效果远比Java API...
  • chenleixing
  • chenleixing
  • 2015-03-27 23:22:31
  • 23830

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

在ios9下,使用ALAsset方式实现的照片浏览器都存在照片模糊的问题,但是目前能找到的大部分开源的照片浏览器都是使用这个框架编写的。    我们通常用以下方法获得照片缩略图:self.image ...
  • cuibo1123
  • cuibo1123
  • 2015-10-12 18:59:13
  • 7202

ALAsset和ALAssetRepresentation详解

ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小...
  • kingsley_cxz
  • kingsley_cxz
  • 2013-06-25 11:48:45
  • 17399
收藏助手
不良信息举报
您举报文章:ios9下照片浏览模糊的解决方法(ALAsset.thumbnail模糊)
举报原因:
原因补充:

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