Question

I want to pick an image from galery and convert it to base64 string for insert to database. But this string has empty characters and very very long. When I did it same process in asp.net, decoded string wasn't long that much and it hasn't empty characters. I'm getting error because of returned very long string. How can I do this ?

Bitmap bm = BitmapFactory.decodeFile(picturePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);  
byte[] b = baos.toByteArray(); 

imageStr = Base64.encodeToString(b, Base64.DEFAULT);

imageStr returned like this:

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB

AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB

AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAMgAlUDASIA

AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA

AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+C22l
xcRmPnyLgYP/AAJsdTzxnH168GtAS+bHF5XkeVn/AI9ueu5hkjj0Ocnv0JJNYQVvL6f8fH/LzkdA
W9+vJzz/ABd8EFVZvKn8ofyz1b3wcjHbsOpPPkJXv5WT8ruS17L3fXVaPVnjrDQd/df/AJM7/E/5
tXZX7Xbs202a6y8RfuZug5tu/Ljtx0HHsW5yCa3Z5fsv2jyp/wB79lH+jc+r8j2wF9+nGSc8jDNN
FkRTGGMnnn3bnj6Dj6jOCCZRckTExdOAM4z1fnrx93A7dOuDlAdCI/vT2p8mLjn7IexYckn079QS
eMkGrgMPlXH2Sf8AfW2LX7Ng88uM8E9c8/j3Ga5W2vpvKPHT3PHJ9j2H8+4Obj3vWcTelp9mz7uO
4+nT3wPvUHP7D+/6e7/9t/XdnSC5mtbg/ZJv9E9yPVvb26fzAGbltcT+YZpbufzfso/0rJ/tDqw9
D6fhzyeTXO20vWXyf+Xodvd+n6k/hz1oiuoYc+V/qefzBb3445/E5BA5A+pef4f/AG50cV15skX/
AC8f6ULvNtn1ODjJOOPU89+CDdeWGWIzf6iHj6cl+2e4HT0xxkYPOWTW8shmP7ibj/RcnsR15yPU
H6g5IJqWyuFAP778Mk/bOvueuM9fzOa7frS7P7l/8mc50j/6ozTTwT9B+Rcfrnng9uOc1TspfNia
ylhg7f8AHz2wW/mMcc9wckCs0XkktvF5U0Hkk47+r+h+pwe3rhsaVs1sby048/7Pai66n+84B5P+
TuBBIzR9aXZ/cv8A5MCR7W6wfKm8ia3uhdXfTnlgAecfwnjvjqCDmIeZ5UU+ftEvFr0HTLZ+vQH/
AL6zyMknurOKQwxTduvXu3X5ucj8euckcLDLZfuvK8j/AEi0Hvn73qeM46dsDnrnq9s/L/wF/wDy
wr2FT+WP3R/+TJokuhbxCZv+PfFr0POo/P7f7vf05yDVIOsVxP8Aup/tdvj7IeeeWBPT1APP5g/e
04pYfMihEx863x/Nx68Z6D/gXXk1CIvJe482e3/5h3/oTj1HTb+RHXbk8v1VfzP71/8AIkkLjysj
MH5e7dj64HPbkZORmn+5x287P2n/AMe6euM/hj3reEUMUkU37ji6H2U23Tr6/rnv0PPNZotZ4omm
86CAcfara2+rZ4x7L+mTkDNgZo877MfK/wBdx+WWz/T3z1/hqa2/dSRf89cDPUd2A/kT9M8HPI/7
25tIMwTw4/5duO7D16kgkde/UnkcTyyH99B/pHT0PL+/HQkjtwO7EgGlOiyuZvOE5GPsvX1bHG7P

.....

wxNwReVbRQ59Me+C/vxwD1PU98UAZQihi8r9z++uCMdOeT0z0HGevOepOMxRRfu5/Kmn877UP5nO
B64C5/4F0JOdJx5sbf8APaf/AJdrbHqw7j0GevQDkHOYYuh82H9907dAW9uBxgfjkkmuc9Aje1/0
eL/nt9qGe3Qn69B1/AdcGgRfu4skTw/0y368g9evBJIq4JR5TTS/v/s2PbPLjnn/AHcZ7leeHJUQ
zeXF+Hr6uPXt39yOmMnoPPOeFr5Xlfucw5GOvq+O/cevTHqTkeGGV/8AU56foW9//wBXOcgcbEX2
OIXE0sPnzW+PsuMdCXH17HA5OT1OM1TeI+ZcTfT16kv09s9O/XkkFqAA58m4zzDb47d9x7H6D8T1
4LVThin/AHUNpD5/T/tzGX9/YZ+o9VFXFi820v8AP7ib5f8Aj5z/AHj654+U57fj1BF5uZvJ8jGB
j6l+evbHTPGTyck1z1i6
Was it helpful?

Solution

Use Base64.NO_WRAP flag to strip line breaks

Use 90 quality when compressing will greatly reduce the output size. the length of the output will be 4/3 times of the length of the byte array

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top