美文网首页
网页自由截图

网页自由截图

作者: baxiamali | 来源:发表于2021-01-19 17:15 被阅读0次
image.png

在反馈组件中,需要一个网页自由截图功能。
现成的轮子,没有找到合适的。可能因为自由截图的需求比较少。
想到了比较常用的html2canvas:

take "screenshots" of webpages or parts of it, directly on the users browser.

使用html2canvas,只要搞定用户需要的是哪个部分,就可以完成自由截图了。

最终的目的是拿到截取图片的宽高和xy偏移量。

思路:通过监听mousedown mousemove mouseup事件,记录起始点坐标。
细节 1. mousemove需要防抖处理。
2. 需要考虑结束点在起始点上下左右各个方位的情况。
3. 截取时,需要高亮选中区域,用起始点坐标确定四个遮罩区域进行拼接。
4. 截取完成,需要显示controls,要根据起始点与页面边缘的距离考虑controls的显示位置。

  const [clipStartPoint, setClipStartPoint] = useState({});//起点
  const [clipEndPoint, setClipEndPoint] = useState({});//终点
  const [showClipPart,setShowClipPart]= useState(false);//是否显示遮罩区域(高亮)
  const [configVisible,setConfigVisible]= useState(false);//是否显示controls
  const [makingImg,setMakingImg]= useState(false);//生成截图
        html2canvas(document.body,{
            width:width,
            height:height,
            x:x,
            y:y
        }).then(function(canvas) {
            onSuccess(canvas.toDataURL('image/png'));
        });

后续,可以结合Canvas绘图功能,在controls中增加绘制功能,类似常用的微信截图功能。

相关文章

  • 网页自由截图

    在反馈组件中,需要一个网页自由截图功能。现成的轮子,没有找到合适的。可能因为自由截图的需求比较少。想到了比较常用的...

  • chrome工具

    FireShot 网页截图

  • chrome 网页截图

    1、打开开发者工具 2、使用快捷键组合来打开命令行(command palette):`Command` + `S...

  • 网页截图操作

    当自动化测试遇到问题时,可以使用屏幕截屏的方式还原问题现场,以便定位问题。屏幕截屏使用到方法get_screens...

  • 网页滚动截图

    chrome浏览器 F12(或Fn+F12)进入console输入Ctrl+Shift+P出现指令搜索栏输入Cap...

  • iOS-WKWebView UIScrollView 全屏截图,

    iOS-WKWebView UIScrollView 全屏截图,网页全屏截图UiTableView UIScrol...

  • 使用Chrome 网页截图

    利用 Chrome 原生工具进行网页长截图 | 一日一技 chrome网页长截图 按下 ⌘Command + ⌥O...

  • Snagit 优秀的屏幕捕捉工具

    有段时间频繁需要截图,尤其是对完整的长网页截图,因为网页比较长,一般的浏览器截图插件或者最常用的QQ截图都无法满足...

  • 网页全截图(WebShot)- 将整个网页保存为图片

    网页全截图(WebShot) 是一款可以把整个网页转换为图片的应用,便于保存和分享。只要输入网址,一键截图网页所有...

  • 苹果iOS iPhone手机、iPad 网页截全图工具

    APP名称:网页截图工具 运行环境:iOS 9 以及以上系统 开发工具:xcode 简介: 网页截图时一个款把整个...

网友评论

      本文标题:网页自由截图

      本文链接:https://www.haomeiwen.com/subject/xctczktx.html