概述
1 importjava.awt.Graphics;2 importjava.awt.Image;3 importjava.awt.Toolkit;4 importjava.awt.event.ActionEvent;5 importjava.awt.event.ActionListener;6 importjava.awt.event.WindowAdapter;7 importjava.awt.event.WindowEvent;8 importjava.io.DataInputStream;9 importjava.io.FileNotFoundException;10 importjava.io.FileOutputStream;11 importjava.io.IOException;12 importjava.io.InputStream;13 importjava.io.OutputStream;14 importjava.io.UnsupportedEncodingException;15 importjava.net.Socket;16 importjava.net.UnknownHostException;17 importjavax.swing.ImageIcon;18 importjavax.swing.JButton;19 importjavax.swing.JFrame;20 importjavax.swing.JLabel;21 importjavax.swing.JPanel;22
23
24 class Main2 extendsJFrame{25 JLabel jlde;26 private Image image; //获取的图像
27 private Toolkit toolKit; //Toolkit对象,用于获取图像
28 privateSocket sock;29 privateInputStream reader;30 privateOutputStream writer;31 private booleanbooxie;32 privateDataInputStream dis;33 JLabel zt;34 int sizex=0;35 public Main2(){//构造函数
36 super("图片获取实现");//标题显示内容
37 this.setSize(600, 400);//页面大小
38 this.setResizable(false);//不可缩放
39 this.setLocationRelativeTo(null);//全屏居中居中显示
40 jlde=newJLabel();41 jlde.setBounds(0, 0,this.getWidth(), this.getWidth());42 this.add(jlde);43 JButton qd=new JButton("启动");44 JButton cs=new JButton("测试");45 JButton hq=new JButton("获取");46 JPanel jp=newJPanel();47 zt = newJLabel();48 jp.add(qd);49 jp.add(cs);50 jp.add(hq);51 jp.add(zt);52 Imgben("lala.png");//初始图片显示
53 this.setIconImage(new ImageIcon("lala.png").getImage());//图标图片文件
54 this.add(jp,"South");55 this.setVisible(true);//显示界面
56 qd.addActionListener(new ActionListener(){//-------------------启动按钮监听,开启socket
57 @Override58 public voidactionPerformed(ActionEvent e) {59 zt.setText("正在启动.......");60 try{61
62
63 sock=new Socket("192.168.43.243",2351);64 writer=sock.getOutputStream();//获取输出流
65 reader=sock.getInputStream();//获取输入流
66 dis = new DataInputStream(sock.getInputStream());//包装输入流, 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
67 writer.write(("0").getBytes("GBK"));//发送确认信息
68 reads();//读数据
69
70
71 } catch(UnknownHostException e1) {72 e1.printStackTrace();73 } catch(IOException e1) {74 e1.printStackTrace();75 }}});76 cs.addActionListener(new ActionListener(){//------------------------测试是否连接成功
77
78 @Override79 public voidactionPerformed(ActionEvent e) {80 try{81
82 writer.write(("0").getBytes("GBK"));83 reads();84
85 } catch(UnsupportedEncodingException e1) {86 e1.printStackTrace();87 } catch(IOException e1) {88 e1.printStackTrace();89 }}});90 hq.addActionListener(new ActionListener(){//-------------------获取图片按钮,点击可显示实时图片
91 @Override92 public voidactionPerformed(ActionEvent e) {93 try{94 zt.setText("开始获取......");95 writer.write(("1").getBytes("GBK"));//发送获取图片指令
96 reads();97 reads();98 writer.write(("3").getBytes("GBK"));//发送空的确认获取指令
99 String str=reads();100 sizex=Integer.parseInt(str.substring(str.indexOf("e")+2));//得到图片大小
101 reads();//读取图片数据
102 zt.setText(" 成功获取 *-* ");103 Imgben("new.jpg");//显示获取的图片
104
105 } catch(UnsupportedEncodingException e1) {106 e1.printStackTrace();107 } catch(IOException e1) {108 e1.printStackTrace();109 }}});110 this.addWindowListener(new WindowAdapter() {//点击叉监听,完全退出程序
111 public voidwindowClosing(WindowEvent arg0) {112 System.exit(0);113 }114 });}115 public String reads() throwsFileNotFoundException{116 String strread="";117 FileOutputStream fos=null;118 if(sizex>0){//【 开始接收文件 】
119 fos = new FileOutputStream("new.jpg");120 byte[] bytes = new byte[1024];121 int length = 0;122 int bensizej=0;123 try{124 while(( length = dis.read(bytes, 0, bytes.length)) != -1) {125 bensizej+=length;126 try{127 fos.write(bytes, 0, length);//以追加的方式写数据
128 fos.flush();129 if(sizex<=bensizej) break;//获取完成
130 } catch(IOException e) {131 e.printStackTrace();132 } }} catch(IOException e) {133 e.printStackTrace();}134 sizex=0;135 bensizej=0; //清零计数
136 }else{ //【 开始接收普通数据 】
137 byte[] bu=new byte[1024];138 try{139 reader.read(bu);140 strread=(new String(bu,"GBK")).trim();141 System.out.println(strread);142 zt.setText(strread);143 } catch(Exception e) {144 e.printStackTrace();145 }}146 return strread;//返回读取的普通数据
147 }148
149 //加载本地图片
150 public voidImgben(String imagePath){151 toolKit =Toolkit.getDefaultToolkit();152 repaint(); //重绘屏幕
153 image=toolKit.getImage(imagePath);154 }155 public voidpaint(Graphics g){156 super.paint(g);157 if (image!=null){158 image.getScaledInstance(500, 500, Image.SCALE_DEFAULT);159 ImageIcon ico=newImageIcon(image);160 ico.setImage(ico.getImage().getScaledInstance(600,370, Image.SCALE_DEFAULT));161 jlde.setIcon(ico);162 }}}163
164 public classMain {165 public static voidmain(String[] args) {166 newMain2();167 }168
169 }
最后
以上就是彪壮月饼为你收集整理的树莓派python调用摄像头_树莓派摄像头基本操作的全部内容,希望文章能够帮你解决树莓派python调用摄像头_树莓派摄像头基本操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复