我有一个相机,它向我发送一个带有一些标签的xml文件,包括一个代表base64格式图像的标签。图像为JPEG格式。
由于某种原因,代表图像的标签并不总是具有相同的名称(对于相机的问题)
因此,为了确定地检测包含图像的标签是正确的,我现在必须做一件事:
base64格式的JPEG图像始终以/ 9j /?
开头示例:
data:image/jpeg;base64,-->/9j/<--4RYQRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAgAAAAcgEyAAIAAAAUAAAAkodpAAQAAAABAAAAqAAAANQACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKQAyMDE2OjA4OjA1IDA5OjQ1OjA4AAAAAAOgAQADAAAAAf//AACgAgAEAAAAAQAAAPGgAwAEAAAAAQAAAFkAAAAAAAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAABIgEbAA....
答案 0 :(得分:4)
Jpeg文件格式(与许多其他格式一样)可以通过幻数识别。对于JPEG,幻数为ff d8 ff
,偏移量为0
。如果您将其编码为Base64,您将始终获得/9j/
。
附加说明:由于Base64将3个数据字节组转换为4个字节(ASCII),因此这适用于长度和偏移量为3个字节的任何幻数。如果幻数的长度不是 3的倍数,则最后一组4个Base-64编码的字符将根据紧跟幻数后的数据而改变。