如何通过编程方式将.raw文件转换为android rooted device中的image文件

时间:2014-09-25 06:07:46

标签: java android bitmapimage

我正在尝试在android中创建截屏捕获应用程序,通过编程方式使用adb命令捕获设备屏幕的屏幕截图。我已尝试过堆栈溢出和其他站点的每个链接,但尚未成功。任何人都可以帮助我。我已经按照这个链接Android take screenshot on rooted device来创建.raw文件,但现在我被困在如何将原始文件转换为android中的图像。

2 个答案:

答案 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文件的库。