汉王高拍仪 base64 格式上传图片
功能:base64 上传图片
设备:汉王H650por
效果图如下
实现代码
下方接口代码页面
<html>
<head>
<title>欢迎使用汉王e拍仪控件</title>
</head>
<body onload="initctrl()">
<object classid="clsid:6F47932F-3873-49B4-829B-04AF831A92B1" id=hwcam CODEBASE="*.cab#version=0,0,0,0" width=640 height=480></object>
<object classid="clsid:AF7D4101-FADA-48BE-B240-F05F877FC95A" id=hwthumb CODEBASE="*.cab#version=0,0,0,0" width=200 height=480>
</object>
<script LANGUAGE=JavaScript event="AutoCaptureEvent()" for=hwcam>
capture();
</script>
<script LANGUAGE=JavaScript event="TimerCaptureEvent()" for=hwcam>
capture();
</script>
<script type="text/javascript" src="#(ctx)/assets/libs/jquery/jquery-3.2.1.min.js"></script>
<script language="javascript">
var parentLayerId;
var submitUrl;
var submitSuccess;
var formData;
function getcurcam()
{
return document.getElementById("CamList").value;
}
//初始化
function initctrl()
{
deloptionCam();
var count = hwcam.GetCamCount();
for(i = 0; i < count; i++)
{
var s = hwcam.GetCamName(i);
addoptionCam(s);
}
document.getElementById("CamList").value = 1;
initclr();
initAudio();
initcutmode();
initclrspace();
}
function initAudio()
{
var count = hwcam.GetAudioCount();
for(var i = 0; i < count; i++)
{
var s = hwcam.GetAudioName(i);
addoptionaudio(s);
}
}
function changeaudio()
{
var obj=document.getElementById("audioList").options;
hwcam.SetAudio(obj.selectedIndex);
}
function addoptionaudio(s)
{
var obj=document.getElementById("audioList").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
function initcutmode()
{
addoptioncutmode("不裁切");
addoptioncutmode("手工裁切");
addoptioncutmode("自动裁切");
document.getElementById("cutMode").value = 0;
}
function changecutmode()
{
var idx = getcurcam();
var obj=document.getElementById("cutMode").options;
if(obj.selectedIndex == 0)
{
hwcam.SetMouseMode(idx, 0);
hwcam.SetAutoCrop(idx, false);
}
else if(obj.selectedIndex == 1)
{
hwcam.SetMouseMode(idx, 1);
hwcam.SetAutoCrop(idx, false);
}
else if(obj.selectedIndex == 2)
{
hwcam.SetMouseMode(idx, 0);
hwcam.SetAutoCrop(idx, true);
}
}
function addoptioncutmode(s)
{
var obj=document.getElementById("cutMode").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
function addoptionCam(s)
{
var obj=document.getElementById("CamList").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
function deloptionCam()
{
var obj=document.getElementById("CamList").options;
while (obj.length > 0)
{
obj.options.remove(obj.length - 1);
}
}
//开始预览
function startpreview()
{
var idx = getcurcam();
hwcam.StartPreview(idx);
enumres();
initScanSize();
}
//停止预览
function stoppreview()
{
var idx = getcurcam();
hwcam.StopPreview(idx);
}
function getdatestr()
{
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var hour = date.getHours();
var min = date.getMinutes();
var sec = date.getSeconds();
if(hour >= 0 && hour <= 9)
{
hour = "0" + hour;
}
if(min >= 0 && min <= 9)
{
min = "0" + min;
}
if(sec >= 0 && sec <= 9)
{
sec = "0" + sec;
}
var currentdate = date.getFullYear() + month + strDate + hour + min + sec;
return currentdate.toString();
}
//拍照
function capture()
{
var fname = getdatestr();
var idx = getcurcam();
hwcam.CaptureImage(idx, "d:\\hw" + fname + ".jpg");
hwthumb.AddImage("d:\\hw" + fname + ".jpg");
}
function changedev()
{
var idx = getcurcam();
if(idx == 0)
{
hwcam.StopPreview(1);
}
else if(idx == 1)
{
hwcam.StopPreview(0);
}
hwcam.StartPreview(idx);
enumres();
}
function changeres()
{
var idx = getcurcam();
var obj=document.getElementById("resList").options;
var x = obj.selectedIndex;
hwcam.SetCamResIndex(idx, x);
}
function enumres()
{
var idx = getcurcam();
deloptionRes();
var iResIndex = 0;
if(iResIndex != -1)
{
var count = hwcam.GetResCount(idx);
for(i = 0;i < count; i++)
{
var w = hwcam.GetResWidth(idx, i);
var h = hwcam.GetResHeight(idx, i);
var str = w.toString()+"x"+h.toString();
addoptionRes(str);
}
document.getElementById("resList").value=iResIndex;
}
}
function deloptionRes()
{
var obj=document.getElementById("resList").options;
while (obj.length > 0)
{
obj.options.remove(obj.length - 1);
}
}
function addoptionRes(s)
{
var obj=document.getElementById("resList").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
function hwmark()
{
alert(hwcam.GetHWFlag());
}
function rotleft()
{
var idx = getcurcam();
hwcam.RotateLeft(idx);
}
function rotright()
{
var idx = getcurcam();
hwcam.RotateRight(idx);
}
function setexposure(obj)
{
var idx = getcurcam();
hwcam.SetExposure(idx, obj.checked, -3);
}
function initclr()
{
addoptionclr("彩色");
addoptionclr("灰度");
addoptionclr("黑白");
addoptionclr("彩色去底色");
document.getElementById("clrList").value = 0;
}
function addoptionclr(s)
{
var obj=document.getElementById("clrList").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
function changeclr()
{
var idx = getcurcam();
var obj=document.getElementById("clrList").options;
if(obj.selectedIndex == 3)
{
hwcam.SetDelBack(idx, true);
hwcam.SetColorMode(idx, 0);
}
else
{
hwcam.SetDelBack(idx, false);
hwcam.SetColorMode(idx, obj.selectedIndex);
}
}
function initclrspace()
{
addoptionclrspace("YUY2");
addoptionclrspace("MJPG");
document.getElementById("clrSpace").value = 0;
}
function changeclrspace()
{
var idx = getcurcam();
var obj=document.getElementById("clrSpace").options;
hwcam.SetClrSpace(idx, obj.selectedIndex);
}
function addoptionclrspace(s)
{
var obj=document.getElementById("clrSpace").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
//拍照
function capture()
{
var fname = getdatestr();
var idx = getcurcam();
hwcam.CaptureImage(idx, "d:\\hw" + fname + ".jpg");
hwthumb.AddImage("d:\\hw" + fname + ".jpg");
}
//图片上传
function httpupload()
{
var bb = hwcam.CaptureBase64(idx);//capturebase64(idx);
console.log(bb);
var idx = getcurcam();
var aa=hwcam.CaptureBase64(idx);
var a='data:image/jpeg;base64,'+aa;
var datastr={"image":a}
$.ajax({
type:'POST',
url:'http://da.cj.gov.cn/upload/hanvon/image',
data:datastr,
contentType : 'application/x-www-form-urlencoded',
dataType:'json',
success:function(res){
if(res.code = 200){
submitSuccess(res.data, '');//返回给父页面
parent.layer.closeAll();
}else{
layer.msg(res.msg);
}
}
})
}
function capturebase64()
{
var idx = getcurcam();
alert(hwcam.CaptureBase64(idx));
var aa=hwcam.CaptureBase64(idx);
console.log(aa);
}
function initScanSize()
{
var count = hwcam.GetScanSizeCount();
for(var i = 0; i < count; i++)
{
var s = hwcam.GetScanSizeName(i);
addoptionscansize(s);
}
}
function changescansize()
{
var obj=document.getElementById("scanSize").options;
hwcam.SetScanSize(obj.selectedIndex);
}
function addoptionscansize(s)
{
var obj=document.getElementById("scanSize").options;
var opt = new Option(s, obj.length );
obj.options.add(opt);
}
function deletescansize()
{
var obj=document.getElementById("scanSize").options;
hwcam.DeleteScanSize(obj.selectedIndex);
obj.options.remove(obj.selectedIndex);
}
function zoomin()
{
var idx = getcurcam();
hwcam.ZoomIn(idx);
}
function zoomout()
{
var idx = getcurcam();
hwcam.ZoomOut(idx);
}
</script>
<BR><br>设备列表:<select id="CamList" style="width: 90px" name="curCam"
onchange="changedev()"></select>
分辨率:<select id="resList" style="width: 90px" name="curRes"
onchange="changeres()"></select>
颜色:<select id="clrList" style="width: 90px" name="curClr"
onchange="changeclr()"></select>
裁切方式:<select id="cutMode" style="width: 90px" name="curCut"
onchange="changecutmode()"></select>
颜色空间:<select id="clrSpace" style="width: 90px" name="curClrSpace"
onchange="changeclrspace()"></select>
拍照尺寸:<select id="scanSize" style="width: 90px" name="curScanSize"
onchange="changescansize()"></select>
<input type=button value="删除" onclick="deletescansize()"/>
麦克风:<select id="audioList" style="width: 90px" name="curAudio"
onchange="changeaudio()"></select>
<input id="wmbtn" type="checkbox" value="" onclick="setexposure(this)" />自动曝光
<br><br><input type=button value="开始预览" onclick="startpreview()"/>
<input type=button value="停止预览" onclick="stoppreview()"/>
<input type=button value="汉王标识" onclick="hwmark()" style="display:none"/>
<input type=button value="左转" onclick="rotleft()"/>
<input type=button value="右转" onclick="rotright()"/>
<input type="button" VALUE="身份证读取" onClick="readidcard()" style="display:none">
<input type=button value="放大" onclick="zoomin()"/>
<input type=button value="缩小" onclick="zoomout()" />
<input type=button value="拍照" onclick="capture()" style="display:none"/>
<input type=button value="拍照base64" onclick="capturebase64()" style="display:none"/>
<input type=button value="图片上传" onclick="httpupload()"/>
</body>
</html>
注:图片上传为base 64 上传
根据项目需求 取不同的控件