我正在尝试在android中创建截屏捕获应用程序,通过编程方式使用adb命令捕获设备屏幕的屏幕截图。我已尝试过堆栈溢出和其他站点的每个链接,但尚未成功。任何人都可以帮助我。我已经按照这个链接Android take screenshot on rooted device来创建.raw文件,但现在我被困在如何将原始文件转换为android中的图像。
答案 0 :(得分:1)
如果raw是图像文件,那么你可以将扩展名改为jpg或png,
File ss = new File(ssDir, "ss.raw");
将此更改为
File ss = new File(ssDir, "ss.jpg");
但捕获屏幕截图需要root权限 执行su权限
File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "screeshot.jpg");
Process localProcess = Runtime.getRuntime().exec("su");
OutputStream os = localProcess .getOutputStream();
//DataOutputStream dos = (DataOutputStream) localProcess.getOutputStream();
os.write(("/system/bin/screencap -p " + f.toString()).getBytes("ASCII"));
//dos.writeBytes("exit\n");
os.flush();
os.close();
localProcess .waitFor();
答案 1 :(得分:1)
Android本身无法做到这一点。你需要一个外部解码器。有些库可以解码,去马赛克,白平衡等,并转换为RGB。这是一个数字负片,在Android中可以观看之前需要进行大量的图像处理。
查看dcraw,它是一个用于解码所有类型RAW文件的库。