您的位置:首页 > 编程语言 > Java开发

C#和JAVA利用BASE64实现图片编码解码

2016-07-22 20:32 846 查看
主要针对服务器端和客户端利用BASE64对图片和字符串进行编码解码操作。

客户端是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是控件名称
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: