blob data not set as bitmap on imageview android - android

i have insert blob data in to sqlite and retrive from sqlite that time blob data not set as bitmap on imageview. give msg to fail to load. so please help me for my code. following are my code.
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
imageView.setImageBitmap(bitmap);
ByteArrayOutputStream stream= new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte imginbyte[]=stream.toByteArray();
byte temp[]=imginbyte;
myDb.execSQL("INSERT INTO tableimage VALUES('"+temp+"');");
Cursor c= myDb.rawQuery("SELECT * FROM tableimage", null);
c.moveToLast();
byte asd[]= c.getBlob(c.getColumnIndex("imgpath"));
byte img[]=null;
// BitmapFactory.decodeByteArray(asd, 0, asd.length);
ImageView iv=(ImageView)findViewById(R.id.img2);
ImageView iv1=(ImageView)findViewById(R.id.img3);
iv.setImageBitmap( BitmapFactory.decodeByteArray(asd, 0, asd.length));
iv1.setImageBitmap( BitmapFactory.decodeByteArray(asd, 0, asd.length));

Try this
ByteArrayInputStream imageStreamFront = new ByteArrayInputStream(asd);
Bitmap bitFrontImage = BitmapFactory.decodeStream(imageStreamFront);
if(bitFrontImage!=null)
{
iv.setImageBitmap(bitFrontImage, 40);
}

Without blob store image and retrive. with string database see below code
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
imageView.setImageBitmap(bitmap);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String encodedImageString = Base64.encodeToString(b, Base64.DEFAULT);
byte[] bytarray = Base64.decode(encodedImageString, Base64.DEFAULT);
Bitmap bmimage = BitmapFactory.decodeByteArray(bytarray, 0,
bytarray.length);
myDb.execSQL("INSERT INTO imgtbl VALUES('"+encodedImageString+"');");
Cursor c= myDb.rawQuery("SELECT * FROM imgtbl", null);
c.moveToFirst();
String img=c.getString(0);
byte[] byarray = Base64.decode(img, Base64.DEFAULT);
Bitmap bmimg = BitmapFactory.decodeByteArray(byarray, 0,
byarray.length);
ImageView iv=(ImageView)findViewById(R.id.img2);
ImageView iv1=(ImageView)findViewById(R.id.img3);
iv.setImageBitmap(bmimg);
iv1.setImageBitmap(bmimg);

Related

How to convert image to string in Android?

It's my MySql DB
Its encoding:-
public String convertBitmapToString(Bitmap bmp) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); //compress to which format you want.
byte[] byte_arr = stream.toByteArray();
String imageStr = Base64.encodeToString(byte_arr, 1);
return imageStr;
}
This is decoding:-
String img=o.toString();
byte[] imageAsBytes = Base64.decode(img.getBytes(), Base64.DEFAULT);
imageView.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));
Thank you.
It could be done by
private String getBase64String() {
// give your image file url in mCurrentPhotoPath
Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// In case you want to compress your image, here it's at 40%
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
return Base64.encodeToString(byteArray, Base64.DEFAULT);
}
And for Decode
private void decodeBase64AndSetImage(String completeImageData, ImageView imageView) {
// Incase you're storing into aws or other places where we have extension stored in the starting.
String imageDataBytes = completeImageData.substring(completeImageData.indexOf(",")+1);
InputStream stream = new ByteArrayInputStream(Base64.decode(imageDataBytes.getBytes(), Base64.DEFAULT));
Bitmap bitmap = BitmapFactory.decodeStream(stream);
imageView.setImageBitmap(bitmap);
}

Convert Image to Base64 String Android

I am able to get an encoded String using the following code :
public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality) {
ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
image.compress(compressFormat, quality, byteArrayOS);
return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.NO_WRAP);
}
BitmapDrawable drawable = (BitmapDrawable) imgPreview.getDrawable();
Bitmap bitmap = drawable.getBitmap();
encodedImage = encodeToBase64(bitmap, Bitmap.CompressFormat.JPEG, 100);
I get the following as String
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
But when i try to decode it using http://freeonlinetools24.com/base64-image nothing shows.
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteStream);
byte[] byteArray = byteStream.toByteArray();
String baseString = Base64.encodeToString(byteArray,Base64.DEFAULT);
This worked for me.
I have found out the problem. The problem was with the logcat from where i was copying the encoded string. Logcat didn't display the entire String so the broken string didn't decode the image for me.
So when i passed the encoded string directly to the decode function the image was visible.
I checked an image with given link http://freeonlinetools24.com/base64-image and it works fine. I think the reason for getting wrong output is your string. Encoded string always ends with == . Check your encoded string.
Example Code
Encode Image
BitmapDrawable drawable = (BitmapDrawable) imgPreview.getDrawable();
Bitmap bitmap = drawable.getBitmap();
encodedImage = encodeToBase64(bitmap, Bitmap.CompressFormat.JPEG, 100);
public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality)
{
ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
image.compress(compressFormat, quality, byteArrayOS);
return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT);
}
Decode Image
Bitmap bitmap = decodeBase64(encodedImage );
img.setImageBitmap(bitmap);
public static Bitmap decodeBase64(String input)
{
byte[] decodedBytes = Base64.decode(input,0);
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
}
EDITED
see my string..
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
You can use the Base64 Android class:
String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);
You'll have to convert your image into a byte array though. Here's an example:
Bitmap bm = BitmapFactory.decodeFile("/path/to/image.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
Encode/Convert image to base64 string
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.yourimage);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);

