GDバイナリ文字列から画像を取得しています
-
18-09-2019 - |
質問
私は、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
は、データベースからあなたのバイナリデータ列である。
所属していません StackOverflow