实际上,我正在使用一个简单的PHP代码段来遍历目录以获取图像并将其插入到html标记中。
现在我面临的问题是所有图像都是横向的。因此,肖像图像也被定位为风景图像。
这是我的片段:
<?php
$projectpath = 'Projects';
$projects = glob($projectpath . '/*' , GLOB_ONLYDIR);
foreach($projects as $key=>$value): ?>
<section class="project">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="project-images">
<?php
$handle = opendir(dirname(realpath(__FILE__)).'/'.$value);
while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
echo '<img class="img-responsive" alt="'. $file .'" src="'. $value .'/'. $file .'"/>';
}
}
?>
</div>
</div>
</div>
</div>
</section>
<?php endforeach; ?>
那么我在这里失踪了什么?有什么建议吗?
答案 0 :(得分:1)
我怀疑这些图像确实有不同的方向。更可能所有图像都采用横向布局(宽度大于高度),因此从技术角度来看,可视化是正确的。
我猜您通常会在PC上使用某些查看器查看图像,这些图像会根据存储在图像元数据中的某些方向标记自动旋转图像。但是这样的标志不会改变真实的技术方向(或更好的分辨率)。相反,这种标志只是图像可视化的提示。你的项目没有参考那个标志,这就是为什么你的图像出现要旋转,而实际上它们不是。
所以解决方案是两个选项之一:
在项目中使用之前旋转图像,这样它们的真实技术方向是正确的,只需要显示图像而无需任何额外的旋转。
使用js或php或其他任何方法来检测该方向标志并对其进行评估。根据结果,您可以设置一些css类,从而导致需要旋转以进行可视化的那些图像的基于CSS的旋转。
答案 1 :(得分:1)
这是一个简单的PHP示例,用于检查图像是纵向还是横向:
<?php
$imagePath = 'images/imagename.png';
$imageSize = getimagesize($imagePath); //returns an array
$imageWidth = $imageSize[0]; // array key 0 is width
$imageHeight = $imageSize[1]; // array key 1 is height
if($imageWidth < $imageHeight){
echo '<img class="ROTATE">'//add the rotate class
} elseif($imageWidth > $imageHeight){
echo '<img>'//do not add the rotate class
} else {
echo '<img>'//do not add the rotate class
?>
请注意,这只是一个示例,您必须调整脚本才能正常使用。