java bufferedimage是什么,讓我們一起了解一下?
BufferedImage是Image的一個子類,Image和BufferedImage的主要作用就是將一副圖片加載到內存中。生成的圖片在內存里有一個圖像緩沖區,利用這個緩沖區我們可以很方便的操作這個圖片,通常用來做圖片修改操作如大小變換、圖片變灰、設置圖片透明或不透明等。
如果Java想將一副圖片加載到內存中的方法是:BufferedImage bufferedImage = ImageIO.read(new FileInputStream(filePath));
那么如果想編寫一個網絡程序,通過Socket將圖片從服務器端傳到客戶端,并存入文件系統,該如何操作?
示例如下:
Server端: package?org.exam3; import?java.awt.image.BufferedImage; import?java.io.ByteArrayOutputStream; import?java.io.DataOutputStream; import?java.io.File; import?java.net.ServerSocket; import?java.net.Socket; import?javax.imageio.ImageIO; public?class?T6Server?{ ????public?static?void?main(String[]?args)?throws?Exception?{ ????????ServerSocket?server?=?new?ServerSocket(8888); Socket?s?=?server.accept(); DataOutputStream?dout?=?new?DataOutputStream(s.getOutputStream()); BufferedImage?image?=?ImageIO.read(new?File("1.gif")); ByteArrayOutputStream?out?=?new?ByteArrayOutputStream(); boolean?flag?=?ImageIO.write(image,?"gif",?out); byte[]?b?=?out.toByteArray(); dout.write(b); s.close(); } } Client端: package?org.exam3; import?java.awt.BorderLayout; import?java.awt.Graphics; import?java.awt.event.ActionEvent; import?java.awt.event.ActionListener; import?java.awt.image.BufferedImage; import?java.io.ByteArrayInputStream; import?java.io.DataInputStream; import?java.io.File; import?java.io.PrintWriter; import?java.net.Socket; import?javax.imageio.ImageIO; import?javax.swing.JButton; import?javax.swing.JFrame; import?javax.swing.JPanel; public?class?T6Client?extends?JFrame?{ JButton?button; MyPanel?panel; public?T6Client()?{ setSize(300,?400); button?=?new?JButton("獲取圖像"); add(button,BorderLayout.NORTH); button.addActionListener(new?ActionListener()?{ public?void?actionPerformed(ActionEvent?event)?{ try?{ Socket?s?=?new?Socket("localhost",8888); PrintWriter?out?=?new?PrintWriter(s.getOutputStream()); out.print("a"); DataInputStream?in?=?new?DataInputStream(s.getInputStream()); byte[]b?=?new?byte[1000000]; in.read(b); ByteArrayInputStream?bin?=?new?ByteArrayInputStream(b); BufferedImage?image?=?ImageIO.read(bin); ImageIO.write(image,?"gif",?new?File("2.gif")); s.close(); }?catch?(Exception?e)?{ } } }); panel?=?new?MyPanel(); add(panel); } public?static?void?main(String[]?args)?throws?Exception?{ T6Client?frame?=?new?T6Client(); frame.setDefaultCloseOperation(J
以上就是小編今天的分享了,希望可以幫助到大家。