有没有办法从键盘上获取打印屏幕图像。比方说,我有一个图像托管网站,想要一个功能,用户可以粘贴图像,只需这样托管它。那可能吗?
对不起,这是一个模糊的问题。
编辑:是否可以使用某种第三方插件?是否有任何类似的Firefox插件?答案 0 :(得分:2)
使用Canvas
元素在HTML 5中看起来可以 。见this question.
在Flash中似乎不可能,但在Adobe Air中。请参阅this question。
答案 1 :(得分:2)
签名 Java小程序可以访问剪贴板。
查看ClipboardService
界面。
用户第一次加载页面时,会看到一个消息框,要求获得访问剪贴板的权限。
更新我刚刚发现applet not 需要签名才能使用ClipboardService
,尽管用户仍会看到警告消息第一次。
答案 2 :(得分:0)
不,据我所知,Javascript和Flash已知多年,不可能。 Flash和JavaScript都不会让你深入挖掘系统。 (另外,如果他们可以随意阅读我的剪贴板,我作为用户不会喜欢它!)
答案 3 :(得分:0)
我有一个这样做的小程序。
用户点击打印屏幕,applet从剪贴板复制图像,格式化并上传到服务器。
以下是从CB中获取它的类,如果您希望格式化并上传到服务器的其他内容让我知道。
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.security.AccessController;
import java.security.PrivilegedAction;
public class ImagefromCB
{
// If an image is on the system clipboard, this method returns it;
// otherwise it returns null.
public Image getImageFromClipboard()
{
Clipboard systemClipboard = (Clipboard) AccessController.doPrivileged(new PrivilegedAction() {
public Object run()
{
Clipboard tempClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
return tempClipboard;
}
});
// get the contents on the clipboard in a
// Transferable object
Transferable clipboardContents = systemClipboard.getContents(null);
// check if contents are empty, if so, return null
if (clipboardContents == null)
return null;
else
try
{
// make sure content on clipboard is
// falls under a format supported by the
// imageFlavor Flavor
if (clipboardContents.isDataFlavorSupported(DataFlavor.imageFlavor))
{
// convert the Transferable object
// to an Image object
Image image = (Image) clipboardContents.getTransferData(DataFlavor.imageFlavor);
return image;
}
} catch (UnsupportedFlavorException ufe)
{
ufe.printStackTrace();
} catch (IOException ioe)
{
ioe.printStackTrace();
}
return null;
}
public Image getCBImage()
{
System.out.println("Copying image from system clipboard.");
Image image = getImageFromClipboard();
if (image != null)
{
return image;
} else
{
System.out.println("No Image found on Clipboard");
return null;
}
}
}
答案 4 :(得分:0)
执行此操作的两个产品是Jira和Youtrack。两者都使用Java Applet。 在制作系统时,您可以使用这些产品GUI作为灵感。 我特别喜欢YouTracks Image from Clipboard Without Preview,你不需要直接与applet交互。