applet 序列化文件到服务器,Applet调用扫描仪.docx

Applet调用扫描仪

JApplet调用扫描仪将图像数据发送到服务器端 现根据需求要在WEB客户端上调用本地扫描仪扫描图像,并将图像数据发送给服务器端分析并写入数据库。由于Applet沙箱安全性机制,导致不能使用Applet对本地文件系统读写,需要对Applet进行数字签名和权限的设置。首先创建一个JApplet小应用程序,代码如下(部分代码后续解释)import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.ObjectOutputStream;import java.io.Serializable;import java.net.Socket;import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JOptionPane;import cn.eastgf.gafis.util.JTwain;public class ScanTest extends JApplet implements ActionListener{?private static final long?serialVersionUID?= 1L;?private JButton?bnt;?public ScanTest()?{ this.bnt = new JButton("Scan"); this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER)); this.getContentPane().add(bnt); this.bnt.addActionListener(this); this.setSize(400, 300); this.getContentPane().setBackground(new Color(150, 100, 175)); this.setVisible(true);?}?public void actionPerformed(ActionEvent e)?{?try?{ JTwain.openDSM();//JNI接口访问本地扫描仪驱动程序 //???String s = JTwain.getFirstDS();//在未知驱动名称时可根据注释代码获取 //System.out.println(s); //???while((s = JTwain.getNextDS()).length() != 0 ) //System.out.println(s); JTwain.openDS("EPSON Perfection 2480/2580");//这里是我机器上扫描仪的驱动名称 //JTwain.setDpi(500);//如果不显示扫描界面需要设置DPI值 //JTwain.setPixelType(JTwain.PT_GRAY);//8位灰度模式 //JTwain.setShowUi(true);//该值为false时不显示扫描界面? byte[] image = JTwain.acquire(); //调用本地扫描仪接口,扫描后返回一个图像数组该接口是我自己封装的前64个字节是头部信息?//其中包括4个整形数值宽度、高度、扫描分辨率、像素模式、其他的尚未使用?//需要使用小端法解析该字节数组 JTwain.closeDS(); JTwain.closeDSM();??//以下是扫描完毕后将图像数组封装在一个可序列化的对象中,使用TCP协议发送到服务器端?//稍后给出服务器端处理程序 Socket socket = new Socket(this.getCodeBase().getHost(), 6000); ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());?long time = System.currentTimeMillis(); DataObject?obj = new DataObject(time,image); oos.writeObject(obj); DataObject obj1= new DataObject(0,null); oos.writeObject(obj1); oos.close(); socket.close(); JOptionPane.showMessageDialog(this, "Scan Complate!");?}?catch (Exce

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值