当前位置: 首页 > 知识库问答 >
问题:

如何仅在JSP中使用网络摄像头捕捉图像(不使用Servlet)并将其保存到MS SQL Server中

荆城
2023-03-14

我想用网络摄像头捕捉图像,并将其存储到微软SQL服务器数据库中。

我能够使用网络相机捕捉图像,但现在我正试图将图像传递到下一页,但无法在下一个jsp处理图像。

捕获图像的代码

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Web  camera - Testing</title>

    <script>

        // Put event listeners into place
        window.addEventListener("DOMContentLoaded", function () {
            // Grab elements, create settings, etc.
            var canvas = document.getElementById("canvas"),
                    context = canvas.getContext("2d"),
                    video = document.getElementById("video"),
                    videoObj = {"video": true},
            errBack = function (error) {
                console.log("Video capture error: ", error.code);
            };

            // Put video listeners into place
            if (navigator.getUserMedia) { // Standard
                navigator.getUserMedia(videoObj, function (stream) {
                    video.src = stream;
                    video.play();
                }, errBack);
            } else if (navigator.webkitGetUserMedia) { // WebKit-prefixed
                navigator.webkitGetUserMedia(videoObj, function (stream) {
                    video.src = window.webkitURL.createObjectURL(stream);
                    video.play();
                }, errBack);
            } else if (navigator.mozGetUserMedia) { // WebKit-prefixed
                navigator.mozGetUserMedia(videoObj, function (stream) {
                    video.src = window.URL.createObjectURL(stream);
                    video.play();
                }, errBack);
            }

            // Trigger photo take
            document.getElementById("snap").addEventListener("click", function () {
                context.drawImage(video, 0, 0, 213, 160);
                document.getElementById('canvasImg').src = canvas.toDataURL("image/png");

//                    document.getElementById('video').style.display = "none";  // hide the live image video portin after click on take picture
            });



        }, false);

    </script>



</head>
<body>
    <h1>Capture Image using Camera!</h1>

    <!--
     Ideally these elements aren't created until it's confirmed that the 
     client supports video/camera, but for the sake of illustrating the 
     elements involved, they are created with markup (not JavaScript)
    -->
    <video id="video" width="213" height="160" autoplay></video>
    <button id="snap">Capture Photo</button>

    <form action="savetesting.jsp" method="post">
        <canvas id="canvas" width="213" height="160"  name="ImageFile1" style="display: none;"></canvas>

        <img id="canvasImg" name="ImageFile"><img>
        <input type="reset" value="Reset"/>
        <input type="submit" value="Submit"/>

    </form>

</body>
</html>

但是现在我正在尝试用

request.getParameter("ImageFile");

但未能成功。

请帮助我解决这个问题,如何在下一页获取图像,然后我将尝试将图像保存在MS SQL Server数据库中,但仅使用JSP(不使用Servlet)。

共有1个答案

齐思淼
2023-03-14

画布和img都不是表单输入字段,即使放在表单标记中

<input type="hidden" name="ImageData" id="ImageData" />

你的形式,还有

document.getElementById('ImageData').value = canvas.toDataURL("image/png");

到单击snap按钮的事件处理程序

然后,在JSP中,使用

String imageData = request.getParameter("ImageData");

并使用javax.xml.bind.DatatypeConzer处理它们,如在java中将DataURL图像转换为图像文件中所述

 类似资料:
  • 问题内容: 如何连续从摄像头捕获图像? 我想尝试对象识别(也许使用Java Media Framework)。 我当时正在考虑创建两个线程 一个线程: 节点1:捕获实时图像 节点2:将图片另存为“ 1.jpg” 节点3:等待5秒 节点4:重复… 其他线程: 节点1:等到捕获图像 节点2:使用“ 1.jpg”获取每个像素的颜色 节点3:将数据保存在数组中 节点4:重复… 问题答案: 此JavaCV实

  • 问题内容: 以前,我已经将可运行的网络摄像头代码放入我的应用程序中,但是现在当我更新到AngularJS v1.5.0时,它无法正常工作。我正在使用与v1.3.0完美配合的网络摄像头指令。 这是我的代码: 但是现在,AngularJS v1.5.0给出了以下错误: 我还尝试对AngularJS ng-Camera使用其他解决方案,但即使是演示页也不适用于我。 注意: 我知道问题在于我们无法从Ang

  • 我正在通过将前置摄像头设置为 AVD 管理器中的“webcam0”来将网络摄像头连接到模拟器。当我启动模拟器的相机应用程序时,我收到错误 以下是 Android 源代码的相关部分: 网络摄像头已被正确分配了0的ID,因为只有1个摄像头。但是,可能仍然为0。这意味着模拟器正在注册摄像头,但它没有费心更新连接的摄像头数量。 如何连接网络摄像头,使其能够被模拟器正确识别? 编辑:命令

  • 问题内容: 我想从网络摄像头捕获单个图像并将其保存到磁盘。我想用Java或Python(最好是Java)做到这一点。我想要在64位Win7和32位Linux上都可以使用的东西。 编辑:我使用Python 3.x,而不是2.x 因为在其他地方我都看到这个问题,使人们设法感到困惑,所以我将明确说明一些事情: 我不想使用处理 除上述语言外,我不想使用任何其他语言 我确实想以任何方式,形状或形式在屏幕上显

  • 我正在尝试用相机拍照并上传到Firebase。我使用AlertDialog询问用户是否想要使用相机或从图库中选择图像。我可以用相机拍照,但是当我试图上传图像时,它说找不到图像。 以下是我的图像选择方法: 下面是我上传图片的方法: 提前感谢任何帮助的朋友。

  • 我想在没有用户交互的情况下自动捕获图像,我能够使用捕获按钮捕获图像,但我的要求是图像捕获应该自动请帮助我实现这一点。