2013-06-05 61 views
1

我有一個圖像作爲字節數組存儲(也可以從.jpg目錄作爲.jpg訪問),我試圖獲取寬度和高度圖片。我試過使用javax.imageio,但Dalvik不支持這個庫,所以我選擇使用位圖。有人可以幫我從這裏出去嗎?我不斷收到空指針異常。Android:從字節數組或文件中獲取高度/寬度

public int getWidth(byte[] image) throws IOException{ 
    Bitmap bitmapImage = BitmapFactory.decodeFile(image.toString()); 
    int imageWidth = bitmapImage.getWidth(); 

    return imageWidth; 
} 

乾杯。

+0

可否請您說明異常的堆棧跟蹤?如果你不這樣做,我們無法幫助你。 – gparyani

+0

E/AndroidRuntime(14818):致命例外:main E/AndroidRuntime(14818):MainActivity.getWidth上的java.lang.NullPointerException(MainActivity.java:336) – LKB

+0

行336是什麼行? – gparyani

回答

2

您可以嘗試使用decodeByteArray(image)而不是decodeFile(new String(image))。留下的信息供將來參考:

toString()不適用於數組(它返回一些隨機的字符串)。由於您將無效字符串傳遞到decodeImage,因此它會返回null以指示找不到它。因此,如果你調用一個方法,它會產生一個NullPointerException。如果使用字符集編碼字節數組,而不是使用image.toString(),請使用new String(image),它可以正確解碼字節數組。

+0

啊,我明白了。我已將代碼更改爲:位圖bitmapImage = BitmapFactory.decodeFile(new String(image));但仍然在同一行上得到空指針異常 - int imageWidth = bitmapImage.getWidth(); – LKB

+0

@LBran你知道charset'image'的用途嗎? – gparyani

+0

唉,我不確定,對不起。 – LKB

相關問題