2011-08-29 3 views
3

Newb 질문;안드로이드는 비트 맵을 버퍼링 된 입력 스트림으로 변환합니다.

메모리에 비트 맵이 있습니다.

Private Bitmap MyPicture; 

그런 다음 나중에 카메라의 이미 저에서 해당 MyPicture를 채 웁니다. 아파치 공유지에서 FTP 클라이언트를 사용하여 사진을 업로드해야합니다.

fcon.storeFile("filename", new BufferedInputStream(MyPicture.????)); 

하지만 아파치는 BufferedInputStream을 원합니다. 메모리 비트 맵을 메모리 스트림으로 변환하려면 어떻게해야합니까?

고마워요! 바이트 배열로 비트 맵 변환

답변

13

이것은 내가 찾고 있었던 것이다.

ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
si.Image.compress(CompressFormat.JPEG, 100, stream); 
InputStream is = new ByteArrayInputStream(stream.toByteArray()); 

마지막 줄이 누락 된 링크했다 ...

+0

안녕하세요, @Lectare, 전체 코드 스 니펫을 포함시켜 주시겠습니까? "si"가 무엇인지, 원래 스 니펫이이 코드와 함께 어울리는 지 전혀 알 수 없습니다. –

+0

@SkyKelsey, si.Image는 비트 맵 유형 – dimetil

+0

고맙습니다. 당신은 많은 시간을 절약 !! ;) – chemitaxis

0

만큼 쉽게 :

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
MyPicture.compress(Bitmap.CompressFormat.PNG, 100, baos); 
baos.toByteArray(); 

그리고 당신은 당신의 파일에 바이트를 작성하는 BufferedInputStream을 만들 수 있습니다.

+0

비트 맵 형식에 allways 압축인가? – Lectere

+0

내가 아는 한 – NewProggie

+0

작동하지 않을 수 있습니다. BufferedInputStream은 Baos가 아닌 InputStream을 기대합니다 ... – Lectere

관련 문제