【问题标题】:Inverted Screenshot rooted Android device倒置的屏幕截图植根于 Android 设备
【发布时间】:2015-06-30 18:50:42
【问题描述】:

我有以下代码,可以截取我的根 Android 设备的屏幕截图。

Process sh = Runtime.getRuntime().exec("su", null,null);
OutputStream os = sh.getOutputStream();
os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII"));
os.flush();

我的设备被插入一个外壳中,并且在技术上以倒置方式定位。但是现在当我截取屏幕截图时,它看起来是颠倒的。有没有办法在将屏幕截图发送到 SD 卡之前对其进行旋转?

【问题讨论】:

    标签: android shell adb screenshot root


    【解决方案1】:

    正如您从屏幕截图工具的源代码中看到的那样,

    https://android.googlesource.com/platform/frameworks/base/+/master/cmds/screencap/screencap.cpp

    没有内置选项可以这样做。

    但是,对于已获得根目录的设备,您可以选择修改该工具以重新排序输出数据。

    您还可以选择在 java 程序中捕获输出,并在将其写入文件之前对其进行重新排序。或者制作自己的本地程序来进行管道传输。

    最后,您可以编写一些常用工具(例如 imagemagick)的脚本,以便在您用来检查结果的任何系统上执行此操作。

    【讨论】:

    • 克里斯:谢谢。那么,您的意思是我可以使用修改后的 screencap.cpp 文件安装自定义 android 构建版本?
    • 您几乎不需要自定义整个 Android - 在 AOSP 构建中重建程序可能是最简单的,但您可能只需要安装该特定工具的修改后的二进制文件。或者,您可以在捕获和存储文件之间或在设备外对其进行后期旋转。
    猜你喜欢
    • 2013-11-16
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多