C#和JAVA利用BASE64实现图片编码解码
2016-07-22 20:32
846 查看
主要针对服务器端和客户端利用BASE64对图片和字符串进行编码解码操作。
客户端是Android,服务器端是webservice,编码解码方式如下:
一、Android 实现图片上传
1.java对图片进行编码
2.C#(webservice端)接收字符串,进行解码。
2.Android端接收字符串后,解码并显示图片
客户端是Android,服务器端是webservice,编码解码方式如下:
一、Android 实现图片上传
1.java对图片进行编码Bitmap image = extras.getParcelable("data"); if (image != null) { try { ByteArrayOutputStream stream = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 60,stream); byte[] b = stream.toByteArray(); // 将图片流以字符串形式存储下来 tp = new String(Base64Coder.encodeLines(b));//转换后的字符串,可将该字符串上传至服务器端进行解码 myIndustryImg.setImageBitmap(image);// 把图片显示到头像 } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
2.C#(webservice端)接收字符串,进行解码。
[WebMethod(Description = "上传图片")] public bool uploadImage(string filename, string imageString) { ConnCls myconncls = new ConnCls(); string fileName = "F:\\C# Demo\\GainMapWebservice\\images\\" + filename; System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs); if (!string.IsNullOrEmpty(imageString) && File.Exists(fileName)) { bw.Write(Convert.FromBase64String(imageString)); } bw.Close(); fs.Close(); string sql = "insert into tbl_Industry(IndustryImg) values('" + filename + "')"; if (myconncls.ExecuteSql(sql) == true) { return true; } return false; }
二、Android 实现图片从服务器端下载
1.C#(webservice端)获取图片路径,进行编码,就一句话~~var base64Img = Convert.ToBase64String(System.IO.File.ReadAllBytes("图片路径"));
2.Android端接收字符串后,解码并显示图片
/** * 将BASE64字符串转成Bitmap类型进行显示 * * @param string * @return */ public Bitmap stringtoBitmap(String string) { // 将字符串转换成Bitmap类型 Bitmap bitmap = null; try { byte[] bitmapArray; bitmapArray = Base64.decode(string, Base64.DEFAULT); bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length); } catch (Exception e) { e.printStackTrace(); } return bitmap; }
myIndustryImg.setImageBitmap(stringtoBitmap(teplist.get(i + 6)));// 在控件上显示图片,myIndustryImg是控件名称
相关文章推荐
- JAVA的自我修养
- Spring框架的反序列化远程代码执行漏洞分析(转)
- java 反射机制的基本知识
- 自学java(1)
- java中的缓存
- Java设计模式-单例模式
- java web servelt
- java中的异常
- 使用spring3.2 @Scheduled注解 定时任务
- Eclipse中最常用的一些快捷键
- Java开发中的23种设计模式详解(转)
- 由两个栈组成的队列
- java-计算两点之间的距离
- java设计模式-----单例模式
- Eclipse插件安装4种方法
- Java内存区域---深入理解Java虚拟机
- spring知识点详解
- java设计模式----工厂模式
- java学习路线图-----java基础学习路线图(J2SE学习路线图)
- java学习路线图-----java基础学习路线图(J2SE学习路线图)