IOS 照片操作(获取信息及修改照片)详解

IOS 照片操作(获取信息及修改照片)

最近客户想要一个照片水印,并修改其他内容包括获取位置,和修改事件等,哦,可以的呢,我想起了uiview变UIimage 的方法可以的

<span style="font-size:14px;">- (UIImage*)convertViewToImage:(UIView*)v
{
  CGSize s = v.bounds.size;
  UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale); 

  CGContextRef context = UIGraphicsGetCurrentContext(); 

  [v.layer renderInContext:context]; 

  UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext(); 

  v.layer.contents = nil;
  return image; 

}</span><span style="font-size:12px;">
</span>

但是加的内容就是照片的时间还有GPS地位,略隐私是不

哼,我想到了 UIImagePickerController里面的回调可以拍照片也可以从相册里取出来

<span style="font-size:14px;">- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {</span>

<span style="font-size:14px;">     //info里面有大文章</span>

<span style="font-size:14px;">}</span>

ok先看拍照,拍照的info里面含有三个参数

<span style="font-size:14px;">UIImagePickerControllerMediaMetadata  //详细数据,应有尽有 exif吧
UIImagePickerControllerMediaType    //类型,jpg,png这类的
UIImagePickerControllerOriginalImage  //尺寸</span> 

我们所需要的数据就在 info[UIImagePickerControllerMediaMetadata] 找就可以了。时间什么的贼详细

下一个是从相册拿出来的,相册拿出来的info也是三个,只不过把

UIImagePickerControllerMediaMetadata 换成了 UIImagePickerControllerReferenceURL 看见url亲爹啊,地址。

IOS8出来了新的照片库 <Photos/Photos.h>

以前那个ass的不用了,我也不会用 哼

<span style="font-size:14px;">PHAsset *asset = [PHAsset fetchAssetsWithALAssetURLs:@[assetURL] options:nil][0];</span>

这就完了?恩,信息都在asset里了。里面信息挺全的,直接拿就好了。

注意我们有时候需要地址里面恰好有地址出来
@property (nonatomic,strong, readonly,nullable) CLLocation *location;

就这个,里面由经纬度,有了经纬度咱们要还原一下住址,开始我以为这个里面是地球坐标,没想到这里已经是符合我们社会主义核心价值观的火星坐标了。

亏我还找办法来转换,这个直接就是放进去等待回调出地址就可以了

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • iOS开发之通过银行卡号获取所属银行名称

    废话不多说了,直接给大家贴代码了,具体代码如下所示: #pragma mark - 根据银行卡号判断银行名称 + (NSString *)getBankName:(NSString*) cardId{ //发卡行.卡种名称 NSArray *bankName = @[@"邮储银行·绿卡通", @"邮储银行·绿卡银联标准卡", @"邮储银行·绿卡银联标准卡" , @"邮储银行·绿卡专用卡" , @"邮储银行·绿卡银联标

  • iOS 隐藏导航条和状态栏实现方法

     iOS  隐藏导航条和状态栏实现方法 状态栏的高度是20,导航栏的高度是44,如果同时存在状态栏的导航条,我们通常会设置view上的控件的位置的X 大于等于 64. 一:隐藏导航条:self.navigationController.navigationBarHidden = YES; 二:隐藏状态栏: 第一步:在info.plist 文件里增加两个类型(Type)为bool 选项, Status bar is initially hidden 设为YES:View controller-ba

  • iOS自定义提示弹出框实现类似UIAlertView的效果

    首先来看看实现的效果图 下面话不多说,以下是实现的示例代码 #import <UIKit/UIKit.h> typedef void(^AlertResult)(NSInteger index); @interface XLAlertView : UIView @property (nonatomic,copy) AlertResult resultIndex; - (instancetype)initWithTitle:(NSString *)title message:(NSString

  • IOS获取各种文件目录路径的方法

    iphone沙箱模型有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它应该定期备份的信息. 2.AppName.app 目录:这是应用程序的程序包目录,包

  • IOS开发代码分享之设置UISearchBar的背景颜色

    今天用到UISearchBar,之前网上提供的方法已经不能有效的去除掉它的背景色了,修改背景色方法如下: mySearchBar.backgroundColor = RGBACOLOR(249,249,249,1);     mySearchBar.backgroundImage = [self imageWithColor:[UIColor clearColor] size:mySearchBar.bounds.size];   //取消searchbar背景色 - (UIImage *)im

  • iOS 防止按钮多次点击造成多次响应的方法

    iOS 防止按钮多次点击造成多次响应的方法 在日常开发中经常会碰到一种bug就是因为用户快速点击某个按钮,导致页面重复push或者重复发送网络请求.这样的问题既对用户体验有影响,而且还会一定程度上增加服务器的压力. 目前,我为了防止按钮快速点击主要使用以下两种办法 1.在每次点击时先取消之前的操作(网上看到的方法) - (void)buttonClicked:(id)sender { //这里是关键,点击按钮后先取消之前的操作,再进行需要进行的操作 [[self class] cancelPre

  • iOS开发中实现显示gif图片的方法

    我们知道Gif是由一阵阵画面组成的,而且每一帧画面播放的时常可能会不相等,观察上面两个例子,发现他们都没有对Gif中每一帧的显示时常做处理,这样的结果就是整个Gif中每一帧画面都是以固定的速度向前播放,很显然这并不总会符合需求.   于是自己写一个解析Gif的工具类,解决每一帧画面并遵循每一帧所对应的显示时间进行播放.   程序的思路如下:   1.首先使用ImageIO库中的CGImageSource家在Gif文件.   2.通过CGImageSource获取到Gif文件中的总的帧数,以及每一

  • IOS 图文混排(CoreText.framework)详解及实例

    IOS 图文混排(CoreText.framework)        本文主要介绍了IOS图文混排的资料,这里整理了在网上查找的内容,帮助理解,掌握这部分知识,以下就是整理的内容: 利用CORETEXT进行图文混排. 实现代码: void RunDelegateDeallocCallback( void* refCon ){ } CGFloat RunDelegateGetAscentCallback( void *refCon ){ NSString *imageName = (NSStri

  • IOS开发代码分享之用nstimer实现倒计时功能

    用nstimer实现倒计时功能,废话不多说,直接上代码,详细解释请参照注释 // [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];   // - (void)timerFireMethod:(NSTimer *)theTimer {     BOOL timeStart = YES;     NSCalend

  • IOS 上架后出现90034代码错误问题解决

      iOS上架90034问题解决   开发完成的APP,我们当然要上传到AppStore里面了,这可是我们心血的结晶. 可是,就当我们兴奋之余,却发现我们的App根本无法上传到AppStore.我们百度.谷歌了N种方法,就像我这种逗逼,整整试了不下15次,还是不行.可是,一个偶然的操作,居然成功了,然后又连试几发,真是百试不爽,赶紧拿出来分享.遇到这种问题的小伙伴们,一定要注意看了. 1.不成功的方法: 百度谷歌了好久,基本都不这种回答:先本地钥匙串的证书全删了,然后把开发者帐号里的证书也全删了

随机推荐