我有一台照相机,向我发送带有一些标签的xml文件,其中包括一个表示base64格式图像的标签。图像为JPEG格式。
出于某种原因,表示图像的标签并不总是具有相同的名称(因为相机问题)
因此,要确定地检测包含图像的标签是正确的,我现在必须做一件事:
始终以/ 9j /?开头的base64格式的JPEG图像。
范例:
data:image/jpeg;base64,-->/9j/<--4RYQRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAgAAAAcgEyAAIAAAAUAAAAkodpAAQAAAABAAAAqAAAANQACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKQAyMDE2OjA4OjA1IDA5OjQ1OjA4AAAAAAOgAQADAAAAAf//AACgAgAEAAAAAQAAAPGgAwAEAAAAAQAAAFkAAAAAAAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAABIgEbAA....
Run Code Online (Sandbox Code Playgroud)
Jpeg文件格式(与其他格式一样)可以用幻数标识。对于JPEG,幻数是ff d8 ff偏移量0。如果将其编码为Base64,则始终会得到/9j/。
附加说明:由于Base64将3个数据字节的组转换为4个字节(ASCII),因此该方法适用于长度和偏移量为3个字节的任何幻数。如果幻数的长度不是 3的倍数,则最后一组4个Base-64编码字符将根据幻数紧随其后的数据而变化。
https://zh.wikipedia.org/wiki/JPEG
https://en.wikipedia.org/wiki/List_of_file_signatures