Closed LvShuaiChao closed 2 years ago
会考虑增加将截图复制到剪切板,等有空了研究下,有更新了再通知你
功能已支持
已经看到这个功能了,尝试了一下,效果非常棒,非常感谢。 不过我对于下载图像到本地的需求并不大,就将那几行代码注释掉了。
@xxxily 您好,是否可以考虑增添截图功能的配置选项?比如,设定Shift + S截图后,可以选择仅保存到本地文件、仅复制到剪切板,或同时执行两种操作。目前的截图逻辑会同时进行这两种操作,这在只需复制截图到剪切板的情况下,会导致本地保存冗余的图片。
在看视频网站的时,如果要做笔记,并需要将这个图片下载到本地,仅仅需要将图片的数据内容写入到剪切板上面,然后在笔记软件或者word 上直接Ctrl+V粘贴进去,这样才是想要的效这样才是想要的效果。 针对这个需求,我在源代码上做了如下改进,在capture()函数中将canvas的值写入到剪切板中,如下图所示 实际操作中发现Shift+S,剪切板上面没有内容,但是使用Snipaste的贴图功能却可以显示出来视频中截取的帧,我不知道自己修改的代码到底哪里出问题了,如果可以的话,希望得到您的帮助。
修改的核心代码如下: const targetPic = new Image() targetPic.onload = e => { targetPic.setAttribute('contenteditable', true) document.body.appendChild(targetPic) const selection = window.getSelection() const range = document.createRange() range.selectNode(targetPic) selection.removeAllRanges() selection.addRange(range) document.execCommand('copy') targetPic.setAttribute('contenteditable', false) document.body.removeChild(targetPic) this.isuTip.success('复制成功') this._recordUserBehavior(32) this.dispatchEvent(new CustomEvent('has-send-quote', {bubbles: true, composed: true})) this.cancel() }
targetPic.src = canvas.toDataURL("image/png");
完整代码如下