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

안드로이드 mysql StringtoBitmap null값..

0 추천
 Response.Listener<String> responseListener = new Response.Listener<String>() {
                         @Override
                         public void onResponse(String result) {
                             try {
                                 JSONObject jsonObject = new JSONObject(result);
                                 JSONArray jsonArray = jsonObject.getJSONArray(TAG_JSON);
                                 matchList.clear();
                                 Log.v("count jsonArray", String.valueOf(jsonArray.length()));
                                 for (int i = 0; i < jsonArray.length(); i++) {
                                     JSONObject item = jsonArray.getJSONObject(i);


                                     String userID = item.getString(json_userID);
                                     String userName = item.getString(json_userName);
                                     String userGender = item.getString(json_userGender);
                                     String lovation_work = item.getString(json_lovation_work);
                                     String Ucareer = item.getString(json_Ucareer);
                                     String Ulicense = item.getString(json_Ulicense);
                                     String uWorkTime1 = item.getString(json_uWorkTime).substring(0,2);
                                     String uWorkTime2 = item.getString(json_uWorkTime).substring(2,4);
                                     String uWorkTime = uWorkTime1+":"+uWorkTime2;
                                     String img = item.getString(json_img);
                                     Log.v("img",img);
                                     Bitmap image = StringToBitmap(img);
                                     matchingDTO matchingDTO = new matchingDTO();
                                     matchingDTO.setUserID(userID);
                                     matchingDTO.setUserName(userName);
                                     matchingDTO.setUserGender(userGender);
                                     matchingDTO.setLovation_work(lovation_work);
                                     matchingDTO.setUcareer(Ucareer);
                                     matchingDTO.setUlicense(Ulicense);
                                     matchingDTO.setUworkTime(uWorkTime);
                                     matchingDTO.setImg(image);
                                     matchList.add(matchingDTO);

                                 }

                             } catch (Exception e) {
                                 e.printStackTrace();
                             }
 public static Bitmap StringToBitmap(String img) {
        try {
            byte[] encodeByte = Base64.decode(img, Base64.DEFAULT);
            Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
            Log.v("imgBitmap",String.valueOf(bitmap));
            return bitmap;
        } catch (Exception e) {
            e.getMessage();
            Log.v("imgerror","error");
            return null;
        }
    }

php를 통해 image를 받아서 로그를 찍어보면 재대로 나오는거 같은데..

StringBitmap 을 통해 Bitmap 으로 바꿀라했더니 null 값이 찍힙니다.

코딩뉴비 (310 포인트) 님이 2022년 11월 17일 질문

1개의 답변

0 추천
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                try {
                    InputStream in = getContentResolver().openInputStream(data.getData());

                    img = BitmapFactory.decodeStream(in);
                    in.close();
                    img = resize(img);
                    imageView.setImageBitmap(img);
                } catch (Exception e) {
                }
            }
        }
    }
imgCompress(img);
public void imgCompress(Bitmap img){
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    img.compress(Bitmap.CompressFormat.PNG, 100, baos);
    byte[] bytes = baos.toByteArray();
    image = Base64.encodeToString(bytes,Base64.DEFAULT);

}

    private Bitmap resize(Bitmap img){
        Configuration config=getResources().getConfiguration();
        if(config.smallestScreenWidthDp>=800)
            img = Bitmap.createScaledBitmap(img, 400, 240, true);
        else if(config.smallestScreenWidthDp>=600)
            img = Bitmap.createScaledBitmap(img, 300, 180, true);
        else if(config.smallestScreenWidthDp>=400)
            img = Bitmap.createScaledBitmap(img, 200, 120, true);
        else if(config.smallestScreenWidthDp>=360)
            img = Bitmap.createScaledBitmap(img, 180, 108, true);
        else
            img = Bitmap.createScaledBitmap(img, 160, 96, true);
        return img;
    }
}
코딩뉴비 (310 포인트) 님이 2022년 11월 17일 답변
코딩뉴비님이 2022년 11월 17일 수정
추가 질문입니다 ㅠㅠ 데이터베이스의 저장된 bin 파일을 phg로 변환해주는 사이트에서 실행해봤더니 오류라고 뜨길래 애초에 저장될때 부터 안되는것 같습니다.
댓글에 올린 코드는 저장될떄 변환하는 코드입니다.
...