1

外部ハードウェアからバイト配列を受信するコードを実装する必要があります。デバイスと私の最後に、バイト配列からビットマップイメージを作成し、そのビットマップをsdcardに保存する必要があります。

File file=new File(Environment.getExternalStorageDirectory(), "file.jpeg");

        if (file.exists()) {
            file.delete();
        }

        try {
            fos = new FileOutputStream(file.getPath());
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        try {
            fos.write(buffer);
            //bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.close();
            //bitmap = BitmapFactory.decodeByteArray(buffer , 0, buffer.length);

        } catch (OutOfMemoryError e) {
            e.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        } 

ファイルはSDカードで作成されていますが、そのファイルには画像が表示されていません。

bitmap = BitmapFactory.decodeByteArray(buffer , 0, buffer.length);
            OutputStream stream = new FileOutputStream("/sdcard/test.jpg");
            bitmap.compress(CompressFormat.JPEG, 100, stream);
4

2 に答える 2

0

次のようなことを試してください:

FileInputStream in;    
BufferedInputStream buf;    
try {      
    in = new FileInputStream("/sdcard/pictures/1.jpg");    
    buf = new BufferedInputStream(in,1070);    
    byte[] bMapArray= new byte[buf.available()];   
    buf.read(bMapArray);     
    Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray, 0, bMapArray.length); 
}catch (Exception e) {        
    Log.e("Error reading file", e.toString());      
} 
于 2013-01-04T09:15:52.467 に答える
0

これを試してみましょうimageビットマップ画像を含む

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img, "png", baos);
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();

imageInByteビットマップ画像のバイトデータが含まれるようになりました。

逆変換用

Bitmap bp = BitmapFactory.decodeByteArray(imgArray, 0,imgArray.length); これがあなたを助けることを願っています

更新しました :

SDカードにデータを保存

Bitmap bmp = createBitmap();
OutputStream stream = new FileOutputStream("/sdcard/test.jpg");
bmp.compress(CompressFormat.JPEG, 100, stream);
于 2013-01-04T09:26:47.860 に答える