서버야. 비트맵(bitmap)도 맛있단다. 좀 먹어주면 안되겠니??
728x90
반응형

선택한 이미지를 비트맵에 담아서 서버로 보냈다.

비트맵을 이렇게 활용해 본 것은 처음이라 (혹시 배웠나? 건드려본 기억은 있는데...)

당황스러운 개념이 있었는데, 그런 것을 여기에 남겨본다.




위 이미지뷰를 클릭하면 앨범이 열리고

원하는 이미지를 선택하면 미리보기가 위 화면에서 나타난다.

그리고 이름을 넣고 저장을 누르면 비트맵 처리가 된 데이터가

서버에 저장이 되는 형태!!! (이야. 이걸 해내다니. - 자화자찬)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String authorization = "Token "+ Networking.getToken();
String fileName="photo_"+groupName+".jpg";
Log.i(TAG, "-------- addGroupSave : "+authorization);
Map<String, RequestBody> imgMap = new HashMap<>();
 
// 그룹 이미지 세팅
if(bitmap!=null){
    Log.i(TAG, "-------- bitmap ");
    ByteArrayOutputStream stream = new ByteArrayOutputStream() ;
    bitmap.compress( Bitmap.CompressFormat.JPEG, 100, stream) ;
    byte[] byteArray = stream.toByteArray();
    RequestBody body  = RequestBody.create(MediaType.parse("image/*"), byteArray, 0, byteArray.length);
    // key값 : group_image
    imgMap.put("group_image\"; filename=\""+fileName+"\"", body);
}
 
imgMap.put("group_name",RequestBody.create(MediaType.parse("multipart/form-data"), groupName));
cs


남기려고 했지만

오늘 중으로 남기고 싶은 기록이 많아서

참고한 자료 출저부터 남겨본다.


http://jo.centis1504.net/?p=1161

http://www.devblog.kr/r/8y0gFPAvJ2j8MWIVVXucyP9uYvQegfSVbY5XM5LV3


이 뿐만 아니라 Resizing도 진행했었다.

같이 협업하는 친구가 알려준건데 꽤 요긴하다. (땡큐)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Override
public Bitmap imgAddGroupReSizing(String path) {
    DisplayMetrics dm = context.getResources().getDisplayMetrics();
    int reqWidth = dm.widthPixels;
    int reqHeight = dm.heightPixels;
    String imagePath = path;
 
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    Bitmap bitmap = null;
    try{
        BitmapFactory.decodeStream(new FileInputStream(imagePath), null, options);
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;
        Log.i( TAG, "---- imagePath:"+imagePath);
        Log.i( TAG, "\"---- reqWidth:"+reqWidth+"/reqHeight:"+reqHeight+"/height:"+height+"/width:"+width);
        if (height > reqHeight || width > reqWidth) {
            options.inSampleSize = (width / reqWidth);
        }
        Log.i( TAG, "\"---- inSampleSize:"+inSampleSize);
        options.inJustDecodeBounds = false;
        bitmap = BitmapFactory.decodeFile(imagePath, options);
    }catch (Exception e ){
        Log.e(TAG, e.getMessage());
    }
    return bitmap;
}
cs


라사이징 로직이 있었지만 결국 문제는 이 로직이 적용될 타이밍.

아.. 여기서 시간을 얼마나 많이 잡아먹었는지.

이 얘기는 다음 포스트에 남기겠다.

728x90
반응형