今天做项目,突然发现图片居然能转成字符串,字符串也能转成图片。

接下来让我们进行代码演示吧!

  1. /**
  2. * 字符串转图片
  3. * @param imgStr --->图片字符串
  4. * @param filename --->图片名
  5. * @return
  6. */
  7. public static boolean generateImage(String imgStr, String filename) {
  8.  
  9. if (imgStr == null) {
  10. return false;
  11. }
  12. BASE64Decoder decoder = new BASE64Decoder();
  13. try {
  14. // 解密
  15. byte[] b = decoder.decodeBuffer(imgStr);
  16. // 处理数据
  17. for(int i = 0; i < b.length; ++i) {
  18. if (b[i] < 0) {
  19. b[i] += 256;
  20. }
  21. }
  22. OutputStream out = new FileOutputStream("D:/Systems/"+filename);
  23. out.write(b);
  24. out.flush();
  25. out.close();
  26. return true;
  27. } catch (IOException e) {
  28. // TODO Auto-generated catch block
  29. e.printStackTrace();
  30. }
  31. return false;
  32.  
  33. }
  34.  
  35. /**
  36. * 图片转字符串
  37. * @param filePath --->文件路径
  38. * @return
  39. */
  40. public static String getImageStr(String filePath) {
  41. InputStream inputStream = null;
  42. byte[] data = null;
  43. try {
  44. inputStream = new FileInputStream(filePath);
  45. data = new byte[inputStream.available()];
  46. inputStream.read(data);
  47. inputStream.close();
  48. } catch (IOException e) {
  49. e.printStackTrace();
  50. }
  51. // 加密
  52. BASE64Encoder encoder = new BASE64Encoder();
  53. return encoder.encode(data);
  54. }
  55.  
  56. /*
  57. * 测试代码
  58. */
  59. public static void main(String[] args) {
  60. String imageStr = getImageStr("D:\\001.jpg");
  61. System.out.println(imageStr);
  62. boolean generateImage = generateImage(imageStr, "001.jpg");
  63. System.out.println(generateImage);
  64. }

大功告成!

哈哈!

java进行图片和字符串的互相转换的更多相关文章

  1. Java 中基本类型和字符串之间的转换

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

  2. Java学习--Java 中基本类型和字符串之间的转换

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

  3. java对象与json字符串的互相转换

    java对象与json字符串的互相转换 1.采用 net.sf.json.JSONObject maven依赖包: <dependency> <groupId>net.sf.j ...

  4. java io流 图片和字符串之间的转换

    package com.yundongsports.arena.controller.basketballsite;import com.yundongsports.arena.ResponseVo. ...

  5. JAVA中基本类型和字符串之间的转换

    一.基本类型转换成字符串有三种方法: int c = 10; 1.使用包转类的toString()方法 String str1 = Integer.toString(c); 2.使用String类的v ...

  6. (Java) byte[] 和 base64 字符串之间的转换

    import org.apache.commons.codec.binary.Base64; public class UtilHelper { //base64字符串转byte[] public s ...

  7. java 实现 图片与byte 数组互相转换

    package webgate; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import ja ...

  8. <摘录>Gson对Java嵌套对象和JSON字符串之间的转换

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

  9. java自带BASE64工具进行图片和字符串转换

    java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

随机推荐

  1. Java学习笔记15---instanceof与向下转型

    感冒咳嗽停更了几天,今天恢复更新了. 先来看下instanceof与向下转型的概念: 1.instanceof instanceof是一个二元操作符,用法是:boolean result = a in ...

  2. 关于Tsung脚本无法停止的问题

    最近,利用tsung测试cm的时候,脚本是这样配置的: <load> 28 <arrivalphase phase="1" duration="2&qu ...

  3. 【转】NO.2、Appium之IOS第一个demo

    接第一篇:Appium之iOS环境搭建 http://blog.csdn.net/clean_water/article/details/52946191 这个实例继承了unittest,重写了它的s ...

  4. 解决api、WebService跨域问题

    webapi接口在ajax调用的很多情况下都会出现跨域问题,同样的WebService如果想用ajax调用,也需要接口跨域问题,解决方案如下: 1.IIS配置 打开IIS选择发布后的webapi或者是 ...

  5. Adobe Acrobat pro生成PDF模版

    最近做了一个关于动态生成PDF合同的需求  java生成PDF 网络上随便一搜遍有了 不要用手动在代码里面输入合同中的文字这种方式 如这样的方式 http://blog.csdn.net/justin ...

  6. Maven02——回顾、整合ssh框架、分模块开发、私服

    1 回顾 1.1 Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建 可跨平台 应用在大型项目可提高开发效率 1.2 Maven安装部署配置 1.3 Maven的仓库 本地仓库 远 ...

  7. I2C 读取总是 0xFF,但是 ACK 是正常的解决方法

    最近要读写 24C256,没有参考网上代码,自己撸了几个小时,总是不对,读取结果总是 0xFF,但是ACK的返回都是正确的,经过一番努力,终于找到问题所在了. 在芯片规格书里面时序图只有 START ...

  8. motan负载均衡/zookeeper集群/zookeeper负载均衡的关系

    motan/dubbo支持负载均衡.zookeeper有集群的概念.zookeeper似乎也能做负载均衡,这3者是什么关系呢? 3个概念:motan/dubbo负载均衡.zookeeper集群.zoo ...

  9. hihoCoder #1038 : 01背包(板子题)

    #1038 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励 ...

  10. Vijos P1127 级数求和【模拟】

    级数求和 描述 已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K. 现给出一个整数K(1<=k<=15),要求计算出一个最小的n:使得Sn ...