我正在编写一个脚本来获取图片库
我已经有一个图片文件夹,一些肖像,一些风景。
并且此脚本在 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,与
保持在一条线上style="display: inline;"
但是,只要我在 div 中添加任何文本,它们就会跳到每张图片一行。
这可能会变得更加困难,因为我在 joomla 模板中使用自定义 php/html,所以 css 已经设计好了。
关于我将如何处理这件事有什么建议吗?
我基本上希望它在您搜索时看起来像 ebay 的“画廊 View ”......
谢谢大家!
最佳答案
您应该使用 imagecopyresampled 重新缩放图像以获得缩略图。
当您调整图像大小时,您可以检测横向/纵向并添加上+下带或左+右带,或者只保留图像中心作为缩略图。
将原始图像保存在一个地方并在另一个地方创建缩略图以备好。
关于php - 在生成水印 PHP GDLib 时调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15111057/