uiautomator 横向截屏异常解决

这里写自定义目录标题

uiautomator 横向截屏异常解决

在使用uiautomator2 同时控制多台手机时,发现部分手机截图有问题。

在这里插入图片描述
横屏截图依旧是竖过来的。但群控工具上实时画面是正常的。
正常情况下,向ATX-agent 发送 rotation请求,minicap就会重启进行旋转截图。

看 uiautomator2 源码发现截图的原理是 向手机上的ATX-agent发送请求,拿到图片。

    def screenshot_uri(self):
        print(self._host, self._port)
        #http://10.12.200.48:7912/screenshot/0?minicap=true
        return 'http://%s:%d/screenshot/0' % (self._host, self._port)

之后又看了ATX-agent的源码

    // android emulator use screencap
		// then minicap when binary and .so exists
		// then uiautomator when service(uiautomator) is running
		// last screencap

		method := "screencap"
		if getCachedProperty("ro.product.cpu.abi") == "x86" {
    // android emulator
			method = "screencap"
		} else if fileExists("/data/local/tmp/minicap") && fileExists("/data/local/tmp/minicap.so") && r.FormValue("minicap") != "false" && strings.ToLower(getCachedProperty("ro.product.manufacturer")) != "meizu" {
   
			method = "minicap"
		} else if service.Running("uiautomator") {
   
			method = "uiautomator"
		}

我猜大致的意思就是uiautomator2的截图接口有三张。并不一定是minicap的图片,
因为在abdshell 看进程 minicap进程是正常的,带有旋转角度90的。
但是截屏的宽高是异常的。所以决定要 根据角度决定宽高。

重写了uiautomator2 一个新的截图方法(按照里面xpath.py的代码写的),代码如下

def minicapscreenshot(self,
### 回答1: 您可以尝试在代码中添加以下语句来解决pdfjs2.3渲染首张图横向问题: PDFJS.getDocument(url).then(function(pdf) { pdf.getPage(1).then(function(page) { var viewport = page.getViewport({scale: 1}); var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); if (viewport.width > viewport.height) { canvas.width = viewport.width; canvas.height = viewport.height; context.rotate(Math.PI / 2); context.translate(, -canvas.width); } else { canvas.width = viewport.width; canvas.height = viewport.height; } var renderContext = { canvasContext: context, viewport: viewport }; page.render(renderContext); }); }); 希望能帮到您。 ### 回答2: pdfjs 2.3是一款用于在网页上渲染PDF文件的JavaScript库。横向渲染首张图的问题可以通过以下几种方式解决。 1. 设置渲染方向:使用pdfjs库提供的API,可以设置渲染方向。通过将渲染方向设置为横向,可以解决渲染首张图横向的问题。 2. 调整页面布局:在网页中,可以通过调整页面布局来解决渲染首张图横向的问题。可以使用CSS样式将页面布局调整为纵向,并且限制首张图的宽度,以确保首张图按照正确的方向渲染。 3. 更新pdfjs版本:如果当前使用的是较早的版本,可能存在渲染首张图横向的问题。可以尝试升级到较新的版本,很可能已经修复了该问题。 4. 修改PDF文件:如果PDF文件本身存在问题导致渲染首张图横向,可以尝试使用PDF编辑软件对PDF文件进行修改。可以调整页面方向或旋转首张图,以解决横向渲染的问题。 总之,针对pdfjs 2.3渲染首张图横向的问题,可以通过设置渲染方向、调整页面布局、升级pdfjs版本或修改PDF文件等多种方式来解决。具体的解决方法可以根据具体情况选择。 ### 回答3: 要解决pdfjs2.3渲染首张图横向的问题,我们可以尝试以下方法: 1. 检查pdf文件的方向:首先,我们需要确认pdf文件的方向是否正确。可以使用其他pdf阅读器打开文件,检查是否显示为纵向。如果方向不正确,可以尝试使用pdf处理工具进行旋转操作,将文件方向调整为正确的纵向。 2. 调整页面布局:pdfjs2.3提供了页面布局调整的功能,可以通过更改页面的CSS样式来解决渲染横向问题。可以在调用pdfjs渲染页面的代码中,添加自定义的CSS样式,将页面布局调整为纵向。具体的方法是使用CSS中的transform属性,向页面添加适当的旋转角度。 3. 更新pdfjs版本:如果以上方法无效,可以尝试更新pdfjs的版本。可能新的版本已经修复了渲染首张图横向的问题。可以在pdfjs的官方网站或开发者社区中查找最新的版本,并更新到系统上使用。 需要注意的是,pdfjs是一个开源的项目,可能会存在一些bug或者限制。在遇到问题时,可以查阅官方文档、开发者论坛或者相关的技术资料,获取更多有关pdfjs渲染首张图横向问题解决方法的信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值