0

画像ギャラリーを取得するスクリプトを書いています

私はすでに画像のフォルダー、いくつかの肖像画、いくつかの風景画を持っています。

このスクリプトは foreach ループで実行され、画像のギャラリーを生成します。

まったく同じサイズの画像を作成し、このコードで透かしを重ねることができます

$im = imagecreatefromjpeg($path);

$font = $font_path;
$size = 25;

$data = getimagesize($path);
$width = $data[0];
$height = $data[1];

// watermark positioning

if($width > $height){

  $width = $width / 8;

  $width = $width * 2;

  } else {

  $width = $width / 8;

  $width = $width * 1.2;

  }

$height = $height / 8;

$height = $height * 4.35;

// end watermark positioning


$temp_file = rand(100000000, 999999999).'.jpg';

# calculate maximum height of a character 
$bbox = imagettfbbox($size, 0, $font, 'ky');
$x = 8; $y = 8 - $bbox[5];
$x = $x + $width;
$y = $y + $height;


$text = 'WATERMARK TEXT';
shadow_text($im, $size, $x, $y, $font, $text);

imagejpeg($im, $temp_dir.'/'.$temp_file, 90);

このコードは完全に機能しますが、各画像は元のサイズで保存されます (通常は巨大です。gdlib によって生成された画像を小さくするだけでよいため、帯域幅が無駄になります)。

私の問題は、横向きのものと縦向きのものがあることです。

画像は正方形で、横向きの写真の場合は上下に黒い水平方向の境界線があり、縦向きの場合は左右に黒い垂直方向の境界線があります

各画像の div、div 内、画像 (200 x 200px)、およびその下のアルバム名が必要です。

画像を含むdivを作成し、1行にとどまることができます

style="display: inline;"

しかし、div にテキストを追加するとすぐに、画像ごとに 1 行にジャンプします。

joomlaテンプレートでカスタムphp/htmlを使用しているため、これはより困難になる可能性があるため、cssはすでに設計されています。

これについてどうすればよいかについての提案はありますか?

基本的には、検索時に eBay の「ギャラリー ビュー」のラインに沿って何かを表示することを望んでいます....

みんなありがとう !

4

1 に答える 1

0

imagecopyresampled を使用して画像を再スケーリングし、サムネイルを取得する必要があります。

画像のサイズを変更すると、横向き/縦向きを検出して上下のバンドまたは左右のバンドを追加したり、画像の中央をサムネイルとして保持したりできます。

元の画像をある場所に保存し、別の場所にサムネイルを作成して準備します。

于 2013-02-27T11:43:34.540 に答える