イメージバイナリデータで満たされた列を持つデータベースがあります。いくつかの調査を行った後、データがどの画像形式であるかを検出する方法を考え出しました。私の画像列のレコードがgif形式であるとしましょう.php gd2でjpeg形式に保存したいと思います. どうすればそれができるか教えてください。
1430 次
3 に答える
4
画像データを JPEG に変換するだけなら、必要なのはimagecreatefromstring
とimagejpeg
. 基本的:
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 に答える