0

スナップショット ツールから画像データの URL を生成し、結果の文字列を PHP 経由で MySQL データベースに挿入するページがあります。後で、それらの画像を取得して使用するページがあります。これは問題ありませんが、後処理のために結果の html をサーバーに保存する必要があり、画像データの URL の長さが頭痛の種であり、html ファイルが 8 から 10 MB を超えてプロセス全体が遅くなります。画像は次のようになります。

<img src="data:image/png:base64,iVBORw0K43+gAA4u...">

非常に長い文字列があるため、結果の html が非常に大きくなります。私のサーバーでこれを png としてホストする方法はありますか? このようなもの:

<img src="http://www.mysite.com/image1.png">
4

2 に答える 2

2

base64 を元の画像に変換するのはどうでしょうか。画像を実際のファイルとしてサーバーに保存することになります。

base64 データを画像に変換する PHP

    function toImage($base_code){
    $img_file = imagecreatefromstring(base64_decode($base_code));
    imagejpeg($img_file, 'new.jpg');
}

関数の呼び出し

echo toImage($encoded_image);

イメージタグなしでbase64でエンコードされた文字列のみを渡すようにしてください

于 2012-10-01T17:46:26.703 に答える
0

ファイルを別の場所に保存することもできますが、DB に画像が存在するという要件があると思います。ファイルを別の場所に保存すると、ディスク要件が 2 倍になるだけです。

いずれにせよ、これに対する一般的な修正は、そのイメージ文字列をディスクに保存し、DB でパスを追跡することです。次に、HTML を生成するときに、DB 内のバイナリ データではなく、DB 内のパスを使用します。

于 2012-10-01T17:36:42.380 に答える