ios给图片添加创建时间(二)

  终于又有时间来续写剩下的部分了。

  在上一篇中,拍照片时,获取本地时间,然后绘制在图片上,最后保存到相册中,严格意义上讲,这不算是获取照片的时间。

  对于一张很久之前拍摄的照片(使用系统相机拍摄,没有时间),要获取时间,就靠下面的内容了:

1,导入 AssetLibray.framework,使用其中的ALAssetLibrary 类。在使用这个framework时,会提示开启定位服务(这个地方我也觉得很奇怪,后来查了下资料,发现是苹果的一个漏洞,貌似在ios6中已经修复了)。

2,仍然使用UIImagePickerController来获取系统相册中的某一张照片。

3,获取具体某一张照片的时间,在UIImagePicerController的代理函数:- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 中进行。


其实没有太多需要解释的,直接上获取相片时间的具体代码了。为了大家方便的看到关键代码,我会标红,希望大家喜欢“见红”。大家一看遍知,这是block中进行处理的。。。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSURL* imageUrl = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
    ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
    [library assetForURL:imageUrl resultBlock:^(ALAsset *asset) {
        _image = [UIImage imageWithCGImage:asset.defaultRepresentation.fullResolutionImage];  

        if(_image)
        {
            NSDate* pictureDate = [asset valueForProperty:ALAssetPropertyDate];

          //下面是我自己的处理函数,我在第一篇中进行了简单介绍的,有性趣去看一下。
        UIImage* resultImage =[ImageUtility addTimeString:[DateUtility getFormatedDateStringOfDate:pictureDate] toCurrentImage:_image withBoolValue:YES];
            if (resultImage)
            {
//将带有时间的image显示在imageView上,没有比这更简单的代码了。
                self.imageView.image = resultImage;

            }
        }
    } failureBlock:^(NSError *error) {
 
//检测是否开启了定位功能。
        if ([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorized)
        {
            UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"请先开启定位功能" message:@"由于ios系统的限制,读取照片时间需开启定位,请您到系统设置中进行设置" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
            [alert show];
        }
    }];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值