如何将二进制数据转换为图像?

时间:2012-01-06 12:01:11

标签: java android jpeg binary-data

在我的Android应用程序中。我从代码中获得了jpeg图像的二进制代码,如下所示。

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

此字符串s打印图像的二进制值。 我的问题是如何将这种二进制格式转换为jpeg图像??

4 个答案:

答案 0 :(得分:3)

我不确定你想要什么。

  • 如果您想直接从流中创建Bitmap - 实例,可以使用BitmapFactory并在之后的Bitmap - 实例中显示ImageView

    Bitmap image = BitmapFactory.decodeStream(stream);
    imageView.setImageBitmap(image);
    
  • 如果要将带有基数2的字符串表示形式转换回二进制数组,您也可以使用BigInteger

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

答案 1 :(得分:2)

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

希望这有助于

编辑: 写入内部存储器

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);

答案 2 :(得分: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

                  }


    }

答案 3 :(得分:0)

我过去曾使用过这段代码:

InputStream is = (InputStream)imageContent;
d = Drawable.createFromStream(is, "src");