繁体   English   中英

如何使用PHP根据宽高比将类应用于图像?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM