0

現在、phpthumb を使用してプロフィール写真のサムネイルを生成しています。http://phpthumb.gxdlabs.com/

これは私の現在の方法です:

<?php
$path_to_profile_pic = '../icons/default.png';
$profile_pic = file_get_contents('icons/default.png');
$small_profile_pic = PhpThumbFactory::create($profile_pic, array(), true);
$small_profile_pic->adaptiveResize(25, 25);
$small_profile_picAsString = $small_profile_pic->getImageAsString();
?>
<img src="data:image/png;base64,<?php echo base64_encode($small_profile_picAsString); ?>" width="25" height="25" />

ただし、base64 ではコード内に大量のテキストが生成されるため、これは非常に遅くなります。phpthumb を使用してサムネイルを生成する最良の方法は何ですか?

編集

より多くのスペースを消費するため、別の画像を保存せずにそれを行う方法はありますか?

4

1 に答える 1

2

オンデマンドで PHP スクリプトを使用して画像を提供するのではなく、アップロード/作成時に画像のサムネイル バージョンを常に生成することをお勧めします。コードの一部を使用して、生成されたファイルを php でファイルシステムにキャッシュできますが、それでも apache でそれらを提供するよりもはるかに遅くなります。

アップロード/作成時にサムネイルを作成できない場合は、縮小されたサムネイルをファイルシステムにキャッシュし、後続のすべてのリクエストに対して提供することで、現在の実装を最適化できます。

<?php
$path_to_thumb_pic = '../icons/default_thumb.png';
if (!file_exists($path_to_thumb_pic)) {
  $path_to_profile_pic = '../icons/default.png';
  $profile_pic = file_get_contents('icons/default.png');
  $small_profile_pic = PhpThumbFactory::create($profile_pic, array(), true);
  $small_profile_pic->adaptiveResize(25, 25);
  $small_profile_pic->save($path_to_thumb_pic);
}
?>

<img src="<?php echo $path_to_thumb_pic; ?>" width="25" height="25" />
于 2012-02-19T03:02:14.783 に答える