java图片以字符串的形式传输

最近在做一个中间件,用到了图片的传输。

   原理:将图片转换为字节流,再将字节流用base64编码,将编码后的字符串封装到Json串中传输;

代码:

package com.inlz;

import java.io.FileInputStream;

import java.io.IOException;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

/**

* Description:用此类将图片转换为字符串,以便将图片封装为JSON进行传输

* @author 河伯

* @Date 2014-05-27

* @version 1.0

* */

public class ImgHelper {

/**

* TODO:将byte数组以Base64方式编码为字符串

* @param bytes 待编码的byte数组

* @return 编码后的字符串

* */

public static String encode(byte[] bytes){

return new BASE64Encoder().encode(bytes);

}

/**

* TODO:将以Base64方式编码的字符串解码为byte数组

* @param encodeStr 待解码的字符串

* @return 解码后的byte数组

* @throws IOException

* */

public static byte[] decode(String encodeStr) throws IOException{

byte[] bt = null;

BASE64Decoder decoder = new BASE64Decoder();

bt = decoder.decodeBuffer(encodeStr);

return bt;

}

/**

* TODO:将两个byte数组连接起来后,返回连接后的Byte数组

* @param front 拼接后在前面的数组

* @param after 拼接后在后面的数组

* @return 拼接后的数组

* */

public static byte[] connectBytes(byte[] front, byte[] after){

byte[] result = new byte[front.length + after.length];

System.arraycopy(front, 0, result, 0, after.length);

System.arraycopy(after, 0, result, front.length, after.length);

return result;

}

/**

* TODO:将图片以Base64方式编码为字符串

* @param imgUrl 图片的绝对路径(例如:D:\\jsontest\\abc.jpg)

* @return 编码后的字符串

* @throws IOException

* */

public static String encodeImage(String imgUrl) throws IOException{

FileInputStream fis = new FileInputStream(imgUrl);

byte[] rs = new byte[fis.available()];

fis.read(rs);

fis.close();

return encode(rs);

}

/**

* @param args

*/

public static void main(String[] args) {

String str;

try {

str = encodeImage("D:\\MMS_TEST\\attachment_jpg.jpg");

System.out.println(str);

} catch (IOException e) {

e.printStackTrace();

}

}

}

时间: 2024-08-10 00:07:18

java图片以字符串的形式传输的相关文章

mysql中以blob形式存储的图片文件 通过ajax方式传输 在js中设置成img控件的src

第一步,读取blob数据, 第二步,将blob数据转换成byte数组 第三步,将byte数据进行base64加密转换成字符串并回传 第四步,接收字符串 第五步,将img控件的src设置成"data:image/jpeg;base64,"+接收的字符串; 相关代码: java: public String getAccountImg(String alias) { String sql = "SELECT imgrawdata FROM wx_account WHERE ali

Java IO把一个文件中的内容以字符串的形式读出来

代码记录(备查): /** * 把一个文件中的内容以字符串的形式读出来 * * @author zhipengs * */ public class FileToString { public static void main(String[] args) { System.out.println(readFileToString()); } private static String readFileToString() { // new 一个空文件,用于获取路径 File dirs = ne

图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片

(function () { var coverImage = document.querySelector('<div id="coverImage">file</div>'); //图片压缩 coverImage.onchange = function () { lrz(this.files[0], {width: 640}, function (results) { // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片. var

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

Java编程基础-字符串

在Java语言中,字符串数据实际上由String类所实现的.Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串:另一类是在程序中会被改变长度的可变字符串.Java环境为了存储和维护这两类字符串提供了 String和StringBuffer两个类(在JDK1.5版本后出现了StringBuilder,该类被设计用作 StringBuffer 的一个简易替换). 一.字符串(String) 1.字符串概念了解 String 类代表字符串,Java 程序中的所有字符串字面值(如 "ab

java中截取字符串的方式

1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3.getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

认识Java中的字符串

Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之处吧. String 类的常用方法: 结合代码来熟悉一下方法的使用: 功能:判断 Java 文件名是否正确,判断邮箱格式是否正确.其中:合法的文件名应该以 .java 结尾:合法的邮箱名中至少要包含 "@" , 并要求 "@" 在 "." 之前. p

java图片验证码包括文字和图片的旋转

java图片验证码包括文字图片的旋转: 此例子演示的是两位数的加减运算,需要的可以通过自己的修改获得更多的方式: 或者我上传的资源中也有其他的两种方式供选择:http://download.csdn.net/detail/huitoukest/8043711 package com.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; im

JAVA 写中文字符串到指定文件 中文乱码 问题解决

之前试过下面代码里面的注释掉的 方法,都不行,后来想到了不如指定编码格式试试,果真可以了. String as= “中文字符”; //byte[] b = as.getBytes(); try{ File file=new File("F:test.txt"); if(!json.exists()){ file.createNewFile(); } Writer writer = new OutputStreamWriter(new FileOutputStream(file.getA