How to upload an image to Parse in Android?

I managed to take a picture with the camera or take it from the gallery and show it in ImageView using this code. Now I need to do this and upload it to Parse. I was going to and fro to do this, and I did not find the right path for this. Can someone please help me with this? Can I load an image from ImageView? Thanks.

protected Button mFromCamera; protected Button mFromGallery; protected ImageView mImageView; private static final int CAMERA_REQUEST = 1888; private static final int SELECT_PHOTO = 100; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Initialize ImageView mImageView = (ImageView) findViewById(R.id.ImgPrev); //Initialize Camera mFromCamera = (Button) findViewById(R.id.FromCamera); //use camera mFromCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST); } //use camera end }); //initialize button mFromGallery = (Button) findViewById(R.id.FromGallery); //pick a photo mFromGallery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, SELECT_PHOTO); } });//pick a photo end } //previewing Image @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { //from the gallery case SELECT_PHOTO: if (requestCode == SELECT_PHOTO && resultCode == RESULT_OK && null!= data) { Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); mImageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); } break; //from the camera case CAMERA_REQUEST: if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { Bitmap photo = (Bitmap) data.getExtras().get("data"); mImageView.setImageBitmap(photo); } break; } }//Preview Image End 
+5
source share
3 answers

reading your answer:

I have already executed the code that you had before. I was able to upload the image for parsing. but I don’t know how to switch the pushed source to be my camera / gallery image or image. - stanley santoso

to:

Abhishek Bansal

I understand that your problem does not analyze your image?

To answer your question:

I don’t know how to switch the drawing source to be my camera / gallery image or image.

1 - R.drawable.androidbegin seems to be your problem, but the fact is that you already have a bitmap for analysis in your code:

from gallery β†’

 mImageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 

from camera β†’

 Bitmap photo = (Bitmap) data.getExtras().get("data"); 

2 - Therefore, I would suggest declaring a variable of type Bitmap at the beginning of your code

 private Bitmap yourbitmap; 

3 - then assign a bitmap image of the gallery and camera in your code and use it to analyze it.

 ... yourbitmap = BitmapFactory.decodeFile(picturePath); ... yourbitmap = (Bitmap) data.getExtras().get("data"); ... 

4 - finally, you can use your bitmap like this:

 // Bitmap bitmap = BitmapFactory.decodeResource(getResources(), // R.drawable.androidbegin); // Convert it to byte ByteArrayOutputStream stream = new ByteArrayOutputStream(); // Compress image to lower quality scale 1 - 100 yourbitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] image = stream.toByteArray(); ... 
+2
source

There are good tutorials on the Internet. Essentially the next thing you need to do

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.androidbegin); // Convert it to byte ByteArrayOutputStream stream = new ByteArrayOutputStream(); // Compress image to lower quality scale 1 - 100 bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] image = stream.toByteArray(); // Create the ParseFile ParseFile file = new ParseFile("androidbegin.png", image); // Upload the image into Parse Cloud file.saveInBackground(); // Create a New Class called "ImageUpload" in Parse ParseObject imgupload = new ParseObject("ImageUpload"); // Create a column named "ImageName" and set the string imgupload.put("ImageName", "AndroidBegin Logo"); // Create a column named "ImageFile" and insert the image imgupload.put("ImageFile", file); // Create the class and the columns imgupload.saveInBackground(); 

source: this tutorial

also see this question How to upload an image to a parsing server using parse api in android

+2
source

Click here to get the AsyncHttpClient library and upload your image. these are fats for image upload.

 public void uploadImage(Bitmap img_bit) { AsyncHttpClient imgupload = new AsyncHttpClient(); RequestParams params = new RequestParams(); if (img_bit != null) { byte[] imagebyte; ByteArrayOutputStream bao = new ByteArrayOutputStream(); img_bit.compress(Bitmap.CompressFormat.PNG, 100, bao); imagebyte = bao.toByteArray(); params.put("image", new ByteArrayInputStream(imagebyte), "test"+ System.currentTimeMillis() + ".png"); } imgupload.post("url",params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { System.out.println("Image Upload successfully"); } @Override public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { System.out.println("faile the data"); } }); } 
0
source

All Articles