首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成水印PHP GDLib时调整图像大小

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

Stack Overflow用户
提问于 2013-02-27 19:34:09
回答 1查看 358关注 0票数 0

我正在编写一个脚本来获取图片库

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

这个脚本在foreach循环中运行,以生成一个图片库。

我可以创建一个完全相同大小的图像,并用以下代码覆盖我的水印

代码语言:javascript
复制
$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,只需要一行

代码语言:javascript
复制
style="display: inline;"

但是,只要我在div中添加任何文本,它们就会跳到每个图像一行。

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

关于我该怎么做,有什么建议吗?

我基本上希望它看起来像易趣‘画廊视图’的线,当你搜索....

谢谢你们!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-27 19:43:35

您应该使用imagecopyresampled来重新缩放图像,以获得缩略图。

当您调整图像大小时,您可以检测横向/纵向并添加top+bottom带或left+right带,或者仅将图像中心保留为缩略图。

将原始图像保存在一个地方,并在另一个地方创建缩略图,以使其准备就绪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15111057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档