Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将剪贴板图像粘贴到画布_Javascript_Canvas_Clipboard - Fatal编程技术网

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

大多数现代浏览器甚至不允许您从剪贴板读取文本,除非有特定的配置更改/权限对话框。此外,映像仍然是客户端的,我猜您需要服务器端的映像?实际上,我只需要将映像设置为客户端。