在生成水印PHP GDLib时调整图像大小

在生成水印PHP GDLib时调整图像大小,php,css,image-gallery,Php,Css,Image Gallery,我正在写一个脚本来获得一个图像库 我已经有一个文件夹的图像,一些肖像,一些风景 该脚本在foreach循环中运行,以生成图像库 我可以创建一个大小完全相同的图像,并用此代码覆盖水印 $im = imagecreatefromjpeg($path); $font = $font_path; $size = 25; $data = getimagesize($path); $width = $data[0]; $height = $data[1]; // watermark positioni

我正在写一个脚本来获得一个图像库

我已经有一个文件夹的图像,一些肖像,一些风景

该脚本在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内,一个图像(200x200px)和它下面的相册名称

我可以用图像制作div,与

style="display: inline;"
但是,只要我在div中添加任何文本,它们就会跳转到每个图像一行

这可能会变得更加困难,因为im在joomla模板中使用定制php/html,所以css已经设计好了

关于我将如何处理这件事,有什么建议吗

我基本上想让它在你搜索的时候看起来像ebays的“画廊视图”


谢谢大家

应使用imagecopyresampled重新缩放图像以获得缩略图

调整图像大小时,可以检测横向/纵向,并添加顶部+底部带或左侧+右侧带,或者仅将图像中心保留为缩略图

将原始图像保存在一个位置,并在另一个位置创建缩略图,以使其就绪