Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从浏览器画布保存图片_Asp.net Mvc_Flash_Canvas_Paint - Fatal编程技术网

Asp.net mvc 从浏览器画布保存图片

Asp.net mvc 从浏览器画布保存图片,asp.net-mvc,flash,canvas,paint,Asp.net Mvc,Flash,Canvas,Paint,我目前正在用ASP.NETMVC开发一个网站,我需要用户能够在画布上绘制图片的功能,这些图片可以保存在数据库中。这样做的最佳方法是什么?最好是非常轻量级的解决方案。我认为flash将是最容易访问的平台,可能会有一些好的免费解决方案 谢谢您应该能够在Silverlight中执行类似的操作。。。Silverlight应该能够毫无困难地将鼠标移动转换为线条笔划。我不知道是否也有纯JavaScript解决方案。您可以使用画布在DotNet中实现这一点 canvas.SaveAs(dstfile, "Qu

我目前正在用ASP.NETMVC开发一个网站,我需要用户能够在画布上绘制图片的功能,这些图片可以保存在数据库中。这样做的最佳方法是什么?最好是非常轻量级的解决方案。我认为flash将是最容易访问的平台,可能会有一些好的免费解决方案


谢谢

您应该能够在Silverlight中执行类似的操作。。。Silverlight应该能够毫无困难地将鼠标移动转换为线条笔划。我不知道是否也有纯JavaScript解决方案。

您可以使用画布在DotNet中实现这一点

canvas.SaveAs(dstfile, "Quality=high");
以下是教程:


不需要使用Flash。

Flash可以非常轻松地完成这项工作,不过您必须设置后端才能启用它。基本上,您可以将舞台上的任何东西绘制成像素数据的字节数组,然后对字节数组进行编码以符合例如.PNG规范。然后将整个包作为字节数组发送到后端,并确保服务器端脚本知道如何将其作为.png文件写入服务器,然后将该位置保存在数据库中。这有意义吗


在Flex Cookbook上可以找到一个广泛的例子:

保存图像的一个很好的方法是使用原生的
toDataURL
方法

var element = document.getElementById('drawingCanvas');
var data = element.toDataURL();
// data holds the base64 encoded image of the canvas
从那里,您可以将其异步发布到服务器

$.ajax({
    'type': 'post',
    'dataType': 'json',
    'data': {'image': data},
    'url': '/json/image_converter.php'
});
并使用ImageMagick将其转换为图像:

list($header, $data) = explode(',', $_POST['image']);
$image = base64_decode($data);

$magick = new Imagick();
$magick->setFormat('png');

$magick->readImageBlob($image);

$magick->writeImage('/home/dude/imagefile.png');

编辑:哦,当然我忘了说IE不支持canvas,因此没有toDataURL方法。即使使用explorer canvas解决方案。

用户MouseUp、mouseDown和MouceMove事件以及LintTo,移动到canvas的事件(所有javascript)来绘制图片,然后使用canvas.toDataURL()将此图片保存在yr数据库中的base64字符串中。

我认为问题是指HTML5中的
标记,不是.NET中的
Canvas
类。