【发布时间】:2017-02-07 21:11:10
【问题描述】:
我想允许用户在网页上粘贴图片。在对 Stack Overflow 进行研究之后,O 确实找到了一种使用画布粘贴图像的方法,但每次我在下拉菜单中选择一个元素时,画布也会被重置。有没有其他方法可以做到这一点?我还需要获取无法通过画布的图像路径。
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
Welcome to ASP.NET!
</h2>
1. Copy image data into clipboard or press Print Screen <br>
2. Press Ctrl+V (page/iframe must be focused):
<br /><br />
<canvas contenteditable style="border:1px solid grey;" id="cc" width="200" height="200">
<script type="text/javascript">
var canvas = document.getElementById("cc");
var ctx = canvas.getContext("2d");
//=== Clipboard ===============================
window.addEventListener("paste", pasteHandler); //chrome
//handler
function pasteHandler(e) {
if (e.clipboardData == false) return false; //empty
var items = e.clipboardData.items;
if (items == undefined) return false;
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") == -1) continue; //not image
var blob = items[i].getAsFile();
var URLObj = window.URL || window.webkitURL;
var source = URLObj.createObjectURL(blob);
paste_createImage(source);
}
}
//draw pasted object
function paste_createImage(source) {
var pastedImage = new Image();
pastedImage.onload = function () {
ctx.drawImage(pastedImage, 0, 0);
}
pastedImage.src = source;
}
</script>
</asp:Content>
【问题讨论】:
-
也许你应该发布你的代码
-
Dropzone.js 会帮助你。在此处查看示例 wrapbootstrap.com/preview/WB0R5L90S 然后转到表单 > 文件上传。
-
如何在此处添加我的代码,任何人都可以告诉我/
-
好吧,伙计们,我整理了一种方式,我将所有下拉菜单都放在更新面板中,这样它就不会重置画布。现在我想将粘贴在画布中的图像保存到一个文件夹中,这可能吗?如何?