java将一个图片转换为字符串格式
2013-06-04 11:51
483 查看
package ylxControlServer.frame.util; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import javax.imageio.ImageIO; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class ImageToString { private static Log log = LogFactory.getLog(ImageToString.class); // 根据图片地址将图片转换为字符串类型的数据 public String imageToString(String picture) { StringBuffer sb2 = new StringBuffer(); BufferedImage image1 = getImage(picture); byte[] img = getBytes(image1); for (int i = 0; i < img.length; i++) { if (sb2.length() == 0) { sb2.append(img[i]); } else { sb2.append("," + img[i]); } } return sb2.toString(); } // 将BufferImage 转换为字节数组 private byte[] getBytes(BufferedImage image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ImageIO.write(image, "PNG", baos); } catch (Exception e) { log.info(e); } return baos.toByteArray(); } // 根据图片地址得到BufferedImage public static BufferedImage getImage(String picture) { try { BufferedImage bImage = ImageIO.read(new File(picture)); return bImage; } catch (Exception ex) { log.info(ex); return null; } } }
(上面的类将一个图片转换为字符串)
字符串的格式是:
String a= "1,2,4,4,5,5,5,565";
得到图片的字符串后,我们还得将字符串转换为图片:
package ylxControlServer.frame.util; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.imageio.ImageIO; public class StringToImage { public static String fileformat = "png"; public static String fileNameFormat = "yyyy-MM-dd_HH-mm-ss"; // 将字符串格式的图片转换为图片并保存 public void stringToImage(String string, String saveDir) { if (string.contains(",")) { // 这里没有自带的那个分割方法,原因是分割速度没有这个快,有人考证在分割字符长度很大的情况下,系统的分割方法容易造成内存溢出。 // 还有subString方法,不知道最新版本的jdk改了源码了么 String[] imagetemp = split(string, ","); byte[] image = new byte[imagetemp.length]; for (int i = 0; i < imagetemp.length; i++) { image[i] = Byte.parseByte(imagetemp[i]); } saveImage(image, saveDir); } else { // 不能解析格式的字符串 } } // 将byte[] 转换为BufferedImage private BufferedImage readImage(byte[] bytes) throws IOException { ByteArrayInputStream bais = new ByteArrayInputStream(bytes); return ImageIO.read(bais); } // 保存图片 public String saveImage(byte[] imgages, final String saveDir) { try { BufferedImage bis = readImage(imgages); DateFormat sdf = new SimpleDateFormat(fileNameFormat); String fileTime = sdf.format(new Date()); final String name = fileTime + "_" + "." + fileformat; File f = new File(saveDir + name); boolean istrue = false; if (f.exists()) { istrue = ImageIO.write(bis, fileformat, f); } else { f.mkdirs(); istrue = ImageIO.write(bis, fileformat, f); } if (istrue) { return name; } } catch (Exception e) { } return null; } // 分割字符串 public String[] split(String s, String token) { if (s == null) return null; if (token == null || s.length() == 0) return new String[] { s }; int size = 0; String[] result = new String[4]; while (s.length() > 0) { int index = s.indexOf(token); String splitOne = s; if (index > -1) { splitOne = s.substring(0, index); s = s.substring(index + token.length()); } else { s = ""; } if (size >= result.length) { String[] tmp = new String[result.length * 2]; System.arraycopy(result, 0, tmp, 0, result.length); result = tmp; } if (splitOne.length() > 0) { result[size++] = splitOne; } } String[] tmp = result; result = new String[size]; System.arraycopy(tmp, 0, result, 0, size); return result; } }
相关文章推荐
- 自己封装的一个Java版图片工具,具备压缩,伸缩变换,透明处理,格式转换等功能.
- java.sql.SQLDataException: ORA-01830: 日期格式图片在转换整个输入字符串之前结束
- 关于java.sql.SQLException: ORA-01830: 日期格式图片在转换整个输入字符串之前结束
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作
- ORA-01830: 日期格式图片在转换整个输入字符串之前结束
- 【java 面试100】20.输入一个表示整数的字符串,把该字符串转换成整数并输出
- 把一个字符串转换成int类型(Java实现)
- java转换字符串编码格式 (解码错误,重新解码)
- ORA-01830: 日期格式图片在转换整个输入字符串之前结束
- 一个可以把图片转换成.ico格式的网站
- 基于java的图片文件格式转换和线性缩放-Java基础-Java-编程开发
- JAVA 实现jpg/tif/bmp 等图片格式互相转换,解决RenderedOp资源不能释放
- gdiplus将一种图片格式转换成另外一个指定图片格式,且可设置图片大小
- 将一个Base64字符串转换成jpg图片的方法
- Java 实现字符串String转换List(JSONArray格式)
- java中字符串转换成时间格式总结
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- Java将Unix时间戳转换成指定格式日期字符串工具类
- 基于java的图片文件格式转换和线性缩放
- Java CST格式字符串转换成Date类型的数据