Image 如何使用c从base64获取扩展#

Image 如何使用c从base64获取扩展#,image,base64,Image,Base64,我将base64字符串作为输入保存为图像。 但我的问题是,我不知道用户上传的图像格式。 因此,如果有人知道如何从base64字符串获取图像格式或扩展名,请帮助我。每个文件类型的开头都应该有一个“幻数”,可以用来标识该类型 一些示例(有关更多信息,请参见): 最好的方法是解码base64并检查字节数组的开头是否有一个字节模式 您可能会考虑将字节模式转换为Base64并检查Base64映像的起始字符,但这可能会给您带来麻烦,因为Base64编码始终使用3字节到4字符的编码,因此,幻数后面的字节可能会

我将base64字符串作为输入保存为图像。 但我的问题是,我不知道用户上传的图像格式。
因此,如果有人知道如何从base64字符串获取图像格式或扩展名,请帮助我。

每个文件类型的开头都应该有一个“幻数”,可以用来标识该类型

一些示例(有关更多信息,请参见):

最好的方法是解码base64并检查字节数组的开头是否有一个字节模式


您可能会考虑将字节模式转换为Base64并检查Base64映像的起始字符,但这可能会给您带来麻烦,因为Base64编码始终使用3字节到4字符的编码,因此,幻数后面的字节可能会影响编码图像文件中的Base-64表示。

感谢您的快速回复,但我的base64字符串类似于“ivborw0kgoaaaansuhueugaaikaaabscayaaabg3f……………”,它与任何组合都不匹配。这就是为什么我说解码它并使用字节。解码Base64字符串的开头将显示以下字节(十六进制)
89 50 4e 47 0d 0a 1a 0a 20 0d
,因此它显然是一个png文件。
filetype    magic number(hex)
jpg         FF D8 FF
gif         47 49 46 38
png         89 50 4E 47 0D 0A 1A 0A
bmp         42 4D
tiff(LE)    49 49 2A 00
tiff(BE)    4D 4D 00 2A