2013-08-06 2 views
0

지금 내가 원하는 이미지를 선택하고이 이미지를 특정 폴더에 쓰려면 원하는 파일 이름으로 메모리 카드의 어딘가에 말해야합니다. 이미지를 선택하고 표시 할 수 있지만 저장하려고하면 문제가 발생합니다. 내가 저장하려고하면 이미지 파일이 생성되지만 그 크기는 0.0 킬로바이트 내가 이미지를 클릭하면이이미지를 쓸 때의 문제

이 내 코드

fileCon = (FileConnection)Connector.open(path+"Contacts/contactImages/"+FIRST_NAME+".png",Connector.READ_WRITE); 
if(!fileCon.exists()) 
{ 
    fileCon.create(); 
} 

int h = contactImage.getHeight(); 
int w = contactImage.getWidth(); 

int[] size = new int[w*h]; 
contactImage.getRGB(size, 0, w, 0, 0, w, h); 

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
DataOutputStream dos = new DataOutputStream(baos); 

for (int i = 0; i < size.length; i++) 
{ 
    dos.writeInt(size[i]); 
} 

답변

0

이다 그러나 당신이 "파일 형식이 지원되지 않습니다"라고한다 ByteArrayOutputStream에 픽셀 데이터를 쓰고 파일 스트림은 쓰지 않습니다. 거기에 뭔가가 없어야한다.

DataOutputStream dos = fileCon.openDataOutputStream();

물론 출력 스트림을 닫아 모든 데이터가 플러시되는지 확인해야합니다.

또 다른 것은 원시 ARGB 데이터를 저장하고 인코딩 된 PNG 이미지가 아니므로 .png 확장이 일부 이미지 뷰어를 혼동시킬 수 있다는 것입니다. 아마도 .bmp가 더 좋을 것입니다.

관련 문제