基础知识 java 图片与string相互转换
2017-10-03 18:15
781 查看
import sun.misc.BASE64Decoder; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Base64; import javax.imageio.ImageIO; import javax.swing.*; public class Main { public static void main(String[] args) throws IOException{ BufferedImage image_buffer = ImageIO.read(new File("D:\\1.jpg")); String string_image=imgToBase64String(image_buffer); FileWriter fi = new FileWriter("D:\\1.txt"); fi.write(string_image); fi.close(); String content = new String(Files.readAllBytes(Paths.get("D:\\1.txt"))); BufferedImage new_image_buffer=base64StringToImg(content); draw_image(new_image_buffer); } //把图片转换成string类型 public static String imgToBase64String(final RenderedImage img) { final ByteArrayOutputStream os = new ByteArrayOutputStream(); try { ImageIO.write(img, "jpg", Base64.getEncoder().wrap(os)); return os.toString(StandardCharsets.ISO_8859_1.name()); } catch (final IOException ioe) { throw new UncheckedIOException(ioe); } } //把string类型转换成图片 public static BufferedImage base64StringToImg(final String base64String) { try { BASE64Decoder decoder = new BASE64Decoder(); byte[] bytes = decoder.decodeBuffer(base64String); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); return ImageIO.read(bais); } catch (final IOException ioe) { throw new UncheckedIOException(ioe); } } //绘制图片 public static void draw_image(BufferedImage image_buffer) throws IOException { ImageIcon icon = new ImageIcon(image_buffer); JFrame frame = new JFrame(); frame.setLayout(new FlowLayout()); frame.setSize(image_buffer.getWidth(), image_buffer.getHeight()); JLabel lbl = new JLabel(); lbl.setIcon(icon); frame.add(lbl); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
相关文章推荐
- Java基础知识强化90:Date类之Data类中日期和毫秒相互转换
- Java基础知识强化59:String(字符串)和其他类型的相互转化
- java实现图片image和字符串String的相互转换
- Java基础知识强化91:DateFormat类之DateFormat实现日期和字符串的相互转换
- Java基础知识强化43:StringBuffer类之StringBuffer和String的相互转化
- (基础)java中String与int的相互转换
- Timestamp和String的相互转换 Java
- String和Date相互转换----java
- [Java] double与String之间的相互转换方法
- Java中String与Int怎样相互转换
- java中的BigDecimal和String的相互转换
- java中int,char,string三种类型的相互转换
- java基础知识10(TCP:客户端并发上传图片)
- Java 转换png jpg gif格式图片的相互转换的实现
- java网络图片与二进制字符串相互转换
- [Java] double与String之间的相互转换方法[转]
- [Java] double与String之间的相互转换方法[转]
- Java中的BigDecimal和String的相互转换
- java String与Date类型之间的相互转换
- [Java] double与String之间的相互转换方法