问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

官网下了JMF并装了,可是点击JMF的lib文件夹里的*jar文件时,却弹出:invalid or corrupt jarfile

发布网友 发布时间:2022-04-23 19:15

我来回答

2个回答

热心网友 时间:2023-10-14 11:58

好像是文件坏了? 可以试试看写一段JMF 脚本能否运行. JMF Studio 能运行不?

也可能是由于安装了JVM, 默认的JAR 是用JVM 打开的. 但是这个JAR 里没有main() 方法, 不能运行. 给你找了一段JMF 的代码, 编译一下试试看.

-----------------------------------------------------
首先到SUN下载最新的JMF,然后安装。http://java.sun.com/procts/java-media/jmf/index.jsp

然后,说一下需求

1. 用摄像头拍照

2. 在文本框输入文件名

3. 按下拍照按钮,获取摄像头内的图像

4. 在拍下的照片上有一红框截取固定大小的照片。

5. 保存为本地图像为jpg格式,不得压缩画质

技术关键,相信也是大家最感兴趣的部分也就是如何让一个摄像头工作,并拍下一张照片了。

利用JMF,代码很简单:

//利用这三个类分别获取摄像头驱动,和获取摄像头内的图像流,获取到的图像流是一个Swing的Component组件类

public static Player player = null;
private CaptureDeviceInfo di = null;
private MediaLocator ml = null;

//文档中提供的驱动写法,为何这么写我也不知:)

String str1 = "vfw:Logitech USB Video Camera:0";
String str2 = "vfw:Microsoft WDM Image Capture (Win32):0";
di = CaptureDeviceManager.getDevice(str2);
ml = di.getLocator();
try
{
player = Manager.createRealizedPlayer(ml);
player.start();
Component comp;
if ((comp = player.getVisualComponent()) != null)
{
add(comp, BorderLayout.NORTH);
}
}
catch (Exception e)
{
e.printStackTrace();
}

接下来就是点击拍照,获取摄像头内的当前图像。

代码也是很简单:

private JButton capture;
private Buffer buf = null;
private BufferToImage btoi = null;
private ImagePanel imgpanel = null;
private Image img = null;
private ImagePanel imgpanel = null;

JComponent c = (JComponent) e.getSource();
if (c == capture)//如果按下的是拍照按钮
{
FrameGrabbingControl fgc =(FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
buf = fgc.grabFrame(); // 获取当前祯并存入Buffer类
btoi = new BufferToImage((VideoFormat) buf.getFormat());
img = btoi.createImage(buf); // show the image
imgpanel.setImage(img);
}

保存图像的就不多说了,以下为示例代码

BufferedImage bi = (BufferedImage) createImage(imgWidth, imgHeight);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, null, null);
FileOutputStream out = null;
try
{
out = new FileOutputStream(s);
}
catch (java.io.FileNotFoundException io)
{
System.out.println("File Not Found");
}

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1f, false);//不压缩图像
encoder.setJPEGEncodeParam(param);
try
{
encoder.encode(bi);
out.close();
}
catch (java.io.IOException io)
{
System.out.println("IOException");
}

热心网友 时间:2023-10-14 11:59

同样的问题 求救 拜托了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我有个无线路由器 G11手机无法上wifi 已经按照路由说明书上步骤安装调... g11无线网显示以连接信号强但是一上网显示网络错误 拜求解 HTC G11能连接上WLAN,信号显示“极强”但上不去网? ...可是家里的能连上就是打不开网页,我的路由是上海贝尔的那种。_百度... 我的手机HTC G11 连接上WLAN,信号很好,就是无法上网 ...连上家里的无线网,但是qq却上不去,网页也打不开,等于没练上一样... G11WIFI信号格满但是打不开网页等 就生产力发展而言,丛西汉至唐朝有何表现 汉代农业的发展程度是怎么样的? 你好 酷管家密码忘了 打不开怎么办 android studio 怎么进行全局搜索 幻想三国志3不懂如何用 Microsoft Visual Studio 2005破解,重酬! 音频文件有什么属性? android studio怎么全局搜索 求分享达芬奇调色软件DaVinci Resolve Studio 15 Mac破解版。 Android Studio如何查看资源或者函数在哪些类中被引用 请问一下数码相机拍照有什么技巧?关于取景等 为什么在电脑用爱奇艺视频下的动漫不能看 为什么海贼王在爱奇艺里没法下载 在哪里可以下? 为什么爱奇艺没有这个动漫了? 爱奇艺怎么同时下载电视剧或动漫啊?就是不要一集一集下,可以一次的... 电脑上爱奇艺视频看的动漫只能看为什么不能下载?请问电脑有什么向哔哩哔哩那样,动漫都能下载的软件? 爱奇艺动漫怎么下载来着,求具体步骤 爱奇艺为什么没有动漫频道了? 为什么动漫中国惊奇先生在爱奇艺里缓存不了?无法缓存 龙王殿+动漫为什么腾讯爱奇艺都搜不到了 爱奇艺为什么不能离线缓存了?前几天还可以啊? 爱奇艺上面所有的动漫都不能缓存了吗 购买了512GSSD固态硬盘(无机械硬盘)电脑,各分区大小?及office和其他软件各装在哪个分区为好?谢谢! 为什么爱奇艺动画屋不能缓存动画片 视频格式问题? c语言*p++是什么意思? 幻想三国光盘序号是什么? 最近想配一台既能玩三A大作,又能驾驭的了Visual Studio的电脑? 电视剧麻雀为什么不播了 麻雀延期播出原因是什么 麻雀每个礼拜五更新几集 麻雀多久更新一次 今天是星期日,湖南卫视麻雀几点播出?播放几集?我家只能看电视,望各位相助 麻雀什么时候,在哪个台播 麻雀每天网上几点更新 麻雀为什么不更新了,一直都在15集 电视剧《麻雀》什么时候播出?谁知道? 麻雀全集电视剧更新地址 麻雀电视剧最新更新到几级了 哪里看最快啊 麻雀这两天怎么没更新 麻雀怎么没更新63集 谍战剧《麻雀》什么时候更新(共几集+每周几+ 麻雀不更新了 麻雀这几天怎么不更新 目前更新,麻雀电视剧百度云资源 在哪里可以看麻雀在哪里可以看麻雀全