android通过base64encode方式发送图片到服务端

来源:互联网 发布:js获取class属性值 编辑:程序博客网 时间:2024/05/19 20:49
androidAndroidANDROID

android 前提是引入base64encode,base64decode六个开源类

[java] view plaincopy
  1. package com.example.testapp;  
  2.   
  3. import java.io.ByteArrayInputStream;  
  4. import java.io.ByteArrayOutputStream;  
  5. import java.io.File;  
  6. import java.io.FileInputStream;  
  7. import java.io.IOException;  
  8. import java.io.InputStream;  
  9.   
  10. import android.app.Activity;  
  11. import android.graphics.Bitmap;  
  12. import android.os.Bundle;  
  13. import android.os.Environment;  
  14.   
  15. public class MainActivity extends Activity {  
  16.   
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.         System.out.println("path---->"+Environment.getExternalStorageDirectory().getPath());  
  22.         File file = new File(Environment.getExternalStorageDirectory().getPath()+"//qq.jpg");  
  23.         InputStream in = null;  
  24.         byte[] data = null;  
  25.         // 读取图片字节数组  
  26.         try {  
  27.             in = new FileInputStream(file);  
  28.             data = new byte[in.available()];  
  29.             in.read(data);  
  30.             in.close();  
  31.         } catch (IOException e) {  
  32.             e.printStackTrace();  
  33.         }  
  34.         // 对字节数组Base64编码  
  35.         BASE64Encoder encoder = new BASE64Encoder();  
  36.         System.out.println("drf--------"+encoder.encode(data));// 返回Base64编码过的字节数组字符串  
  37.     }  
  38.   
  39.   
  40.   
  41.     private InputStream Bitmap2Bytes(Bitmap bmp) {  
  42.         ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  43.         // 得到输出流  
  44.         bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);  
  45.         // 转输入流  
  46.         InputStream isBm = new ByteArrayInputStream(baos.toByteArray());  
  47.         return isBm;  
  48.     }  
  49.   
  50. }  


server

[java] view plaincopy
  1. package com.dong.test.binaryimage;  
  2.   
  3. import java.io.FileInputStream;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.OutputStream;  
  8.   
  9. import sun.misc.BASE64Decoder;  
  10. import sun.misc.BASE64Encoder;  
  11.   
  12. public class TestLUcky {  
  13.     public static void main(String[] args) {  
  14.         String strImg = GetImageStr();  
  15.         System.out.println(strImg);  
  16.         GenerateImage(strImg);  
  17.     }  
  18.   
  19.     public static String GetImageStr() {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
  20.         String imgFile = "c:\\qq.jpg";// 待处理的图片  
  21.         InputStream in = null;  
  22.         byte[] data = null;  
  23.         // 读取图片字节数组  
  24.         try {  
  25.             in = new FileInputStream(imgFile);  
  26.             data = new byte[in.available()];  
  27.             in.read(data);  
  28.             in.close();  
  29.         } catch (IOException e) {  
  30.             e.printStackTrace();  
  31.         }  
  32.         // 对字节数组Base64编码  
  33.         BASE64Encoder encoder = new BASE64Encoder();  
  34.         return encoder.encode(data);// 返回Base64编码过的字节数组字符串  
  35.     }  
  36.   
  37.     public static boolean GenerateImage(String imgStr) {// 对字节数组字符串进行Base64解码并生成图片  
  38.         if (imgStr == null// 图像数据为空  
  39.             return false;  
  40.         BASE64Decoder decoder = new BASE64Decoder();  
  41.         try {  
  42.             // Base64解码  
  43.             byte[] b = decoder.decodeBuffer(imgStr);  
  44.             for (int i = 0; i < b.length; ++i) {  
  45.                 if (b[i] < 0) {// 调整异常数据  
  46.                     b[i] += 256;  
  47.                 }  
  48.             }  
  49.             // 生成jpeg图片  
  50.             String imgFilePath = "c:\\qq.bak.jpg";// 新生成的图片  
  51.             OutputStream out = new FileOutputStream(imgFilePath);  
  52.             out.write(b);  
  53.             out.flush();  
  54.             out.close();  
  55.             return true;  
  56.         } catch (Exception e) {  
  57.             return false;  
  58.         }  
  59.     }  
  60.   
  61. }  
0 0