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];
        }
    }];
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
源码WZRecyclePhotoStackView,大家想象一下,自己当捧着一堆照片的时候,我们是如何去放置我们的照片的? 可能我们会挑选出我们喜欢的照片放到相册中珍藏,也有可能我们把不喜欢的扔掉。 同时我们还会存在犹豫不觉的情况,觉得,哎,我先放到后面去,一会再看吧。 当然,也有可能,您会考虑,哎,我之前一张是什么图来着,我忘记了,我拿回来看看。 WZRecyclePhotoStackView就是模拟这种生活中的情形而产生的。 在上滑,下滑的部分,借鉴了TinderSimpleSwipeCards 这个StackView的优势是什么? 采用了内存池的设计方式,对于非图片开销,只生成了两个(可配置个数)的容器循环复用 避免了一次性加载数据的内存开销和时间损耗,通过可配置的方式将大量的数据通过多次小部分添加加载进内存中。 同时通过预取的方式将这些新的数据自动补充进需要显示的位置。(在预取过程中您完全可以按照需要修改为异步回调形式) 支持左滑、右滑操作。右滑跳过当前照片,将照片置为底部,最后查看。左滑将底部照片拉回顶部,设置为当前查看。 高度定制化 使用方法: 创建WZPhotoStackView对象并初始化: self.stackView = [[WZPhotoStackView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))]; [self.view addSubview:self.stackView]; self.stackView.delegate = self; self.stackView.dataSource = self;
创建一个简单的 iOS 5 iPhone App 教程 Phone 对独立软件开发者来说是个很棒的平台。也许你都没想过能简单的使用一些代码就拥有实现自己想法的应用,并有数以百万计的潜在客户! 最近,我已经得到了很多人新的iOS开发者询问如何开始的问题。所以,我认为写一个专为初学者的教程系列将是有益的。 但我们不会只专注一个主题,我们将深入的创建一个完整功能的应用。到最后,你将尝试到 iPhone 开发的许多领域,为未来开发您的应用做好准备。 那么,什么是我们要的应用?嗯,有一个背后的故事...... 一天晚上,我看到 Potato Bug ,并开始吓坏了,因为它是如此之大又丑!然后,我就痴迷于在线寻找各种可怕的虫子图片。并为传播它们为乐,我们打算使一个应用程序 - 评级可怕的虫子! 制作这个应用程序的同时,我们将介绍一些iPhone开发中最常用的主题: • iPhone 开发者入门 • 如何使用模型对象在您的应用中存储数据 • 如何使用 Table Views – 包括添加与删除行 • 如果为表行创建一个详情视图 • 如何支持 Portrait & Landscape 双方向 • 如何使用 Navigation 控制器 • 如何使用图片选择器 • 如何使用一般控件,如文本字段,按钮,图片视图 • 如何添加图标与默认图片 • 奖励:如何处理长时间运行的操作 看起来似乎很多东西,不过不要紧张 – 我们不怕有错误! 此教程分三段,这里是第一段, 我们将讨论如何加载我们的模型的虫子列表,并将它们显示在表视图上。 (跳转到第部分或第三部分) 本教程是iOS开发初学者的,但它假定您熟悉Objective-C和一般编程。如果您不了解 Objective-C , 请先阅读苹果Objective-C 编程语言手册 。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值