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
반응형
'Android, iOS' 카테고리의 다른 글
알아두면 좋은 것 : 액션바 만들기, Glide custom cache (0) | 2016.12.21 |
---|---|
맨날 Start만 하는 Activity. 그래놓고 제대로 시작한 적은 있냐 (0) | 2016.12.21 |
액티비티 전환시 Progress Bar가 너무 빨리 지나간다면? (0) | 2016.12.21 |
RealTrustRootIndex의 NullPointer가 발생시 (0) | 2016.12.14 |
Key 인증과 Google Map API가 싸울 때 (0) | 2016.11.10 |
Comment