我必须处理用户上传的图片,并希望从中创建缩略图,以便创建图片库。
问题在于用户上传的图片尺寸不同,因此限制缩略图的尺寸会使不成比例的图像成为缩略图。
你知道如何捕捉上传图像的中心部分(或截断两侧)吗?或者你知道任何可以处理它的脚本吗?
非常感谢
此致
编辑:
echo '<div class="pic" style="background-image: url(upload/photos/'.$photo1.')"></div>';
和
.pic {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
答案 0 :(得分:0)
除了裁剪图像外,您还可以使用大小合适的普通尺寸调整缩略图,以完全适合您想要的框,并将其设置为背景图像。
因此,如果您的方框为100x100像素,则缩略图图像需要调整为100px宽度(垂直图像)和100px高度(水平图像)。
顺便说一句,对于现代浏览器,您可以使用:
background-size: cover;
使图像完全覆盖盒子,保持其纵横比。
编辑:因此,在您的PHP中,您可以执行以下操作:
echo '<div style="background-image: url(' . $path_to_image . ');"></div>';
并在css中:
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
答案 1 :(得分:0)
您可以在我的github存储库中找到我的书面脚本。在这里,测试它,让我知道。
网址:https://github.com/armpogart/Examples/blob/master/crop_resize/crop.php
答案 2 :(得分:0)
您正在寻找getimagesize()
。
它需要一个文件名并重新包含一个包含图像信息的数组。
然后你可以用以下内容找到图像的中心:
$image_info = getimagesize( $filename );
$width = $image_info[0];
$height = $image_info[1];
$center = array($width/2,$height/2);
// continue proccessing your image //
您还可以检查尺寸并决定是否要裁剪图像。使用print_r($image_info)
;会帮助你。