質問

私は、MySQLのBLOBフィールドの画像を格納するデータベースを持っています。 Iセットアップを選択し、URL内のIDに基づいて画像を表示し、あなたが追加した場合?= 800×600のサイズを変更し、それは(800×600に、このケースでは)画像のサイズを変更しますので、私もそれを作ったスクリプト。

私が使用するホストは、ImageMagickのがインストールされていないと私はそれを自分でやらせるので、私は画像のサイズを変更するためにPHPのGDライブラリを使用する必要はありません。
しかし、私は、ImagickのreadImageBlob()のような機能を見つけることがまだきたので、私はそれをブラウザに送信し、私は最初に、一時ファイルを作成し、それを編集し、それから、バイナリ文字列を得ることなく、データベースから取得するバイナリ文字列を編集することはできません、その後、(それが生産に入ったときに、これは数千本のヒットを取得します、特に以来、メーリングリストのあまりに多くのステップである)、それを削除します。

だから私の質問は、一時ファイルのソリューションを経由せずにPHPのGDとreadImageBlobを複製する方法はありますか?

役に立ちましたか?

解決

imagecreatefromstring()のは、トリックを行う必要があります。私はマニュアルの関数の例は、あなたが必要とするほぼ正確に何だと思います:

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

$dataは、データベースからあなたのバイナリデータ列である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top