0

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 の開始をマークしていることを知っていますが、それが私が知っているすべてです。

私の質問には、この文字列が与えられています.PHPを使用してアップロードできるbase64または適切な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....

近いですが、まったく同じ形式ではありません。

ありがとう。

4

1 に答える 1

0

いくつかのオプションがありますが、現時点では何が機能するかをテストすることはできません.

  1. このhex2bin関数は PHP ≥ 5.4.0 で使用でき、16 進数をバイナリ文字列に変換します。ただし、変換する前に、おそらく文字列からスペースを削除する必要があることに注意してください。

  2. より低いバージョンの PHP を実行している場合は、pack('H*', $string)代わりに を使用して同じ結果を得ることができます。繰り返しますが、スペースはありません。

  3. 上記のいずれかの方法で取得したバイナリ文字列は、 を使用して base64 に変換できますbase64_encode

  4. 最後に、imagecreatefromstring私の記憶が正しく機能すれば、base64 データで動作するはずです。

現時点では確認できないため、これらのいずれかが機能するという保証はありませんが、他に回答がないため、うまくいけば役に立ちます。幸運を!

于 2013-10-02T05:39:20.193 に答える