2014-09-04 70 views
0

我有一個十六進制字符串。當我把這個十六進制字符串放到十六進制編輯器中時,如果將它保存爲JPG格式,那麼它會顯示JPG圖像。 但我怎麼能將十六進制字符串轉換爲字節[]圖像並顯示圖像到imageView。 我的十六進制字符串是這樣的:通過斷言或者如果該參數不知道是安全的例外圖像十六進制字符串到字節[]轉換

ff d8 ff e0 0 10 4a 46 49 46 0 1 1 1 0 0 0 0 0 0 ff db 0 43 0 c 8 9 b 9 8 c b a b e d c e 12 1e 14 12 11 11 12 25 1a 1c 16 1e 2c 26 2e 2d 2b 26 2a 29 30 36 45 3b 30 33 41 34 29 2a 3c 52 3d 41 47 4a 4d 4e 4d 2f 3a 55 5b 54 4b 5a 45 4c 4d 4a ff db 0 43 1 d e e 12 10 12 23 14 14 23 4a 32 2a 32 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a 4a ff c4 0 1f 0 0 1 5 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 a b ff c4 0 b5 10 0 2 1 3 3 2 4 3 5 5 4 4 0 0 1 7d 1 2 3 0 4 11 5 12 21 31 41 6 13 51 61 7 22 71 14 32 81 91 a1 8 23 42 b1 c1 15 52 d1 f0 24 33 62 72 82 9 a 16 17 18 19 1a 25 26 27 28 29 2a 34 35 36 37 38 39 3a 43 44 45 46 47 48 49 4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a 73 74 75 76 77 78 79 7a 83 84 85 86 87 88 89 8a 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e1 e2 e3 e4 e5 e6 e7 e8 e9 ea f1 f2 f3 f4 f5 f6 f7 f8 f9 fa ff c4 0 1f 1 0 3 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 a b ff c4 0 b5 11 0 2 1 2 4 4 3 4 7 5 4 4 0 1 2 77 0 1 2 3 11 4 5 21 31 6 12 41 51 7 61 71 13 22 32 81 8 14 42 91 a1 b1 c1 9 23 33 52 f0 15 62 72 d1 a 16 24 34 e1 25 f1 17 18 19 1a 26 27 28 29 2a 35 36 37 38 39 3a 43 44 45 46 47 48 49 4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a 73 74 75 76 77 78 79 7a 82 83 84 85 86 87 88 89 8a 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e2 e3 e4 e5 e6 e7 e8 e9 ea f2 f3 f4 f5 f6 f7 f8 f9 fa ff c0 0 11 8 0 78 0 a0 3 1 21 0 2 11 1 3 11 1 ff da 0 c 3 1 0 2 11 3 11 0 3f 0 f3 9d c3 fb b4 2a ee fe 1a 6a e0 4b b4 c 2a d2 81 b3 a0 a4 2 3b f6 a6 67 22 9e a3 dc 6f e1 4b f8 53 1 7b 74 a4 eb d1 6a 46 1f 85 2f e1 54 f4 11 3c 3 26 b5 2d 2c 8c dc 91 84 a6 93 19 aa 22 58 97 6a 2e 5 26 dc f6 a6 59 13 fd 2a 9 29 c aa df 4a 85 a9 10 66 5 dc 73 95 a9 bb e1 4a e3 bd 2e 69 11 64 3f 1b 7b ad 27 1d 77 2d 1c d2 b0 ac 88 5f af de 5a 6f af cc a2 8e 69 f 46 27 fc 9 68 1f ef 2d 3e 66 1a e ff 0 81 2d 27 e2 b4 b9 a4 16 43 b3 9e eb 4a 7 38 1b 68 f7 82 c8 de d2 f4 b3 1f ef 2e 31 ec b5 ad 8f a5 68 5a 48 8 cf a5 31 bf a 5a 8c af 27 a0 22 ab c9 f5 14 ae d0 ca ad f5 15 3 fd 56 95 d9 3a 14 40 df c7 41 52 84 a5 7b 10 f d4 e2 91 87 14 ae 4 5b 72 3d e9 9e 49 ab 1 7c a3 ed 4b e4 e7 b5 2e 61 7 90 69 c2 dc d1 71 92 47 65 2c ae 15 6 58 d7 49 a6 e9 9 66 37 3f cd 2f f2 a6 98 d2 34 36 d1 b2 9b 2c 42 2a 17 14 80 81 d6 aa c8 b4 ae 5 66 5a 81 d6 81 58 aa 30 7 f0 d2 f5 1c 11 c5 42 b5 ae 48 dd de e2 8e bd 71 47 ba 1a 89 f8 8a 5c f5 e4 53 d0 41 f9 53 bf 2a 34 1 7f 2a b7 67 69 25 d3 ed 4f c4 d1 b8 1d 25 a5 9a 5b 26 14 c f7 35 63 15 65 86 da 4c 50 4 6d 51 30 fa 52 2 bc 95 56 4f c2 96 85 15 df ad 57 7f a8 a4 5 16 3f 4a 17 3e 82 96 a6 42 fe 54 ef ca 9a 10 ce dd a9 68 1a 1d 4e 5a 5d 2 e5 fd 3b 4f 92 ec e7 a4 7e b5 d2 db db c7 6e 81 23 5c a b4 86 89 31 4e db 4c a1 31 4d 34 8 61 15 13 a 90 2b 49 55 64 14 8a 2a bd 40 ff 0 4a 35 19 9b da 94 74 a0 c4 92 94 a 0 6f 7a 5c 50 4 82 b5 34 cd 2d ae 48 92 4e 23 fe 74 c e8 e3 8d 63 40 aa 30 29 f8 ad b 1d 8a 29 8 69 a6 e2 80 18 6a 27 a9 2 bc 95 56 4a 45 15 a4 aa cc b4 8a 33 f 34 a0 71 4f 43 1 f4 ea 2e 80 67 19 a7 a8 a0 d 9d 27 49 f3 88 96 71 f2 76 1e b5 d1 2a 60 60 74 ab 45 44 7e 29 45 31 8b 8a 29 8 4c 53 48 a0 44 4d 51 35 20 2b c9 55 9e a4 b2 ab d4 2c 29 14 63 53 d6 9b d0 c4 93 de 9a df ad 0 39 57 68 f7 35 b7 a4 69 3b f1 35 c0 e3 b0 aa 41 b9 d0 5 c7 14 f1 54 68 3a 9d 40 85 a4 c5 22 42 9a 45 20 22 61 50 38 a4 5 77 aa b2 1a 6 56 35 b 73 52 59 8c 69 ca dc d5 33 31 d4 f8 d7 27 26 90 1b ba 56 97 b8 89 a7 1c 76 6 b7 87 15 a0 d0 ea 5a 63 1d 4e a4 21 d4 52 10 94 d3 40 11 35 42 f4 80 ad 2d 52 97 a5 21 94 98 d5 76 90 d0 d0 5c cd ed d2 96 90 85 4f 99 bd ab 7f 48 d3 37 7e fa 51 f2 f6 14 20 37 c7 14 ea d0 b1 69 e2 98 87 a 7d 21 b 4b 8a 4 18 a4 2b 48 8 99 6a 7 5a 90 2b 4a 2a 8c fd 28 2 8c bc 66 a8 dd bf 97 19 34 86 51 fa 50 de 94 13 63 73 45 d2 fc cc 4b 37 dd ec 3d 6b a3 5e 2b 44 5a 43 a9 69 8c 70 a7 8a 4 49 4a 28 24 75 3e 
+0

