2013-03-29 3 views
0

Читаю файл изображения в массив байт байт array.This я повторно сохранить в виде файла изображения на sdcard.To прочитать файл я использовал следующий код:Как сохранить файл изображения в android?

public void readimage() 
{ 
InputStream ins_image = getResources().openRawResource(R.drawable.btn_cancel); 
outputStream=new ByteArrayOutputStream(); 
try 
{ 
    ins_image.available(); 
} catch (IOException e) { e.printStackTrace(); } 
    try 
    { 
    Log.e("Size of image", ""+ins_image.available()); 
    } catch (IOException e) {e.printStackTrace();} 
    int size = 0; 
    byte[] buffer_image = new byte[200000]; 
    try { 
    while((size=ins_image.read(buffer_image,0,200000))>=0) 
    { 
    outputStream.write(buffer_image,0,size); 
    } 
    } catch (IOException e) { e.printStackTrace(); } 
    int length_of_image= outputStream.toByteArray().length; 
    byte_image=outputStream.toByteArray(); 
    Log.e("Size of image",""+length_of_image); 
     }   

И ниже код для сохранения файла:

public void saveimage_fromarray() 
{ 
    File photo=new File(Environment.getExternalStorageDirectory(), "photo.png"); 
    if (photo.exists()) 
    { 
    photo.delete(); 
    } 
    try 
    { 
    FileOutputStream fos=new FileOutputStream(photo.getPath()); 
    fos.write(byte_image[0]); 
    fos.close(); 
    } 
    catch (java.io.IOException e) 
} 

Однако файл сохраняется, но он не отображается anything.Can кто-то пожалуйста, скажите мне, почему это так?

ответ

0

Кажется, что вы пишете только один байт изображения.

fos.write(byte_image[0]); 

Пожалуйста, сравните исходный файл, байтовый буфер, массив и размер выходного файла.

+0

Благодаря Zielony.How нерадивых меня .. сообщите об этом. – joy

0

почему бы не упростить все и просто вызывает this method:

bmp.compress(Bitmap.CompressFormat.PNG, 100, <pass here a valid file outputstream>); 
1

Установить размер изображения, которое вы получаете вместо 0.

fos.write(byte_image[0]); 
+0

Спасибо zaiff. Не заметил, что я писал только один байт ... – joy

Смежные вопросы