Wikipedia:Reference desk/Archives/Computing/2015 September 11

From Wikipedia, the free encyclopedia
Computing desk
< September 10 << Aug | September | Oct >> September 12 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


September 11[edit]

What does the following base64 encoded PNG image look like?[edit]

What does the following base64 encoded PNG image look like?

Extended content
   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

I tried various online tools [1][2][3] to convert it, but those tools all show a half-cut-off version of the original image. My own code, however, manages to both encode and decode it fine. Now I'm kinda stuck since I'm not sure whether it's my own code that's broken or it's the online services that's broken.

Here's the Java code I used to encode it and decode it:

               mBitmap = // image from somewhere
               ByteArrayOutputStream bao1 = new ByteArrayOutputStream();
               mBitmap.compress(Bitmap.CompressFormat.PNG, 10, bao1);
               byte[] ba11 = bao1.toByteArray();
               result = Base64.encodeToString(ba11, Base64.DEFAULT);
               byte[] decodedString = Base64.decode(result, Base64.DEFAULT);
               Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

My other car is a cadr (talk) 13:35, 11 September 2015 (UTC)[reply]

The last line is 63 symbols long, but Base64 text must be a multiple of 4 symbols long. It can't be fixed by adding = because the final F ends with a 1 bit. If I decode the rest, I get a truncated PNG file (it ends halfway through an IDAT chunk). Something is truncating your Base64 output to about 4000 characters. -- BenRG (talk) 18:51, 11 September 2015 (UTC)[reply]
Thank you very much!! My other car is a cadr (talk) 04:23, 12 September 2015 (UTC)[reply]
BTW, since you said your own code produced the complete output this may be a useful time to consider good testings practices. I presume either your code was flawed and wasn't taking the correct input, or you weren't feeding it the correct input. A good way to try and avoid the former is to make sure you test different inputs. For example, if you purposely cut off the BASE64 output and your code was still producing the exact same output, there must be something wrong with your code. For the later, remember to always output what you are testing to a file yourself after you've used it for testing elsewhere so that you can be fairly certain you are testing the same data. (If you're testing locally then just make sure you always use the same file, altho making a copy can be useful to reduce the possibility of mistakes.) Nil Einne (talk) 16:25, 12 September 2015 (UTC)[reply]
Resolved