看看這個[post](http://stackoverflow.com/q/140131/3326331) – 2014-09-04 19:23:44

回答

0

檢查的說法。

編輯:

public static byte[] hexStringToByteArray(String hexIn) { 
    byte [] byteOut = new byte [hexIn.length()/2]; 
    int j = 0; 
    for (int i = 0; i < hexIn.length(); i += 2) 
    { 
      byteOut[j++] = Byte.parseByte(hexIn.substring(i, i + 2), 16); 
    } 
    return byteOut; 
} 

設置該圖像數據byte[]上的ImageView

public static void setImageViewWithByteArray(ImageView view, byte[] data) { 
    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 
    view.setImageBitmap(bitmap); 
} 
+0

爲什麼需要AsyncTask?我只是有一串十六進制數據提到上面,只是將其轉換爲圖像,然後將此圖像顯示圖像視圖。 @Sagar Pilkhwal – DarkenShooter 2014-09-04 19:48:26

+0

並且出現錯誤 - 「java.lang.StringIndexOutOfBoundsException:length = 4069; index = 4069」。你知道爲什麼嗎? @Sagar Pilkhwal – DarkenShooter 2014-09-05 15:44:10

+0

我已經編輯了代碼,看看它是否適用於你 – 2014-09-05 17:03:51

0

下面的代碼說明如何將十六進制字符串轉換成int值陣列

public static void main(String[] arg) 
{ 
     String s="ff a1 23 43 1"; 

     ArrayList ilist = new ArrayList(); 
     //regular expression to solve any format of hexstring 
     Pattern p = Pattern.compile("([0-9a-fA-F]+)"); 
     Matcher m = p.matcher(s); 
     int index=0; 
     while((!m.hitEnd()) && (m.find(index))) 
     { 
     String ms=m.group(); 
     int i = Integer.parseInt(ms,16); 
     // add the value to list 
     ilist.add(i); 
     System.out.println(i); 
     index=m.end(); 
     } 
     // get an array from list, not as necessary,though. 

     Object[] c = ilist.toArray(); 
     System.out.println(c[1]); 

     return; 
} 

然後我作爲sume將int轉換爲字節並不困難。

相關問題