1

イメージバイナリデータで満たされた列を持つデータベースがあります。いくつかの調査を行った後、データがどの画像形式であるかを検出する方法を考え出しました。私の画像列のレコードがgif形式であるとしましょう.php gd2でjpeg形式に保存したいと思います. どうすればそれができるか教えてください。

4

3 に答える 3

4

画像データを JPEG に変換するだけなら、必要なのはimagecreatefromstringimagejpeg. 基本的:

imagejpeg(imagecreatefromstring($gif_bindata), "temp.jpeg");
$jpeg_bindata = file_get_contents("temp.jpeg");

はファイルの種類を自動的に検出するため、非常に簡単ですimagecreatefromstring(最初の数バイトには、検出を可能にするのに十分なマジック バイトが含まれています)。そして明らかに、代わりに実際の一時ファイル名を使用したい場合があります。

于 2011-05-08T19:08:46.393 に答える
0

画像ごとに次の操作を行う必要があると思います。

  • BLOB 画像データをファイルに書き出す
  • gdで画像を開きますimagecreatefromgif()
  • イメージをディスクに書き戻しますimagejpeg()
  • ファイルから画像データを読み込み、データベースに書き戻す

一般的に、このように画像データをデータベースに保持することは悪い習慣です。より適切な解決策は、画像を Web サーバー ディスクに保存し、ファイルの場所をデータベース内の画像に保存することです。たとえば、これを行った場合、説明している問題を修正するのがはるかに簡単になります!

于 2011-05-08T19:10:14.663 に答える
0

必要なのは、データを読み取るための imagecreatefromstring() と、jpeg 形式で出力するための imagejpeg() だけです。

于 2011-05-08T19:14:46.673 に答える