b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Flutter如何实现屏幕截图图形共享

电脑杂谈  发布时间:2020-06-21 15:32:17  来源:网络整理

画图板截图_截图画图软件_利用画图工具屏幕截图

使用RepaintBoundary包装要截图的Widget. 将GlobalKey设置为RepaintBoundary,例如名称: _globalKey计算floatPixelRatio应该是什么(如果计算不正确,则在放大和缩小期间画图板截图,剪切的图像中的线条会变得柔和,例如水平直线,其他期间会出现1px的未对准,好像直线突然上下波动

计算方法:

截图画图软件_画图板截图_利用画图工具屏幕截图

设计图的宽度/屏幕的宽度 * 要拼接的是几倍的设计图

设计图的宽度/屏幕的宽度*要缝合的设计图是几遍

截图画图软件_画图板截图_利用画图工具屏幕截图

例如,我们的设计图为360 * 640,屏幕的实际宽度为375pt,将要拦截的当前图像将与资源图像的3倍合并为图片(用于绘制过程),然后应该这样计算

floatPixelRatio = 360 / 375 * 3 = 2.88

利用画图工具屏幕截图_画图板截图_截图画图软件

获取以下代码将截获的ui.Image,完成屏幕截图

RenderRepaintBoundary boundary =
        _globalKey.currentContext.findRenderObject();
    ui.Image centerImage = await boundary.toImage(pixelRatio: floatPixelRatio);

截图画图软件_画图板截图_利用画图工具屏幕截图

绘图API流程

代码逻辑如下:

    /// start draw
    final recorder = new PictureRecorder();
    final canvas = new Canvas(recorder,
        new Rect.fromPoints(new Offset(0, 0), new Offset(width, height)));
    /// 顶部的图片
    canvas.drawImageRect...
    /// 文字
    TextPainter labelTp = new TextPainter...
    labelTp.paint(canvas...
    /// end draw
    final picture = recorder.endRecording();
    ui.Image finalUiImage =
        await picture.toImage(width.toInt(), height.toInt());

值得注意的是画图板截图,如果要使文本居中,则需要自己计算文本的宽度和高度:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-253470-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...