Java 从剪贴板粘贴图像

Java 从剪贴板粘贴图像,java,html,applet,clipboard,Java,Html,Applet,Clipboard,我正在尝试将剪贴板中的图像粘贴到我的网站上(如复制和粘贴)。如果有人能就此提出建议,我将不胜感激。我可以使用HTML5或小程序或任何方式实现这一点。非常感谢您提供任何建议或参考链接。即使小程序未签名,也可以使用JNLP API ClipboardService cs = (ClipboardService)ServiceManager.lookup("javax.jnlp.ClipboardService"); Image c = (Image)cs.getContents().getTrans

我正在尝试将剪贴板中的图像粘贴到我的网站上(如复制和粘贴)。如果有人能就此提出建议,我将不胜感激。我可以使用HTML5或小程序或任何方式实现这一点。非常感谢您提供任何建议或参考链接。

即使小程序未签名,也可以使用JNLP API

ClipboardService cs = (ClipboardService)ServiceManager.lookup("javax.jnlp.ClipboardService");
Image c = (Image)cs.getContents().getTransferData(DataFlavor.imageFlavor);

设法用JavaScript实现了这一点

JavaScript

if (!window.Clipboard) {
   var pasteCatcher = document.createElement("apDiv1");
   pasteCatcher.setAttribute("contenteditable", "");
   pasteCatcher.style.opacity = 0;
   document.body.appendChild(pasteCatcher);
   pasteCatcher.focus();
   document.addEventListener("click", function() { pasteCatcher.focus(); });
} 

window.addEventListener("paste", onPasteHandler);

function onPasteHandler(e)
{
    if(e.clipboardData) {
        var items = e.clipboardData.items;
        if(!items){
            alert("Image Not found");
        }
        for (var i = 0; i < items.length; ++i) {
        if (items[i].kind === 'file' && items[i].type === 'image/png') {
            var blob = items[i].getAsFile(),
                source = window.webkitURL.createObjectURL(blob);

            pastedImage = new Image();
            pastedImage.src = source;

            pasteData();
            }
        }
    }
}

function pasteData()
{
    drawCanvas = document.getElementById('drawCanvas1');
    ctx = drawCanvas.getContext( '2d' );
    ctx.clearRect(0, 0, 640,480);
    ctx.drawImage(pastedImage, 0, 0);
}
if(!window.Clipboard){
var pasteCatcher=document.createElement(“apDiv1”);
setAttribute(“contenteditable”,”);
pasteCatcher.style.opacity=0;
document.body.appendChild(粘贴捕捉器);
focus();
document.addEventListener(“单击”,函数(){pasteCatcher.focus();});
} 
addEventListener(“粘贴”,onPasteHandler);
函数onPasteHandler(e)
{
如果(例如剪贴簿数据){
var items=e.clipboardData.items;
如果(!项){
警报(“未找到图像”);
}
对于(变量i=0;idrawCanvas=document.getElementById('drawCanvas1');
ctx=drawCanvas.getContext('2d');
ctx.clearRect(0,060480);
ctx.drawImage(粘贴图像,0,0);
}
DIV

粘贴测试
首先,制作一个文件(图像)服务器

然后使用js监听粘贴事件。 代码关键字:

addEventListener 'paste' clipboard image
然后使用ajax上传到文件服务器。ajax响应url

最后通过url制作img标签


小程序已过期。。。忽略。

“我可以使用..applet实现此功能吗”是。但它必须由您进行数字签名,并在提示时得到用户的信任。顺便说一句-DYM是否应该将图像上载到网站(例如,以便其他人稍后可以看到)?@andrewhompson该场景是我的用户需要截屏他们的错误并粘贴到我的网站中。他们不想将屏幕粘贴到绘画或photoshop中,然后将其转换为图像并上传到网站上。如果您能分享小程序的任何参考链接,将不胜感激。谢谢,在这里我集中了我对小程序的“最佳链接”。警告一下,伙计们-这在IE8或更早版本下是行不通的。在Firefox 20+和Chrome.drawCanvas=document.getElementById('drawCanvas1')中都可以正常工作(可能在早期版本中工作,但不确定);-->drawCanvas1是哪种类型的控件
addEventListener 'paste' clipboard image