2011-09-22 29 views
2

我正在研究drupal6网站,并且有一个显示缩略图图像的页面(链接到完整节点内容)。如何基于与PHP的宽高比将类应用于图像?

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

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

我需要把它放在我的template.php中作为预处理,或者放在我的page.tlp.php中。 我无法使用Jquery/javascript,因为我无法冒险使用FOUC。我也是按照说明将这个站点作为多站点drupal安装开发的,我不允许在我自己的站点目录文件夹之外有任何东西。

我看了getimagesize()和getElementsByTagName(),但我不知道如何把它放在一起,因为我的PHP是相当有限的。我希望这里的某个人能指出我正确的方向,并给出我的答案。

由于 斯蒂芬妮

回答

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').'" />'; 
+0

谢谢大家的帮助,我只有一个问题,伪造了洽宽度 - 我把这个在文档的头部?或作为IMG标签的添加/替换? – StephanieF

+0

你应该把它作为IMG标签的替代品。 –

+0

我已经将您的代码添加到我的测试中,我不确定在哪里声明$ your_full_path_to_image和$ your_url_to_image这两个变量 - 我试图添加与测试代码位于同一文件夹中的图像,并且只能获取返回“水平”。我改变了代码看起来像这样'code'<?php list($ width,$ height)= getimagesize(“horizo​​ntal.jpg”); echo“ $ height)?'image-horizo​​ntal':'image-vertical'。'\”/>“; ?>'code'返回 StephanieF

0

作为后续行动,我很抱歉地说,我从来没有在这样这个工作我已经在我原来的布局题。 我不确定这是不可能的,在我的具体情况下是不可能的,或者如果我无法弄清楚。

我结束了使用直CSS做缩放,并通过添加背景