从字节数组构造JPEG图像

时间:2013-10-02 05:07:47

标签: php image arduino jpeg

我正在尝试使用PHP从字节字符串构造JPEG图像。我理解base64解码和编码部分,但是现在我的部分数据如下所示:

FF D8 FF FE 0 24 65 0 EF 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F0 0 40 1 B 0 32 12 B 51 4 51 4 0 0 FF DB 0 84 0 3 2 2 2 2 2 3 2 2 2 3 3 3 3 4 7 4 4 4 4 4 8 6 6 5 7 A 9 A A A 9 A 9 B C 10 D B C F C 9 A E 13 E F 10 11 12 12 12 B D 13 15 13 11 15 10 11 12 11 1 3 3 3 4 4 4 8 4 4 8 11 B 46 15 73 95 5C 12 7 5A E3 75 82 9A C3 67 D7 6A 90 8A 1B 78 A 88 5B 30 CE B8 F4 3F CC 36 54 E5 0 C5 AC AF D4 B0 2B 45 A3 D3 CA 29 8F 77 AD D6 C9 13 B3 A6 2F FC....

我知道这是一个来自arduino相机的jpg,使用POST请求发送到我的PHP脚本,FF D8标志着JPG的开始,但这就是我所知道的。

我的问题是这个字符串,如何将其转换为base64或者我可以使用PHP上传的正确的jpg图像?

编辑:我尝试使用file_get_contents(“temp.jpg”)解码一个实际的jpg文件,我得到了这个:

137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 0 200 0 0 0 200 8 6 0 0 0 173 88 174 158 0 0 32 0 73 68 65 84 120 94 237 157 7 92 20 199 23 199 127 32 216 197 130 40 216 187 216 131 93 99 47 81 35 118 141 189 197....

关闭但不完全相同的格式。

感谢。

1 个答案:

答案 0 :(得分:0)

你有几个选择,虽然我现在无法测试它们,看看有什么用。

  1. {≥3.0}功能在PHP≥5.4.0中可用,并将十六进制转换为二进制字符串。但请注意,您可能必须在转换之前从字符串中删除空格。

  2. 如果您运行较低的PHP版本,则可以使用hex2bin来获得相同的结果。再次,没有空格。

  3. 使用上述任一方法获得的二进制字符串可以使用pack('H*', $string)转换为base64。

  4. 最后,如果我的记忆正确地为我服务,base64_encode应该适用于base64数据。

  5. 不能保证其中任何一个都能正常工作,因为我现在无法检查,但没有其他答案,所以希望它有所帮助。祝你好运!