-2

I would like to decode a base64 string to an image. I'm using the following code to decode,

string base64string = subSocket.ReceiveFrameString();
       
if (base64string.Length > 1000)
{
    var base64Data = Regex.Match(base64string, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
    byte[] imgBytes  = Convert.FromBase64String(base64Data);
    myTexture.LoadRawTextureData(imgBytes);
    myTexture.Apply();

    rawImg.texture = myTexture;
}

Unfortunately, it throws FormatException. How do I properly decode the base64 image. Following is my base64 string.

data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAAMAAwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0j4BfCn9nV7XS/EV9pPw9gls72e+1GHXfBx1GXxFEY7jLXDyE52SXFpMTgB3s4VkXE0zv4z8Ufh7+zv4N8eX+jeIPi7Z6Nb5ik0iFtdleWe3aJC00oe5i8tzP54CrvXaqEPyUT2Lw5oOjzaCdUn06GST+x7iNFaMbEDtCGwvQZUbcdMEjHNcn4iuV8O3kWn6VaQxxG1jcIEwASueACOK9bM+BKePSqYbFVKU2lbSlJK+rVqlKfZWbu1smlv8ACZT4rZ1kWJlHl9y7T5JVKcnbSN3CpHb0/E//2Q==

  • Does this answer your question? [converting a base 64 string to an image and saving it](https://stackoverflow.com/questions/5400173/converting-a-base-64-string-to-an-image-and-saving-it) – gunr2171 Apr 29 '21 at 13:29
  • Does this answer your question? [How to check for a valid Base64 encoded string](https://stackoverflow.com/questions/6309379/how-to-check-for-a-valid-base64-encoded-string) – zaggler Apr 29 '21 at 13:31
  • Remove the ascii leader at beginning of string. Usually a response will automatically convert if the correct headers are placed on the requuest, – jdweng Apr 29 '21 at 13:33

1 Answers1

1

As there can not be , in base64 string and also it is the separator, so the image part is right after the comma:

byte[] imgBytes  = Convert.FromBase64String(base64string.Split(',')[1]);
Ashkan Mobayen Khiabani
  • 30,915
  • 26
  • 90
  • 147