1

誰かが bmp バイト配列を実際の画像に変換する方法を知っているかどうか疑問に思っていますか?

画像抽出 :

424d 4284 0300 0000 0000 4200 0000 2800
0000 4001 0000 f000 0000 0100 1800 0300

これは bmp では機能しません (データは画像を表す入力文字列です)

$im = imagecreatefromstring($data);
  if ($im !== false) {
      header('Content-Type: image/png');
      imagepng($im);
      imagedestroy($im);
  }
  else {
      echo 'An error occurred.';
  }

ありがとう!

4

1 に答える 1

1

BMP は imagecreatefromstring() や PHP の GD ではサポートされていないようです [1]。

BMPではないWBMPに対応しているようです。[2]

さらに、 imagecreatefromstring() は、選択したピクセルの「抽出」だけでなく、ファイル全体を受け取ることを期待しています。生のピクセルデータを受け入れる場合(色形式、ビット数などの問題を忘れて)、GDが「生データ」を構成するために、少なくとも1行あたりのピクセル数を imagecreatefromstring() に指定する必要があります。 .

データが圧縮されていないピクセル データである BMP の性質上、本当に必要な場合は、空の画像を imagecreate() し、 for (y) { for (x) { .. . } } ループして、元の BMP ファイルから抽出したピクセル データを設定します。あなたが何をしようとしているのかわからなくても、もっと簡単な方法があるはずです。

[1] http://php.net/manual/en/function.imagecreatefromstring.php / "imagecreatefromstring() は、指定された画像から取得した画像を表す画像識別子を返します。PHP のビルドがサポートされている場合、これらのタイプは自動的に検出されます。それら: JPEG、PNG、GIF、WBMP、および GD2。」

[2] http://en.wikipedia.org/wiki/Wireless_Application_Protocol_Bitmap_Format

于 2013-11-12T17:13:34.560 に答える