Reputation: 21
I have String bitmap1
that will take compressed image from Bitmap photo
,
but the problem here and I think the bitmap1
take image from imageview
that view token image and not from photo
because when I send an image to server it will send small resolution like of imageview, although I set compressing 100
private void takeImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
selectedImage = data.getData();
photo = (Bitmap) data.getExtras().get("data");
String[] filepath = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filepath, null , null , null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filepath[0]);
picturePath = cursor.getColumnName(columnIndex);
cursor.close();
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView = (ImageView) findViewById(R.id.tokenImage);
imageView.setImageBitmap(photo);
}
}
....
ByteArrayOutputStream bao = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte[] by = bao.toByteArray();
bitmap1 = Base64.encodeToString(by, Base64.DEFAULT);
Upvotes: 2
Views: 68
Reputation: 479
Try this-
Bitmap resized = Bitmap.createScaledBitmap(photo , 600,370, true);
ByteArrayOutputStream blob = new ByteArrayOutputStream();
resized.compress(Bitmap.CompressFormat.JPEG, 100, blob);
String StrBase64 = Base64.encodeToString(blob.toByteArray(), Base64.DEFAULT);
Upvotes: 1