android xml文件中进行上传图片以及获取图片
2012-09-11 17:45
92 查看
在某些时候 项目需求中需要实现图片上传和图片获取功能 我需要把图片转换成byte[]封装在xml中 将xml文件加压后上传到.NET WCF服务中
上传之前的步骤:
一、将图片转换为byte[]
二、把byte[]进行Base64
三、把经过Bas64处理后返回的字符串写进xml文件中:
接下来的ksoap调用WCF 就省略了 其他文章有详细记录 传到WCF服务端后 按着我们相反的过程进行处理 就可以存到服务端指定的文件夹下了
获取服务端图片,WCF端以我们这里上传的步骤一样的,这个过程如下:解压-----解析xml-----对解析后的字符串进行Base64处理-----将图片存到本地
一、解压 (见其他文章)略
二、解析xml
三、对字符串进行Base64处理后返回byte[]
四、存到本地
如果需要批量上传图片 需要改动。
上传之前的步骤:
一、将图片转换为byte[]
File files=new File(getFilesDir(), "cameranew.jpg"); InputStream ins=new FileInputStream(files); BitmapUtil util=new BitmapUtil(); Bitmap mapBitmap=util.getBitmapFormStream(ins); ByteArrayOutputStream outputStream2=new ByteArrayOutputStream(); mapBitmap.compress(Bitmap.CompressFormat.JPEG,100, outputStream2); outputStream2.flush(); outputStream2.close(); byte[] bys=outputStream2.toByteArray();
二、把byte[]进行Base64
String strings=android.util.Base64.encodeToString(bys, 0);//Base64很重要
三、把经过Bas64处理后返回的字符串写进xml文件中:
public void xmlwrite(String bytes) throws Exception{ File file=new File(getFilesDir(),"photos1.xml"); FileOutputStream outputStream=new FileOutputStream(file); XmlSerializer xmlSerializer=Xml.newSerializer(); xmlSerializer.setOutput(outputStream, "UTF-8"); xmlSerializer.startDocument("UTF-8", true); xmlSerializer.startTag(null, "NewDataset"); xmlSerializer.startTag(null, "Table"); xmlSerializer.startTag(null, "photo"); xmlSerializer.text(bytes); xmlSerializer.endTag(null, "photo"); xmlSerializer.endTag(null, "Table"); xmlSerializer.endTag(null, "NewDataset"); xmlSerializer.endDocument(); outputStream.close(); }
接下来的ksoap调用WCF 就省略了 其他文章有详细记录 传到WCF服务端后 按着我们相反的过程进行处理 就可以存到服务端指定的文件夹下了
获取服务端图片,WCF端以我们这里上传的步骤一样的,这个过程如下:解压-----解析xml-----对解析后的字符串进行Base64处理-----将图片存到本地
一、解压 (见其他文章)略
二、解析xml
public String xmlread() throws Exception{ String bytr=null; File file=new File(getFilesDir(),"photos1.xml"); InputStream inputStream=new FileInputStream(file); XmlPullParser pullParser=Xml.newPullParser(); pullParser.setInput(inputStream, "UTF-8"); int event=pullParser.getEventType(); while (event!=XmlPullParser.END_DOCUMENT) { switch(event){ case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: if("photo".equals(pullParser.getName())){ bytr=pullParser.nextText(); } break; case XmlPullParser.END_TAG: break; } event=pullParser.next(); } return bytr; }
三、对字符串进行Base64处理后返回byte[]
String str=xmlread(); byte[] bys=android.util.Base64.decode(str, 0);
四、存到本地
File files=new File(getFilesDir(), "photo_a.jpg"); FileOutputStream phoneOutStream=new FileOutputStream(files); phoneOutStream.write(bts, 0, bts.length); phoneOutStream.close();
如果需要批量上传图片 需要改动。
相关文章推荐
- Android打开系统相机、相册,并进行裁剪图片的工具类CameraUtil,以及相册获取图片注意要点。
- Android手机调用系统相机拍照、裁剪以及获取Url上传图片
- Android 通过form表单上传文字,图片,视频等(通过key值)以及问题分析
- android 图片、音频、视频获取以及多媒体数据库学习
- Android中使用OKHttp上传图片,从相机和相册中获取图片并剪切
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- Android获取图片大小以及获取指定大小的缩略图
- android从网络获取图片以及异步加载图片
- Vue2.0实现调用摄像头进行拍照功能以及图片上传功能引用exif.js(2)
- android从网络获取图片以及异步加载图片
- 【项目相关】MVC中使用WebUploader进行图片预览上传以及编辑
- Android-->相册,摄像头获取图片,图片路径,以及剪裁图片
- Android拍照或相册获取照片上传 (带图片剪裁)
- Android从相册中获取图片以及路径
- android从网络获取图片以及异步加载图片
- Vue2.0 引用 exif.js 实现调用摄像头进行拍照功能以及图片上传功能
- android:scaletype...属性和照相获取图片并进行显示
- Android 上传文件,图片。以及服务器端接收相关。
- android上传图片以及POST字符串
- android实用案例-获取本地图片/拍照 后进行图片裁剪