使用Imagecache模块,你可以为同一个图片创建几个不同大小的分支.你需要一个图像处理库比如GD2 或者ImageMagick,还需要你启用简洁URL.在drupal中,你可以使用imagecache处理任何图片上传,比如既可以与Image模块结合使用,也可以与Upload模块结合使用,但是最常用的是与CCK 和Imagefield相结合.
看一个Imagefield 和Imagecache结合使用的截图.
一个常见的例子就是,比如一个社区网站,里面有多个用户.用户可以上传一个个人头像,比如大小为240x240像素.这个图片用于用户个人资料页面,如果在用户列表页面,也使用这个图片,就显得有点大了.比如此时需要的大小为120x120像素。使用Imagecache你就可以自动的实现图片的切取,而不需要手工的调整每个图片的大小。
这里要讲的另一个例子就是,在teaser页面,展示一个小的缩略图,而在节点页面展示完整图片。在你继续阅读本文以前,建议你安装并启用Imagecache, CCK 和Imagefield模块。还有创建一个带有Imagefield字段的节点类型。如果你仅仅想要手工的编辑一个模板,从而调整一个图片大小的话,你可以直接阅读本文的后半部分。
首先,导航到drupal后台Administer -> Site Configuration -> Image cache。然后创建一个新的preset,比如"small",然后点击'Create new preset'按钮。

然后为其配置action:scale, resize, 或者crop。如果你想保持同样的比例的话,你可以使用Scale,你只需要输入一个值。Resize允许你将图片调整成任意的尺寸。Crop用来截取图片的,也就是仅仅展示部分图片。我将使用Drupal的logo作为例子:
Scale 50%:

Resize 60x20:

Crop50%x50%,两个坐标集(offsets)都设为top:

对于这个例子,scale就够用了,所以选择这一个,并点击'Update preset'按钮:

之后,我们需要为preset指定一个宽度和高度,你可以使用百分比,也可以使用绝对的尺寸。在第一个例子中,我们既可以使用50%,也可以使用120x120。对于第2个例子,由于原始图片的大小可能各不相同,所以这里最好使用绝对值了。
我们这里假定你需要设置的图片大小为48x48。你需要把48填到宽度和高度限制里面。设置好以后,记得点击'Update preset'按钮。

现在,我们设置好我们的preset了,接下来要做的就是编辑CCK字段,从而实现自动的调整图片大小。为了完成这一点,首先导航到Administer -> Content Management -> Content Types。点击相应节点类型的配置链接。

然后选择要展示的字段,并为Teaser设置相应的preset,然后点击提交,在这里,选择的为"small"。如果当浏览完整节点时,展示的图片也是经过调整好的,那么在这里你也需要编辑一下“Full”(Teaser后面的那个)。

现在,所有通过这个字段上传上去的图片,将被自动调整为48x48。下面是最终的结果。
Preview:
预览:

Full view:
完整节点:

如果你想手工的添加一个图片,并为它应用imagecache的preset的话,你需要在你的.tpl.php文件中田间以下代码片断:
<?php
print theme('imagecache', $preset, $image['filepath'], $alt, $title, $attributes);
?>
下面是我手工调用Imagecache的例子,这里$preset为'small',文件为Drupal 更目录下的'test.jpg'。alt属性用于图片显示不出来时的替代文本。而$title则是一个提示。
<?php
print theme('imagecache', 'small', 'test.jpg', 'just a test image', 'test image');
?>
($alt, $title, $attributes是可选的,在这个例子中,我们忽略了$attributes,这个参数很少用到)。
下面为将这几个方面结合起来的用法:
<?php if ($field_images[0]['view'] > '' ) : ?>
<?php foreach($field_images as $item) { ?>
<div class="images">
<?php print '<img src="/files/imagecache/medium/'.$item['filepath'].'" title="'.$item['title'].'" alt="'.$item['alt'].'">'; ?>
<?php print '<h3 class="img_title">'.$item['title'].'</h3>'; ?>
</div>
<?php } ?>
<?php endif; ?>
相关链接:http://drupal.org/node/163561 ,http://www.thinkindrupal.com