如何避免照片拉伸? PHP从文件夹中随机选择2张照片,并使用echo
显示它们。但是现在,所有的肖像照片都被拉长了。
<?php if(!empty($images)) {
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<img class=\"flickrphoto\" src='".$src."' align='absmiddle'>";
unset($images[$rand_key]);
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<img class=\"flickrphoto\" src='".$src."' align='absmiddle'>";
} else {
echo 'Error';
} ?>
CSS:
.flickrphoto {
max-width: 100px;
max-height: 100px;
overflow: hidden;
}
**编辑**
目前的代码:
// protrait calculations;
$size = getimagesize($images_folder_path);
if($size[0] < $size[1]) {
$orientation = 'portrait';
} else {
$orientation = 'landscape';
}
答案 0 :(得分:5)
我只是检查方向是否为纵向并添加css类;
<?php if(!empty($images)) {
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
// protrait calculations;
$fullpath = // statement to fetch the path on the server
$size = getimagesize($fullpath);
if($size[0] < $size[1]) {
$orientation = 'portrait';
} else {
$orientation = 'landscape';
}
echo "<img class=\"flickrphoto ". $orientation ."\" src='".$src."' align='absmiddle'>";
unset($images[$rand_key]);
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<img class=\"flickrphoto\" src='".$src."' align='absmiddle'>";
} else {
echo 'Error';
} ?>
在你的css中是这样的:
img.flickrphoto {
max-width: 100px;
max-height: 100px;
overflow: hidden;
}
img.flickrphoto.portrait {
max-width: 50px;
}
答案 1 :(得分:2)
这是一篇关于如何使用CSS和HTML维护宽高比的好文章:
http://haslayout.net/css-tuts/CSS-Proportional-Image-Scale
此外,还有一个问题,就如何做到这一点提出了一些想法:
HTML - display an image as large as possible while preserving aspect ratio
基本上,您需要缩放高度或宽度,但不能同时缩放。
答案 2 :(得分:0)
将其显示为<div>
的背景,而不是<img>
echo "<div class=\"flickrphoto\" style='background: url(".$src.");'></div>";
答案 3 :(得分:0)
使用php函数imagesx和imagesy,并将返回值作为图像标记的width和height属性发出。