java,bufferedimage
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
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
-
蘋果手機長圖怎麼截圖,蘋果手機截長圖的兩種方法
1、長截圖辦法一iOS13上新之後自帶的長截圖方法,是在我們瀏覽網頁的時候使用的。操作方法:上音量鍵+開關鍵一起按下,然後點開截好的圖片,選擇“整頁”截圖即可。2、長截圖方法二利用QQ實現長截圖。操作方法:首先就是需要我們開啟QQ,然後試着上音量鍵+開關鍵一起按下...
-
省內移動數據流量是指什麼
省內移動數據流量是指你的SIM卡所屬省份的可用GPRS流量,如果出了你的卡所屬的省份,去別的省,那省內移動數據流量就不可以使用,只能使用全國通用流量。移動數據流量有省內流量和全國通用流量,國內流量和省內流量是有所區別的。首先優先度不同:正常情況下,如果用戶在自...
-
關於底噪的意思介紹
1、底噪亦稱背景噪聲,基本所有的好耳機都有底噪,耳機底噪一般都是因爲前端的問題,耳機的靈敏度越高對於底噪就越敏感,一些高靈敏度和低阻抗的耳機會把底噪放大,如果加大音量的情況下,底噪會更加的明顯。2、檢測MP3底噪,一般方法是在夜晚等比較安靜的環境中戴上耳機,播...
-
黑色背景拍照竅門詳解
1、調整拍攝角度,尋找背景:既然是拍攝黑背景,在拍攝前我們儘量選擇深色的背景,這樣也就更加容易達到效果。不過深色不一定要是純黑色,只要顏色較爲深沉,偏向暗色調的均可。拍攝前多多觀察,尋找不同的拍攝角度,以找到有反差的深色作爲背景。要多嘗試不同的角度,直至主體...