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

자바에서 byte[]을 이미지 파일로 변환할려면...

0 추천
안드로이드가아닌 자바에서입니다..

안드로이드에서 비트맵을 소켓통신을 통하여 자바서버로 보냈고.

자바서버에서 받은 바이트 배열을 파일로 저장하고 싶은데.. 답을 원하지는 않습니다..

도움이 될만한 내용이라도 말해주시면 감사하겠습니다..( __)꾸벅
초보초보초보개발 (840 포인트) 님이 2014년 9월 30일 질문

2개의 답변

0 추천
 
채택된 답변
안드로이드에서 compress메서드를 써서 byte[]배열을 만들었다면

그대로 저장하시면 됩니다
alkyne (22,960 포인트) 님이 2014년 9월 30일 답변
초보초보초보개발님이 2014년 9월 30일 채택됨
private byte[] sendBit(Bitmap bit){
        ByteArrayOutputStream bytearray = new ByteArrayOutputStream();
        bit.compress(CompressFormat.PNG, 100, bytearray);
        byte[] byteArray = bytearray.toByteArray();
        return byteArray;
    }
이렇게 해서 이 배열을 JAVA 서버로 보냈는데요 ...
그 다음 이배열을 제 컴퓨터에 저장하는 부분을 모르겠네요 ㅠㅠ
FileOutputStream을 만들고 거기에 쓰시면 됩니다.
링크 참조해보세요
http://www.mkyong.com/java/how-to-write-to-file-in-java-fileoutputstream-example/
쉽게되는게 아니더군요...
바이트배열을 그대로 받아서 사용해야되는데..
바이트 배열이 다넘어오는걸 확인할수가 없군요..ㅠ
+1 추천
받아온 이미지 바이트스트림이 byte[] data라고 한다면

 

아마도..서버에서

    serverSocket = new ServerSocket(7123);
             
                Socket socket = serverSocket.accept();
                System.out.println(socket.getInetAddress() + "로부터 연결 요청이 들어왔습니다");
                
                InputStream is = socket.getInputStream();
                
                final ObjectInputStream ois = new ObjectInputStream(is);
                
                byte[] data = (byte[])ois.readObject();

 

이렇게 받아오고 저같은 경우는 png로 저장을 했습니다.

 

    String dirName = "c:\\";

                System.out.println("data length : " + data.length);
                BufferedImage imag = ImageIO.read(new ByteArrayInputStream(data));
                ImageIO.write(imag, "png", new File(dirName, " img.png"));

 

이렇게 하면 c:에 img.png라는 이름으로 이미지가 저장이 됩니다.
익명사용자 님이 2016년 4월 8일 답변
...