我是靠谱客的博主 彪壮月饼,最近开发中收集的这篇文章主要介绍树莓派python调用摄像头_树莓派摄像头基本操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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调用摄像头_树莓派摄像头基本操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部