2

MySQLBLOBフィールドに画像を格納するデータベースがあります。URLのIDに基づいて画像を選択して表示するスクリプトを設定し、?resize = 800x600を追加すると、画像のサイズが変更されるようにしました(この場合は800x600)。

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

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

4

1 に答える 1

5

imagecreatefromstring()でうまくいくはずです。マニュアルの関数の例は、必要なものとほぼ同じだと思います。

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

$dataデータベースからのバイナリ データ文字列はどこにありますか。

于 2009-08-18T18:21:57.297 に答える