Javascript 将剪贴板图像粘贴到画布
我有一个画布,我需要用户能够粘贴到图像。Javascript 将剪贴板图像粘贴到画布,javascript,canvas,clipboard,Javascript,Canvas,Clipboard,我有一个画布,我需要用户能够粘贴到图像。 我想这是跨浏览器。我只想使用html/javascript。我也愿意使用flash对象。据我所知,仅仅使用JavaScript和HTML是无法做到这一点的。然而,描述了如何使用Java小程序实现这一点,这在Chrome中运行良好,尽管到目前为止,我还没有弄清楚如何让它在Firefox中运行。您可以使用这个jQuery插件来检测剪贴板粘贴。我会假设你知道如何绘制图像一旦你有数据从剪贴板 # jquery.paste_image_reader.coffee
我想这是跨浏览器。我只想使用html/javascript。我也愿意使用flash对象。据我所知,仅仅使用JavaScript和HTML是无法做到这一点的。然而,描述了如何使用Java小程序实现这一点,这在Chrome中运行良好,尽管到目前为止,我还没有弄清楚如何让它在Firefox中运行。您可以使用这个jQuery插件来检测剪贴板粘贴。我会假设你知道如何绘制图像一旦你有数据从剪贴板
# jquery.paste_image_reader.coffee
(($) ->
$.event.fix = ((originalFix) ->
(event) ->
event = originalFix.apply(this, arguments)
if event.type.indexOf('copy') == 0 || event.type.indexOf('paste') == 0
event.clipboardData = event.originalEvent.clipboardData
return event
)($.event.fix)
defaults =
callback: $.noop
matchType: /image.*/
$.fn.pasteImageReader = (options) ->
if typeof options == "function"
options =
callback: options
options = $.extend({}, defaults, options)
this.each () ->
element = this
$this = $(this)
$this.bind 'paste', (event) ->
found = false
clipboardData = event.clipboardData
Array::forEach.call clipboardData.types, (type, i) ->
return if found
return unless type.match(options.matchType)
file = clipboardData.items[i].getAsFile()
reader = new FileReader()
reader.onload = (evt) ->
options.callback.call(element, file, evt)
reader.readAsDataURL(file)
found = true
)(jQuery)
使用:
$("html").pasteImageReader
callback: (file, event) ->
# Draw the image with the data from
# event.target.result
大多数现代浏览器甚至不允许您从剪贴板读取文本,除非有特定的配置更改/权限对话框。此外,映像仍然是客户端的,我猜您需要服务器端的映像?实际上,我只需要将映像设置为客户端。