是否可以使用asp.net web应用程序对图像做一些注释(如编校)工作?

本文关键字:注释 工作 asp 可以使 net web 图像 应用程序 是否 | 更新日期: 2023-09-27 18:15:23

我在asp.net网页上有一个图像编辑工作。实际上,工作是我必须选择图像的区域,然后在图像的选定部分上绘制一些图形对象,如黑色矩形框,以隐藏图像的选定部分(类似于编辑工作)。最后必须将编辑工作保存回原始图像。

我已经在我的网页上加载了图像,并允许用户使用javascript函数在图像上绘制一些矩形框。

我还编写了用于将图像保存回服务器的代码…但它不工作....

我认为控件从未越过这条线(可能是这条线上有一些错误)

var image = document.getElementById("Image2").toDataURL("image/png");

为了检查目的,我在上面的行后面放了一个警告语句…但它没有被打印出来……什么也没发生?…

在图像上绘制矩形框的Java脚本代码:

<head>
 <style type="text/css">
        #rubberBand 
        {
            position: absolute;
            visibility: hidden;
            width:0px;
            height:0px;
            border: 2px;border-color:Red;
            background-color:black;
         }
    </style>
</head>
<body>
<div id="rubberBand"></div>
<asp:Image ID="Image2" runat="server" Width="650px" Height="700px"/>
<script type="text/javascript">
        var IMG;
        function startRubber(evt) {
            if (document.all) {
                var r = document.all.rubberBand;
                r.style.width = 0;
                r.style.height = 0;
                r.style.pixelLeft = event.x;
                r.style.pixelTop = event.y;
                r.style.visibility = 'visible';
                IMG.ondragstart = cancelDragDrop; // otherwise IE will try to drag the image
            }
            else if (document.getElementById) {
                // firefox
                evt.preventDefault();
                var r = document.getElementById('rubberBand');
                r.style.width = 0;
                r.style.height = 0;
                r.style.left = evt.clientX + 'px';
                r.style.top = evt.clientY + 'px';
                r.style.visibility = 'visible';
                r.onmouseup = stopRubber;
            }
            IMG.onmousemove = moveRubber;
        }
        function moveRubber(evt) {
            if (document.all) { // IE
                var r = document.all.rubberBand;
                r.style.width = event.x - r.style.pixelLeft;
                r.style.height = event.y - r.style.pixelTop;
            }
            else if (document.getElementById) { // firefox
                var r = document.getElementById('rubberBand');
                r.style.width = evt.clientX - parseInt(r.style.left);
                r.style.height = evt.clientY - parseInt(r.style.top);
            }
            return false; // otherwise IE won't fire mouseup
        }
        function stopRubber(evt) {
            IMG.onmousemove = null;
        }
        function cancelDragDrop() {
            window.event.returnValue = false;
        }
        IMG = document.getElementById('Image2');
        IMG.onmousedown = startRubber;
        IMG.onmouseup = stopRubber;
   </script>
</body>
这是我的java脚本代码保存图像:
<head>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
   <script type="text/javascript">
        // Send the canvas image to the server.
        $(function () {
            $("#btnSend").click(function () {
                var image = document.getElementById("Image2").toDataURL("image/png");
                image = image.replace('data:image/png;base64,', '');
                $.ajax({
                    type: 'POST',
                    url: 'Default.aspx/UploadImage',
                    data: '{ "imageData" : "' + image + '" }',
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (msg) {
                        alert('Image sent!');
                    }
                });
            });
        });
    </script>
</head>
<body>
<asp:Image ID="Image2" runat="server" Width="650px" Height="700px"/>
<input id="btnSend" type="button" value="Send To Server" />
</body>

保存图像的后端代码:

[WebMethod()]
        public static void UploadImage(string imageData)
        {
            FileStream fs = new FileStream("D:''vs-2010projects''js_save''js_save''myimages''image.png", FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            byte[] data = Convert.FromBase64String(imageData);
            bw.Write(data);
            bw.Close();
        }

是否可以使用asp.net web应用程序对图像做一些注释(如编校)工作?

你似乎已经找到了一个现成的解决方案,我不觉得奇怪,你没有找到。

你需要把你的问题分解成你能解决的或别人已经解决的小步骤。简而言之:

  1. 渲染图片到网页
  2. 允许用户通过使用JavaScript在图像周围拖动某种形式的框来"编辑"图像
  3. 将方框坐标上传到您的站点,在那里您可以在图像上绘制方框并将其保存为新图像

或者,您可以在客户端执行第3步,使用JavaScript画布,其中浏览器将编辑后的图像发送回服务器。

你现在必须指出你在上述哪一点上有问题。