[英]How can I apply classes to images based on their aspect ratio with PHP?
我正在一个drupal6网站上工作,并且有一个页面显示缩略图(链接到完整的节点内容)。
当前允许图像具有基于父div的动态宽度,并且可以是垂直和水平的。
我遇到的问题是这些图像有一个最大宽度,这会压扁我的水平图像。 我的问题是:如何使用PHP获取具有唯一ID的图像元素,发现它是水平的还是垂直的,并根据图像的方面应用CSS类。
我需要将其作为预处理放入我的template.php中,或者放在我的page.tlp.php中。 我不能使用Jquery / javascript,因为我不能冒险使用FOUC。 我还按照说明将这个站点开发为多站点drupal安装,并且不允许在我自己的站点目录文件夹之外进行任何操作。
我看过getimagesize()和getElementsByTagName(),但是我不确定如何将它们组合在一起,因为我的PHP非常有限。 我希望这里有人可以指出正确的方向VS给我答案。
谢谢斯蒂芬妮
基本上使用getimagesize
提取图像的宽度和高度。 然后比较两者。 如果宽度大于高度,则image-horizontal
打印image-vertical
,否则image-vertical
打印image-vertical
。 这是将完成此工作的示例代码。 它使用list
来获取getimagesize
数组返回的前两个元素,即宽度和高度。 然后在echo
语句中,进行检查并打印适当的类:
list($width, $height) = getimagesize($your_full_path_to_image);
echo '<img src="'.$your_url_to_image.'" class="'.(($width > $height) ? 'image-horizontal' : 'image-vertical').'" />';
作为后续跟进,很遗憾地说,我从未按照我最初提出的问题进行这项工作。 我不确定这是不可能的,在我的特定情况下是不可能的,还是我只是无法弄清楚。
我最终使用直的CSS进行缩放,并通过添加背景伪造了一致的宽度
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.