Parse.com получить изображение из массива

Я пытаюсь загрузить изображения, выбранные пользователем, в массив Parse.com. Я не смог этого сделать. проблема в том, как сохранить и как мне вернуть эти фотографии? это мой код для загрузки изображений (это пример, поэтому я использовал изображения из Drawable:

       Button btnadd = (Button) findViewById(R.id.btnadd);
    btnadd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Bitmap bitmap;
            bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.one);
            myArrayOfParseFiles.add(add(bitmap));
            bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.two);
            myArrayOfParseFiles.add(add(bitmap));
            bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.three);
            myArrayOfParseFiles.add(add(bitmap));

            ParseObject object = ParseObject.create("Pictures");
            object.add("pic", myArrayOfParseFiles);
            object.put("username", ParseUser.getCurrentUser().getUsername());
            object.saveInBackground();
        }
    });
    Button btnnext = (Button) findViewById(R.id.btnnext);
    btnnext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentObj = new Intent(Welcome.this, Show.class);
            startActivity(intentObj);
            finish();
        }
    });
}
    public ParseFile add(Bitmap pic){
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        pic.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] image = stream.toByteArray();
        ParseFile file = new ParseFile(image);
        file.saveInBackground();
    return file;

}

Это мой код для получения массива и изображения. Я получаю ноль, и я не могу получить изображение. а также, как мне сделать это в цикле для всего массива, который у меня есть при разборе (в этом конкретном необработанном виде), и поместить его в список растровых изображений.

ParseQuery<ParseObject> query = ParseQuery.getQuery("Pictures");
            query.whereEqualTo("username", ParseUser.getCurrentUser().getUsername());
            query.getFirstInBackground(new GetCallback<ParseObject>() {
                @Override
                public void done(ParseObject object, ParseException e) {
                    List<ParseFile> list = object.getList("pic");
                    try {
                        URL url = new URL(list.get(0).getUrl());
                        Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
                        picone.setImageBitmap(bmp);
                    } catch (MalformedURLException e1) {
                        e1.printStackTrace();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            });

person Liraz Shaka Amir    schedule 06.04.2016    source источник


Ответы (1)


преобразовать растровое изображение в строку для загрузки:

    private String getStringFromBitmap(Bitmap bitmapPicture) {

        final int COMPRESSION_QUALITY = 100;
        String encodedImage;
        ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream();
        bitmapPicture.compress(Bitmap.CompressFormat.PNG, COMPRESSION_QUALITY,
                byteArrayBitmapStream);
        byte[] b = byteArrayBitmapStream.toByteArray();
        encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
        return encodedImage;
    }

и преобразуйте вашу строку в растровое изображение:

private Bitmap getBitmapFromString(String jsonString) {
    byte[] decodedString = Base64.decode(jsonString, Base64.DEFAULT);
    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
    return decodedByte;
}

вы можете сохранить свою строку в файле и сохранить ее на стороне сервера или... а затем загрузить строку и снова преобразовать ее в растровое изображение...

person Mehdi Akbarian Rastaghi    schedule 06.04.2016
comment
Спасибо, но проблема в том, что я не знаю, как загрузить файл из массива при разборе. - person Liraz Shaka Amir; 07.04.2016