안드로이드 개발 질문/답변
(글 수 45,052)
제가 이미지를 서버로 보내고 저장하려고 http java 서버에 이미지를 string으로 변환후 db에 저장하였다가 다시 받아오게했습니다. (안드로이드폰)
그런데 스트링을 다시 받아 왔을때 '+'기호 손실?됩니다.
그래서 Base64로 인코드 하고 디코드 하여 주고 받으려는데 string 형식이 아니라 byte[]로 주고 받으려면 어떻게 해야 하나요?
아니면 위의 방법이 아니라 데이터가 손실되지 않고 주고 받으려면 어떻게 해야 하나요?
out.println( new String(Base64.encode(allBytesInBlob)));
위의 코드는 서버에서 안드로이드폰으로 보낼대 쓰는 부분입니다. 스트링이 아니라 byte[]로 보내고 받고 싶습니다.
이렇게 해보세요. ^^
private byte [] getImgBytes(Image image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ImageIO.write(getBufferedImage(image), "JPEG", baos);
} catch (IOException ex) {
//ignore
}
return baos.toByteArray();
}
private BufferedImage getBufferedImage(Image image) {
int width = image.getWidth(null);
int height = image.getHeight(null);
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
return bi;
}