My question is is an encoded string generated with the code below usable on another platforms and if not - how do I make it? The code is working good on android, but I am not sure what will happen if I try to expand the project.
This is the code for generating the string:
private String BitMapToString(Bitmap bitmap){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.NO_WRAP);
return imageEncoded;
}
And this is the code for decoding it:
private Bitmap StringToBitMap(String encodedString){
byte[] decodedByte;
try {
decodedByte = Base64.decode(encodedString, 0);
} catch(Exception e) {
return null;
}
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
I'm sending the string to the database and retrieving it and everything works just fine hence I can display the image. But is it usable elsewhere? And if not - how do I make it?
Related
I am looking to share a screenshot of a page between two devices. The screenshot is stored in a Bitmap and then I am converting it to a byte array which is then converted to a String in Base 64. The String is then sent over to a handler which will display the image. After I try to decode the image it is giving me a: java.lang.IllegalArgumentException: bad base-64
I have already tried to send the images in different ways and have tried all the different Base 64 methods such as Base64.DEFAULT, URLSAFE, NOPADDING etc...
Here is where I am creating the screenshot and sending:
Bitmap b =
Screenshot.takescreenshotofRootView(MainActivity.imageView);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG,100,baos);
byte[] bytea = baos.toByteArray();
String temp = Base64.encodeToString(bytea, Base64.DEFAULT);
sendReceive.write(temp.getBytes());
This is where I am handling that data
Handler handler = new Handler(new Handler.Callback() {
#Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_READ:
MainActivity.imageView.setImageBitmap(bitm);
byte[] readBuff = (byte[]) msg.obj;
String tempMsg = new String(readBuff, 0, msg.arg1);
byte [] encodeByte = Base64.decode(tempMsg,Base64.URL_SAFE);
Bitmap bitms
= BitmapFactory.decodeByteArray(encodeByte,0,encodeByte.length);
MainActivity.imageView.setImageBitmap(bitms);
break;
}
return true;
}
});
You might be getting an OutOfMemoryError without realizing it, rendering your base64 string invalid. You should wrap your code with a try/catch block to see if that is happening. Here is an example in some code of mine:
String imageString = "";
try {
if (this.theBitmap != null) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
this.theBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
imageString = Base64.encodeToString(bytes, Base64.DEFAULT);
}
}catch(OutOfMemoryError E){
Log.e("MyApp", "Out Of Memory error");
}
Well, i'm trying to send a picture from android to java, if i make it with compression it works really good, but i need to make it without compression beacuse i need a good or normal quality.
FixBitmap is my current Bitmap picture
//Android
FixBitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byteArray = byteArrayOutputStream.toByteArray();
ConvertImage = Base64.encodeToString(byteArray, Base64.DEFAULT);
Log.e(TAG,"LENGTH"+ConvertImage.length());
Length 43388
//Java
try{
String file=request.getParameter("image_data");
String filename=rt.getId()+"_"+rt.getName()+".png";
BufferedImage image = null;
byte[] imageByte;
BASE64Decoder decoder = new BASE64Decoder();
imageByte = decoder.decodeBuffer(file);
ByteArrayInputStream bis = new ByteArrayInputStream(imageByte);
image = ImageIO.read(bis);
bis.close();
File outputfile = new File(filename);
ImageIO.write(image, "png", outputfile);
Path destinationFile = Paths.get(getServletContext().getRealPath("/")+"uploads\\", filename);
Files.write(destinationFile,imageByte);
}catch(Exception ex){
System.out.println("Error :"+ex.getMessage());
}
This code actually works as i said, but the compression make it looks in a very bad quality, so i tried to make it without compression, just converting my bitmap to a byte array, just like this
ByteBuffer buffer = ByteBuffer.allocate(FixBitmap.getRowBytes() *
FixBitmap.getHeight());
FixBitmap.copyPixelsToBuffer(buffer);
byteArray = buffer.array();
ConvertImage = Base64.encodeToString(byteArray, Base64.DEFAULT);
Log.e(TAG,"LENGTH"+ConvertImage.length());
Length 252107
The code on my java side it's the same but now it doesn't work, it just shows me this error :
java.lang.IllegalArgumentException: image == null!
So I decided to print the length because maybe there is some restrictions about this...
so I hope you can help me with this (just send/get the picture without compression)
I got my binary data from database which is in PNG format. Now, I need to change the format to BMP and then convert it to a string by Base64.
My logic is PNG binary-->BMP binary-->BMP base64 String.
My Code is as below. The input "data" is the PNG binary, imageFormat="BMP".
public static String imageToBase64 (byte[] data, String imageFormat) throws IOException{
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(data));
ByteArrayOutputStream baos=new ByteArrayOutputStream(1000);
ImageIO.write(imag, imageFormat, baos);
String base64String=Base64.encodeBytes(baos.toByteArray());
return base64String;
}
However, the result always return empty. Can anyone help me to solve this problem?
Thanks
You need to use the Java API to write to a new BMP file. Based on your code this is how it does what you asked.
public static String imageToBase64(byte[] data, String imageFormat) throws IOException {
BufferedImage imag = ImageIO.read(new ByteArrayInputStream(data));
BufferedImage bmpImg = new BufferedImage(imag.getWidth(), imag.getHeight(), BufferedImage.TYPE_INT_RGB);
bmpImg.createGraphics().drawImage(imag, 0, 0, Color.WHITE, null);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bmpImg, imageFormat, baos);
String base64String = Base64.getEncoder().encodeToString(baos.toByteArray());
return base64String;
}
Please note I used "bmp" (lowercase) instead of "BMP". Not sure if this matters. Enjoy.
I am trying to convert a bitcode image to base64 format. I tried to code like
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.URL_SAFE);
}
generated response is below which does not give me image again.
can someone provide some pointers here? What I might be doing wrong?
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAMgAlgDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+PXxv
b/u7W6/58cf+zd85H8OMDH615jP99q+hb+2tP7MvfwHfsJBnqeK8Gv8A7ILts2meD269ffj1/Lnr
Xz+D+Bf9w/8A3IfJ/wDyswp7fr/n+979en5gZO3J9Y+E/wBk861+0/7OPrluvv198deK88/0b/OK
uaL9qt83Vsc8Dt3y/v8A7vvnHUAiugzP1P8Ag9418L+Hs/6V2XuP9vHRu+OO/JyDk11nxf8Aj7pm
s27Wmmap068g926/Mcdz+J5BGa/FvxP4w8VW2rXv2XVPsf23rzz/ABdc/n3PJySTXPTeMPFXJudV
9Bj15b3/AMeM9CTXr691/wCAv/5I0+o/3f8Ayb/7c9Y+K2oXXjHXG/0o3lqMegzy455PYe/JPck1
7X8F/hfaYa6+1enPJ7t7/T15I5IXB+R9O8UXXn2o/D/x4D19ev4dRk13+r/FDVLfSDa2v22z6fzc
k/eOf/rj3JX2l8z28v8A4fz/APbsQe1/HD4o6t4qnPwq0O7xpVnnIsOe7Ed+4549RuIwCes+DAs/
A+60trb/AEpdv9pcc8k4789P1wcnGfEvg7BpVsb3XdTuueOST2yegOBjGOTn1JJGfrjwd/wimsi0
vLq7sucYX5ucEjOeozjcPoODt58DF/DJX6ytZN30mtrdVf06vqdOM/26706JNWdleadnr2evRWTd
3Jv7y+H3jC18Q6SxFvwB1x05YHg8ncfx6gjgEdbf+ILPTwQVwFx3J7vjgHI9cdsjJIOa80+H+v8A
ha2gtGtr3H1GRnpzz6g/r1xk+mX3h7SfEW4G6svsgxwew3P3yCQRyMngkDPBJrA8TPVXeiT1eu8+
sWlpfq5a9btHzeL4X05brv7y2d5Wdr7u92r2V46ttN8OP2gD4cJFpafbOcZz1Pz44ycY/XJ/unPP
6/8AFDU/iDBqGbX7H93PX1cDgH0HboccgjJ6Gb4L6XcS2v2RsAcZ29cs/QEE8bRke6n+7WB4vntP
BufD/hj/AEzxBd4yef8AiVcyHPJ746Z4H4bvGzrO9212SSvquaTi7OXbZdPefNfQ8bGY36hzK7au
rbeuztu07JNJbtNpt+cp4X8LeHTe/wBtH7bdDHoO7eufUn8Twc5pdOudVucjSrX+xrQYGbDkdW9e
eCPUnJBIyBWp4G+A3j3xjM13baXe3hPTg8YYg/XPX8VGTxn9B/hP+xN4sAYa50Uj04yTj8CVPvnu
D1/E864oy3Ac39pX7NO196i2TW/Nf4rXbV7qz+GxmMzHH36Wsr9U7yva+97qz1t3vLX4Z0XwrdXG
/wC122MYJwCeucHr7dOvI5Oa9k8L/BfVvEc32W1s+nfI5+ZvUDoF469yTnGf1X8HfsjeDLbKan3x
zwOhc8Lj8OvTPIIJPjXxt+KPgv4W2974d+FmlWXiTxV/z/8AbSsF8/xd8D0IxjJyTXFgOJ8ux6f9
m67Xemzv1lKzbdlrdq6V72v48cErP+0bLSyUvVuy95vXRu72srayPE5tK8AfATQjda7aWWseIL3H
9m6Dk9t3tz347bjnJC5+b/F3jjx58Q9UP9p3f2OzHTTrAN/xKfmbvuySSc+3TnOarW2na74p1069
4lu73Wbo/cxkY5bPOT1PXPI9ycH3fwt4GBa2zZ56cZxjr2x7Z6dxycGnjMaoqSV0+r1SspJdW3vf
S972WjSPGxmdL4bOya9N52Xu31sk303vrEzPh94dG20W6PpzjHGXPrnH491/ujP0x4f8Pldxzhjj
jGe7A/NnqcA/mM5BNL4O8E/KWtrT0H/jz47fiB7kYOK948L+D+ourTcR15292xx37j2wM84z4ywX
168d7a30tvN6pprfv1a1b35jkNO8EJz8uTx/Fx1k/wA+p6Emu407QFt85Xpj+I+p/wAOR7jkg4r2
TRvC8dvn/RTxjs3TLDPP+7+HfJNdYPB9hcZ/0Tp/vf7Q6cnjjOD3PJ5NL/Vj+7L+vket8pf+Bf8A
2584XPg7bu+yDAGTn1ycdCT9AR/9euT1jwwFZjjkY5yf+mnOCP0x6Anqa+0dM8EFdwJxjHG088nG
SOONpPXjp15OVe+CLScFTaew69CzHtnp/Mjrkmni+CrJ8rutb21b1l9l7bK+/ZyaUm0r/wCLZbvV
e/Ztu9/TVLXs7/Ctx4VM4JOMdj+LD1J7/Xkk5ODXFX/hltpzyD+B+Ut/U/8A1sGvvLV/huo3qbXG
duOCeMnnpk9D+L+gryjVfA93g7bXg+3QZk55OSSecnpkHOASfj8bwVmOA5nd6W10d3eVrbJvV295
vTvcNLeWmvld66Ws79PTd3R8F+MPhfpWsF/9EyPlBHI/vY5HI5bOPYg5yCef8EfD8Wur2lta47+v
PJHc+x/M5JJr7oHwn1XW2O21xjA3cdw3OD9ORz+nzUp9O8K/DVX/ALRb7bdfLnT8EZwzAY7ds8HI
3AHJJrtwPE+ZZBzLMmrO1tHZ3cvi1VnKyd73VopLW79jA43M8Am7N6a6tdWtLu6dl2cnpq07v0/w
Z9p8O6Va2drZ4zjPzZ6bsdT/AL3fPTg4Nfo5+yfnybQXQ3HIzyBnk474B24+o25yQcfjRqHxX8Va
hj+zzZaPac/hguOw75HHpnkYyf1K/YN1c3OkM2o6v9svOOMDP3mHc4BA6fVh1Bz+q+Hvi5lvFuZS
y3LV0vZ/zXlZtPdNq2stNNdY39nG8TfE35RT6byT0T/mUbpt2dnum3+gPi7+yrayv7rUrWy+yWWn
Lj1x82f5A/TcAMjn+Cv/AIKCfGfVfjn+0X4jutNu/slp/wAJnx/31IDxk5zgfXjuDn+xj/gpL8cL
T4a/BHW7XTNV+x6r40xpunen/LT1PPQdSev+1z/FL4D8D3XiHxF4j8Z3Nr9stP8AkG+HPt+f7z9/
8cckcjlj+rLeXpD/ANKqH0vDG0vWH/pVQ1NO0PG7n7ZpNkf7voX4+8T1/PoMnOPWPC3hs+Hrc3P2
Y2l3rWO3Xlz3PThf0zySTseHvAzAWlra2/237Fj+0eB2L9+fx9cgZOa7dZ2tg1rodve6xqv+6OmW
9+PuqT65HJ2jPxv1yXn90f8AI90xra30fw8tp9qP+i8HPP8AxNPmkB4z/u8dsn3J9Z8L/A/x9rdv
b6oNKFppQ249vmOTzjrxn8OpGB9z/sa/8E7vFHjGa0
try this function :
public static String imageToString(Bitmap BitmapData) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BitmapData.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] byte_arr = bos.toByteArray();
String file = Base64.encodeToString(byte_arr, Base64.DEFAULT);
//appendLog(file);
return file;
}
There are some misunderstandings here. In your method you are receiving a bitmap (image) by parameter. If you want to pass it to base64 format, you are doing it right because base64 format is just a big String, as you can see in your return.
If the error is in your method and in de reverse process (parsing this String in Base64 to Bitmap), you can try this function:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
to encode base64 from byte array use following method:
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
Also, try to use this method to reverse the process of encode:
byte[] decodedString = android.util.Base64.decode(yourString, android.util.Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Hello I am working with android image processing via base 64 encoding and decoding.I need to send an encoded base 64 string to server as a string . When I tried it in android side , I can able to decode it into original image.and my decoding and encoding are as follows
public void base(Bitmap bitmap)
{
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
toimag(encoded);
String a=encoded.replaceAll("\\s+","");
Log.i("strrr",a);
}
public void toimag(String encodedImage)
{
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
logo.setImageBitmap(decodedByte);
}
But I cant able to get the actual image using http://www.askapache.com/online-tools/base64-image-converter/ . It show only a part of my actual image. This is my base 64 string
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
How can I resolve this issue ? Is there any problem with this encoded string ? Please help. Thanks in advance :)
It appears you are cutting and pasting from the logcat. logcat truncates long messages, so you should not rely on it for copying large pieces of data. You should save the base64 string out to a file and then try your validation using that file.
For Encode image to Base64
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncode = Base64.encodeToString(b,
Base64.DEFAULT);
For decode image
byte[] decodedByte = Base64.decode(imageEncode, 0);
Bitmap newBitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
logo.setImageBitmap(newBitmap);