2014-09-25 48 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

相關問題