It's the simple code and instead of getting result to set the Bitmap, I get null. Can anyone tell me where I am making a mistake?
String test = "test";
byte[] byteA = test.getBytes();
Bitmap bmp = BitmapFactory.decodeByteArray(byteA, 0, byteA.length); //<- I get null here
ImageView image = (ImageView) findViewById(R.id.image);
image.setImageBitmap(bmp);
UPDATE
Ok, so I cannot convert text to image like I thought I could. How about this way? Will this create a bitmap?
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setTextSize(16);
paint.setAntiAlias(true);
paint.setTypeface(Typeface.MONOSPACE);
Bitmap bm = Bitmap.createBitmap(16, 16, Bitmap.Config.ALPHA_8);
float x = bm.getWidth();
float y = bm.getHeight();
Canvas c = new Canvas(bm);
c.drawText("Test", x, y, paint);
In such case you need to convert the string to Base64 first.
String strImage = geTImageAsHexString();
byte[] x = Base64.decode(strImage, Base64.DEFAULT); //convert from base64 to byte array
Bitmap bmp = BitmapFactory.decodeByteArray(x,0,x.length);
From the documentation:
Returns The decoded bitmap, or null if the image could not be decode.
The bytes involved in the string "test" aren't a valid bitmap, are they?
If you saved the text "test" in a file called foo.png
or foo.jpg
etc and tried to open it in Windows, what would you expect the result to be? It would be an error: those bytes simply aren't a valid image in any known format.
EDIT: I don't know anything about Android graphics, but your update certainly looks like a much more reasonable way to draw text onto a bitmap.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With