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

时间:2011-09-22 20:03:48

标签: php css drupal-6

我正在使用drupal6网站,我有一个显示缩略图图片的页面(链接到完整节点内容)。

目前允许图像具有基于父div的动态宽度,并且是垂直和水平的。

我遇到的问题是这些图像有最大宽度应用,这会压碎我的水平图像。 我的问题是:如何使用PHP获取具有唯一ID的图像元素,发现它是水平还是垂直,并根据图像的方面应用CSS类。

我需要把它放在我的template.php中作为预处理,或者在我的page.tlp.php中。 我不能使用Jquery / javascript,因为我无法冒险FOUC。我还根据说明将此站点开发为多站点drupal安装,并且我不允许在我自己的站点目录文件夹之外有任何内容。

我看过getimagesize()和getElementsByTagName(),但我不知道怎么把它放在一起,因为我的PHP非常有限。我希望有人能指出我正确的方向VS给我答案。

由于 斯蒂芬妮

2 个答案:

答案 0 :(得分:1)

基本上使用getimagesize来提取图像的宽度和高度。然后比较两者。如果宽度大于高度,请打印image-horizontal,否则打印image-vertical。这是一个可以完成工作的示例代码。它使用list来获取getimagesize数组返回的前两个元素,即widht和height。然后在echo语句中,我们进行检查并打印相应的类:

list($width, $height) = getimagesize($your_full_path_to_image);
echo '<img src="'.$your_url_to_image.'" class="'.(($width > $height) ? 'image-horizontal' : 'image-vertical').'" />';

答案 1 :(得分:0)

作为一个后续行动,我很遗憾地说我从来没有像我原来的问题那样按照我的方式工作。 我不确定这是不可能的,在我的具体情况下是不可能的,或者我是否根本无法弄明白。

我最终使用直接css进行缩放,并通过添加背景伪造了一致的宽度