2014-09-25 62 views
0

我想在android中创建一个截图捕获应用程序,它通过编程方式使用adb命令捕获设备屏幕的屏幕截图。我已经尝试了从堆栈溢出和其他网站的每个链接,但没有太多成功。任何机构都可以帮助我。我跟着这个链接Android take screenshot on rooted device来创建.raw文件,但现在我坚持如何将原始文件转换为android中的图像。如何将.raw文件转换为android编程设备中的图像文件

回答

1

Android本身无法做到这一点。你需要一个外部解码器。有库可以解码,去马赛克,白平衡等转换为RGB。这是一个数码底片,需要大量的图像处理才能在Android中查看。

查看dcraw,它是一个用于解码所有类型RAW文件的库。

+0

非常感谢您的答复,但我已经通过位图工厂使用原始文件的字节数组转换它 – 2014-10-09 14:05:47

1

如果原料是图像文件,然后ü可以改变extentention以JPG或PNG,

File ss = new File(ssDir, "ss.raw"); 

改变这

File ss = new File(ssDir, "ss.jpg"); 

但捕捉截图需要root权限 执行苏权限

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(); 
+0

os.writeBytes不存在于OutputStream中,我的设备具有root权限,但此代码仅用于保存黑色图像,没有别的只是创建图像而不是获取屏幕截图并创建它,并且只需更改扩展名即可创建图像,因为我使用这个命令/ dev/graphics/fb0以原始形式保存framebuffer,然后我需要代码或库,它将原始字节文件转换为图像文件 – 2014-09-25 09:36:43

+1

这段代码在我的kitkat上完美工作,但我不知道你检查你的logcat问题,并且必须在清单中添加读写外部存储权限 – Sumit 2014-09-25 09:59:40

+0

我在Android 2.3.5上测试此代码,但是我会让你知道它是否工作 – 2014-09-25 10:20:45

相关问题