documentation chứa nhiều ví dụ. Tất cả những gì cần thiết là đọc và thử.
Vì vậy, dưới đây là cách Index.cshtml
xem của bạn có thể trông giống như sử dụng phần HTML5 của trình duyệt để mã hóa các dữ liệu hình ảnh thô đến từ webcam thành một hình ảnh PNG sẽ được gửi đến máy chủ sử dụng một yêu cầu AJAX:
<script src="@Url.Content("~/Scripts/jquery.webcam.js")" type="text/javascript"></script>
<div id="webcam"></div>
<a href="#" id="upload">Capture image and send for processing</a>
<script type="text/javascript">
var pos = 0, ctx = null, saveCB, image = [];
var canvas = document.createElement('canvas');
canvas.setAttribute('width', 320);
canvas.setAttribute('height', 240);
ctx = canvas.getContext('2d');
image = ctx.getImageData(0, 0, 320, 240);
var saveCB = function (data) {
var col = data.split(';');
var img = image;
for (var i = 0; i < 320; i++) {
var tmp = parseInt(col[i]);
img.data[pos + 0] = (tmp >> 16) & 0xff;
img.data[pos + 1] = (tmp >> 8) & 0xff;
img.data[pos + 2] = tmp & 0xff;
img.data[pos + 3] = 0xff;
pos += 4;
}
if (pos >= 4 * 320 * 240) {
ctx.putImageData(img, 0, 0);
$.post('@Url.Action("Upload")', { type: 'data', image: canvas.toDataURL("image/png") }, function (result) {
if (result.success) {
alert('The image was successfully sent to the server for processing');
}
});
pos = 0;
}
};
$('#webcam').webcam({
width: 320,
height: 240,
mode: 'callback',
swffile: '@Url.Content("~/scripts/jscam_canvas_only.swf")',
onSave: saveCB,
onCapture: function() {
webcam.save();
}
});
$('#upload').click(function() {
webcam.capture();
return false;
});
</script>
và điều khiển Trang chủ của bạn:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Upload(string image)
{
image = image.Substring("data:image/png;base64,".Length);
var buffer = Convert.FromBase64String(image);
// TODO: I am saving the image on the hard disk but
// you could do whatever processing you want with it
System.IO.File.WriteAllBytes(Server.MapPath("~/app_data/capture.png"), buffer);
return Json(new { success = true });
}
}
Nguồn
2012-02-26 09:36:59
Bạn đã thành công trong việc tạo ứng dụng web này có ảnh và tải lên máy chủ để đọc mã vạch không? Tôi chuẩn bị làm chính xác điều tương tự và gặp khó khăn –
Yea, tôi đã thành công trong việc sử dụng Silverlight. Có thể đọc được hình ảnh, nhưng đã có thời gian đọc mã vạch thực sự, có lẽ cần một webcam tốt hơn. – nagates
Nhưng Silverlight không hoạt động trên Android và IOS! Vậy ứng dụng web của bạn không dành cho thiết bị Android và iOS? –