Я нашел стороннюю библиотеку Flash + JavaScript с открытым исходным кодом, которая сделала это довольно простым, под названием ' jpegcam '.
Следующий код построен на Asp.Net MVC 3 (Razor View + T4MVC)
.
Шаг 1 : включить библиотеку JavaScript
<script type="text/javascript" src="@Url.Content("~/Scripts/jpegcam/htdocs/images.js")"></script>
Шаг 2 : настройте jpegcam и подключите необходимые крючки
<script type="text/javascript">
webcam.set_api_url('@Url.Action(MVC.Images.Snapshot())');
webcam.set_swf_url('@Url.Content("~/Scripts/jpegcam/htdocs/webcam.swf")');
webcam.set_quality(90); // JPEG quality (1-100)
webcam.set_shutter_sound(false, '@Url.Content("~/Scripts/jpegcam/htdocs/shutter.mp3")');
webcam.set_hook('onComplete', 'upload_complete');
document.write(webcam.get_html(320, 240));
function upload() {
webcam.freeze(); // Snapshot the image from the camera
webcam.upload(); // POST the data w/ content type 'image/jpeg'
}
function upload_complete(response) {
var json = jsonParse(response);
if (json.Redirect) {
window.location.replace(json.Redirect);
} else if (json.Error) {
Notifier.Error('Error', json.Error.Message);
webcam.reset();
} else {
Notifier.Error('Error', 'An unknown error has occurred.');
webcam.reset();
}
}
</script>
Примечание: вызов webcam.set_api_url()
устанавливает URL-адрес POST.
Шаг 3 : Подключите кнопки в представлении
<p class="actions">
<input id="capture-configure" class="secondary-button" type="button" value="Configure..." onclick="webcam.configure()" />
<input id="capture-submit" class="primary-button" type="button" value="Snap Mugshot" onclick="upload()" />
<span class="alternate">
or <a class="cancel" href="@Url.Action(MVC.Images.View())">Cancel</a>
</span>
</p>
Шаг 4 : Создайте действие контроллера для обслуживания POST
[HttpPost]
public virtual ActionResult Snapshot()
{
var image = new System.Web.Helpers.WebImage(Request.InputStream);
// Do fun, amazing things with the jpeg image
return RedirectToAction(MVC.Images.View());
}
Примечание: System.Web.Helpers.WebImage
является частьюпакета NuGet «microsoft-web-helpers».