convert image.jpg to Base64 string

error log is image:null
my problem is not proper convert image to base64.
my code encode image
BitmapDrawable drawable = (BitmapDrawable) ivProfilePic.getDrawable();
Bitmap bitmap = drawable.getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bos); byte[] bb = bos.toByteArray();
String encodedString = Base64.encodeToString(bb,Base64.DEFAULT);
Log.d("ImageBase34", encodedString);
decode string to covert image
byte[] decodedString = Base64.decode(userDetailBean.getProfile_picture().getBytes(), Base64.DEFAULT);
Bitmap base64Bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Log.d("img", String.valueOf(base64Bitmap));
ivProfilePic.setImageBitmap(base64Bitmap);
Use the encodedString as the first parameter in the Base64.decode() method instead of userDetailBean.getProfile_picture().
You need to change your code like this.
BitmapDrawable drawable = (BitmapDrawable) getDrawable(R.drawable.ic_default_user);
Bitmap bitmap = drawable.getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bos); byte[] bb = bos.toByteArray();
encodedString = Base64.encodeToString(bb,Base64.DEFAULT);
Log.d("ImageBase34", encodedString);
decode string to covert image
byte[] decodedString = Base64.decode(encodedString, Base64.DEFAULT);
Bitmap base64Bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Log.d("img", String.valueOf(base64Bitmap));
imageView.setImageBitmap(base64Bitmap);

Issue in Covert from String Base64 to Bitmap

Code stuff for convert from Bitmap to String Base64
Bitmap thumbnail = extras.getParcelable("data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, baos);
thumbnail.recycle();
byte[] b = baos.toByteArray();
String attachment = Base64.encodeToString(b, Base64.DEFAULT);
Code stuff for convert from String Base64 to Bitmap
byte[] encodeByte = Base64.decode(strBase64, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
imageView.setImageBitmap(bitmap);
but i get bitmap = null;
I also refer Base64 to Bitmap to display in ImageView
Thanks in advance.
// convert Bitmap to String
public static String BitMapToString(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] arr = baos.toByteArray();
imageData = Base64.encodeToString(arr, Base64.DEFAULT);
return imageData;
}
// Convert String to Bitmap
public static Bitmap StringToBitMap(String image) {
try {
byte[] encodeByte = Base64.decode(image, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0,
encodeByte.length);
return bitmap;
} catch (Exception e) {
e.getMessage();
return null;
}
}
You are calling thumbnail.recycle(); after loading bitmap,, either remove it or call before loading bitmap

Conversion Blob in android

how can i store an icon into Blob?
anyone please help me on this topic
Drawable icon = p.applicationInfo.loadIcon(getPackageManager());
Blob b;
I have try this ::
button1 = (Button)findViewById(R.id.button1);
try{
ImageView iv = (ImageView) findViewById(R.id.splashImageView);
ImageView iv2 = (ImageView)findViewById(R.id.imageView1);
Drawable d =iv.getBackground();
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
System.out.println(".....d....."+d);
System.out.println("...bitDw...."+bitDw);
System.out.println("....bitmap...."+bitmap);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
System.out.println("imageInByte"+imageInByte);
String s = imageInByte.toString();
byte[] imageInByte2 = s.getBytes();
Bitmap btmp = convertByteArrayToBitmap(imageInByte2);
/*iv.setImageResource(R.drawable.icon);*/
iv2.setImageBitmap(btmp);
}catch (Exception e) {
e.printStackTrace();
}
// i1.insertDataUser("tableName",3,"appname","pname", "versionName", 2,"s", 2121);
/* int a = i1.GetUserData(getApplicationContext(), "tablename",1);
System.out.println("a is "+a);
System.out.println(" i1.app_id"+i1.app_name);
System.out.println(" i1.app_id"+i1.pname);
System.out.println(" i1.app_id"+i1.version_name);
System.out.println(" i1.app_id"+i1.versionCode);
System.out.println(" i1.app_id"+i1.date);
System.out.println(" i1.app_id"+i1.icon);*/
}
public static Bitmap convertByteArrayToBitmap(
byte[] byteArrayToBeCOnvertedIntoBitMap) {
Bitmap bitMapImage = BitmapFactory.decodeByteArray(
byteArrayToBeCOnvertedIntoBitMap, 0,
byteArrayToBeCOnvertedIntoBitMap.length);
return bitMapImage;
}
I see you convert from Drawable to Bitmap anyway, so you might use this:
import android.util.Base64;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import java.io.ByteArrayOutputStream;
//use this method
private byte[] getBase64Bytes(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
return Base64.encode(byteArray, Base64.DEFAULT);
}
Convert from Bitmap to byteArray. You can store this as a blob in your database:
Bitmap myBitmap; //should be initialized to some value
byte[] byteArray = getBase64Bytes(myBitmap);
For the sake of completeness, how to convert from byteArray to Bitmap again
public Bitmap getImageFromBase64Blob(byte[] blob){
byte[] byteArray = Base64.decode(blob, Base64.DEFAULT);
Bitmap bitmap= BitmapFactory.decodeByteArray(byteArray , 0, byteArray.length);
return bitmap;
}

Categories

Resources