ios assetlibrary
公司做个app项目,用phonegap做,好调页面,哎,就是骗那些土大款客户,觉得phonegap性能一般吧,不过html5的确好强大,页面设计好了看起来也好看。原生的用的不多,比如什么二维码扫描啊,上传文件啥的就要用到,使用phonegap的函数调用原生的插件。前几天遇到个上传文件的头疼事儿,以前做的上传文件都是直接打开本地图片文件库,选择好图片后文件上传,然后服务端返回一个图片的服务器地址,用js显示在html上。现在设计前端的是直接使用phonegap的函数打开函数库选择图片后得到图片在手机上的链接最后确定添加后才批量上传到服务器。这里有个问题就是最后我要使用phonegap返回的图片的地址去调用原生的插件发送。那么问题来了,phonegap得到的是asset-library的链接地址,而不是真实的在手机上得路径,我使用的是asi来发送图片,发送文件需使用文件路径或者文件的数据才行。搞了半天弄死找不到啊,使用它返回的是得不到图片数据的。最后网上找了半天,看了下asset-library是个啥,可以通过asset url获取alasset的数据。
ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init];
[lib assetForURL:[NSURL URLWithString:assetUrl] resultBlock:^(ALAsset *asset)
{
//在这里使用asset来获取图片
}
failureBlock:^(NSError *error)
{}
];
或者:
+ (UIImage *)fullResolutionImageFromALAsset:(ALAsset *)asset
{
ALAssetRepresentation *assetRep = [asset defaultRepresentation];
CGImageRef imgRef = [assetRep fullResolutionImage];
UIImage *img = [UIImage imageWithCGImage:imgRef
scale:assetRep.scale
orientation:(UIImageOrientation)assetRep.orientation];
return img;
}
两种方法得到原数据。
使用asset库需要插入asset框架,asset.framework。
使用asi发送图片:图像数据保存在数组里面,
for (UIImage* image in m_imgArray) {
NSData* data = UIImageJPEGRepresentation(image, );
NSString* strFileKey = [NSString stringWithFormat:@"goodsImageFileList[%d]",i];
NSString* strKey = [NSString stringWithFormat:@"goodsImageList[%d].id",i];
[req setData:data withFileName:@"photo.jpg" andContentType:@"image/jpeg" forKey:strFileKey];
[req setPostValue:@"u" forKey:strKey];
i++;
}
fileName无所谓,content-type设置为image/jpeg,key可以设为相同。加一句,我使用的是第一种方法,它回调回得有点儿慢,我用一个全局数组来保存回调后的图像数据,然后再统一发送。ok了。。
ios assetlibrary的更多相关文章
- iOS: FFmpeg编译和使用 学习
ffmpeg是一个多平台多媒体处理工具,处理视频和音频的功能非常强大.目前在网上搜到的iOS上使用FFMPEG的资料都比较陈旧,而FFMPEG更新迭代比较快: 且网上的讲解不够详细,对于初次接触FFM ...
- 使用cordova,使html5也能像IOS,Android那样可以 调取手机的相机拍照功能
一,我们在使用html5的技术开发手机app时,并不能像IOS,Android那样可以调取手机原生的相机功能,这是我们就要借助一些插件来时实现. 二,安装Cordoba的相机插件 1.在文件目录下,使 ...
- iOS可视化动态绘制连通图
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- 告别被拒,如何提升iOS审核通过率(上篇)
iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...
随机推荐
- 1.html5 学习要求,Html 5发展历程
以下是我在学习html5,项目中用到的关于html5的总结和心得. 1.学习要求 Html4.01,xhtml Css2 Javascript 耐心,动手,毅力. 2.Html 发展历程 Html1. ...
- ServletContext(重要)
一个项目只有一个ServletContext对象! 我们可以在N多个Servlet中来获取这个唯一的对象,使用它可以给多个Servlet传递数据! 这个对象在Tomcat启动时就创建,在Tomcat关 ...
- Git-Flow
Overview Git-Flow is a high-level command set wrapping low-level Git commands to support the "s ...
- BIP_开发案例08_BI Publisher图表示例 饼状图/直方图/折线图(案例)
2014-12-25 Created By BaoXinjian
- PLSQL_性能优化系列18_Oracle Explain Plan解析计划通过Baseline绑定
2015-05-28 Created By BaoXinjian
- HTML格式与布局
一.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口. <head> <title>123</title> <st ...
- mongodb,redis,mysql 简要对比
本篇内容大部分不是原创,转载的会贴有链接. 准备学习下数据库,想对目前的主流数据库做一个简单的了解分析,就搜集了资料整理到了一块. 当下主流的要数NoSql数据库了,拥有强大的高并发能力. mongo ...
- Laravel5.0 CSRFチェックを無効化(修改后可以像5.1以上那样从CSRF保护中排除指定URL)
Laravel5では全てのPOSTに勝手にCSRFチェックが付いてきます.便利と言えば便利ですが.Laravel外からのPOSTを受け取りたいときなど大迷惑です. CSRFチェックを排除する方法が何故 ...
- java多线程的使用1
方式1: public class LiftOff implements Runnable { ; ; private final int id = taskCount++; public LiftO ...
- dom4j-full.jar 解析 XML
dom4j-full.jar 解析 XML public Document getDocument() throws DocumentException { SAXReader read=new SA ...