Recipe 2.12 Decoding a Base64-Encoded Binary

Problem

You have a string that contains information such as a bitmap encoded as base64. You need to decode this data (which may have been embedded in an email message) from a string into a byte[] so that you can access the original binary.

Solution

Using the static method Convert . FromBase64CharArray on the Convert class, an encoded char[] and/or string may be decoded to its equivalent byte[] :

 using System; public static byte[] Base64DecodeString(string inputStr)  {     byte[] decodedByteArray =        Convert.FromBase64CharArray(inputStr.ToCharArray( ),                                      0, inputStr.Length);     return (decodedByteArray); } 

Discussion

The static FromBase64CharArray method on the Convert class makes decoding an encoded base64 string a simple matter. This method returns a byte[] that contains the decoded elements of the string .

If you receive a file via email, such as an image file (.bmp), that has previously been converted to a string, to convert it back into its original bitmap file, you could do something like the following:

 byte[] imageBytes = Base64DecodeString(bmpAsString); fstrm = new FileStream(@"C:\winnt_copy.bmp", FileMode.CreateNew, FileAccess.Write); BinaryWriter writer = new BinaryWriter(fstrm); writer.Write(imageBytes); writer.Close( ); fstrm.Close( ); 

In this code, the bmpAsString variable was obtained from the code in the Discussion section of Recipe 2.11. The imageBytes byte[] is the bmpAsString string converted back to a byte[] , which can then be written back to disk.

To encode a byte[] to a string, see Recipe 2.13.

See Also

See Recipe 2.11; see the "Convert.FromBase64CharArray Method" topic in the MSDN documentation.



C# Cookbook
C# 3.0 Cookbook
ISBN: 059651610X
EAN: 2147483647
Year: 2003
Pages: 315

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net