2012-01-06 2 views
2

В моем приложении для Android. Я получил двоичный код из jpeg-изображения из кода следующим образом.Как преобразовать двоичные данные в изображение?

byte[] val = stream.toByteArray(); 
      BigInteger bi = new BigInteger(val); 
    String s = bi.toString(2); 

Эта строка s печатает двоичное значение изображения. Мой вопрос заключается в том, как преобразовать этот двоичный формат в jpeg-образ?

+0

просто напишите массив байтов в файл – epoch

ответ

3

Я не уверен, что вы хотите.

  • Если вы хотите создать Bitmap -instance непосредственно из потока, который вы можете использовать BitmapFactory и показать, что Bitmap в ImageView -instance впоследствии:

    Bitmap image = BitmapFactory.decodeStream(stream); 
    imageView.setImageBitmap(image); 
    
  • Если вы хотите, чтобы преобразовать строку представление с radix 2 обратно в двоичный массив можно также использовать BigInteger:

    BigInteger bigInt = new BigInteger(s, 2); 
    byte[] binaryData = bigInt.toByteArray(); 
    
+0

Klober Вы только правильно поняли мой вопрос. Это отлично работает. Большое вам спасибо за ваш ответ –

2
Bitmap bmp=BitmapFactory.decodeByteArray(val, 0, val.length); 
ImageView img = new ImageView(this); 
img.setImageBitmap(bmp); 

Надеется, что это помогает

Edit: Для записи во внутренней памяти

FileOutputStream fout; 
fout = openFileOutput("temp.jpg",Context.MODE_WORLD_WRITEABLE);  
b1.compress(CompressFormat.JPEG, 100, fout); 

Для записи во внешней памяти

FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath()+"/temp.JPEG"); 
bm.compress(Bitmap.CompressFormat.JPEG,90, fout); 
+0

Я печатаю двоичные значения как строку. Я хочу преобразовать двоичное значение в jpeg-изображение. –

+0

вы хотите выход как .jpg на SDcard? – Jana

+0

yes obsolutely :) –

0
Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray, 0, bMapArray.length); 
savefile(bMap,"test.jpg"); 

private void savefile(Bitmap bt,String file) 
    { 
     try { 
      ContextWrapper context=this; 
      FileOutputStream stream =context.openFileOutput(file, 2); 
      BufferedOutputStream objectOut = null; 
       // FileOutputStream stream =(FileOutputStream) getAssets().open("temp.txt"); 
        try { 
        objectOut = new BufferedOutputStream(stream); 
        bt.compress(Bitmap.CompressFormat.PNG, 100, objectOut); 
        objectOut.flush(); 
        objectOut.close(); 
        } 
        catch (Exception e) { 
        // TODO Auto-generated catch block 

         } 

      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 

        } 


    } 
0

Я использовал этот код в прошлом:

InputStream is = (InputStream)imageContent; 
d = Drawable.createFromStream(is, "src"); 
Смежные вопросы