0

私の問題はかなり簡単です:

  1. MySQL データベースから画像を取得します (現在、blob 列にバイナリ データとして保存されています)。
  2. その画像を 90 度回転します (PHP の imagerotate を使用)
  3. その回転の変更を適用して、画像をデータベースに保存します。

これらの画像はWebサーバーに触れることが許可されていないため(したがって、なぜデータベースにあるのか)、画像を(ファイルシステムではなく)データストリームとして保存できる関数を見つけるのに苦労しています。どんなアドバイスでも大歓迎です。

ありがとう

4

2 に答える 2

0

回転する前に画像を別のタイプに変換していますか? tiff を使用しているとおっしゃいましたが、GDは tiff 画像のヘッダーしか読み取れません。最初に変換する必要があります。おそらくImageMagickで

ほとんどの場合、ファイルを一時ディレクトリに保存する必要があります。

  • ファイルのデータベースをクエリ
  • 一時ディレクトリに保存 (必要に応じて権限を設定することでファイルを保護できます)
  • 画像を回転
  • データベースに挿入
  • 一時ファイルを削除
于 2009-06-23T14:48:19.860 に答える
0

DB からデータを選択します。データを渡すimagecreatefromstring()

これで、imagerotate を呼び出すことができる画像リソースができました。

imagepng()DB に保存するには、 /imagejpeg()または使用している画像タイプの同等の関数を使用して出力する必要があります。これらの関数はブラウザまたはファイルに出力するため、出力バッファリングを使用して文字列をキャプチャし、DB に保存し直すことができます。

ob_start();
imagepng($resource);
$img_data = ob_get_contents();
ob_end_clean();

$img_dataDBに保存できるようになりました。

これは大まかな概要にすぎませんが、アイデアを説明できたことを願っています。

于 2009-06-23T15:01:00.753 に答える