마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

BitmapFactory.decodeStream 이라는 함수로 Bitmap을 가져오고 싶은데여....

0 추천
자바 서버를 켜서 OutputStream으로 안드로이드에 전송해주는 프로그램을 만들고 있는데

어떤 형식으로 데이터를 전송해야 저 함수를 쓸 수 있는지 모르겠습니다 ㅜㅜ;;

DataOutputStream 으로 byte[]형식으로 데이터를 전송해봐도 안되고, 그냥 OutputStream으로 int값들을

전달하는 것도 안되는데 어떻게 하면 좋을지 고수님들의 조언을 구합니다.
hhjung1202 (1,280 포인트) 님이 2016년 2월 15일 질문

1개의 답변

+1 추천
 
채택된 답변

일단 전송하고싶은 데이터를 파일로 만드시고 input/output stream을 생성하는 방법도 있습니다.

inputstream의 종류는 여러개가 있으니 쓰고싶은걸로 바꿔서 쓰셔도 무방합니다.

사용하실때는 쓰레드를 이용하셔야 합니다.

 

File imagefile = new File(image);
FileInputStream fis = null;
try {
fis = new FileInputStream(imagefile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

 

Bitmap bm = BitmapFactory.decodeStream(fis);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100 , baos);
byte[] b = baos.toByteArray(); 

캬옹이 (37,920 포인트) 님이 2016년 2월 16일 답변
hhjung1202님이 2016년 2월 16일 채택됨
캬옹이 님 말씀은 자바 서버와 안드로이드 서버간의 Socket Input/Output Stream으로 직접 Bitmap bm = BitmapFactory.decodeStream(Socket.getInputStream);으로 하라는 게 아니라, 먼저 Socket.getInputStream()을 통해서 가져온 데이터를 FileOutputStream()을 통해서 핸드폰 디바이스에 저장하고, 그 후 그 저장된 파일을 다시 FileInputStream을 통해서 읽어들여서 BitmapFactory.decodeStream(FileInputStream); 으로 가져와야 된다는 말씀이신가여 ?
...