how to use images in your drupal content
if you simply want to add image content to your drupal nodes etc, the array of options can be baffling. here's a quick overview of some options you might want to consider.
drupal's core upload module
drupal's core upload module allows you to attach any content to your nodes, including images. it's very limited since it doesn't allow for image scaling, image management or image presentation. it's not a good choice for images.
the image module
the image module allows you to upload images as full drupal nodes. you can configure this module to provide up to 6 different server-generated image sizes for each of your nodes. image nodes can be created by users using the usual "create content" path or by uploading an image during the creation of the node to which an image is attached.
overall this is a very nice module that might meet all your image needs
the image assist module
it's hard to select images to add to your nodes once you have a lot of image nodes in your system. the image assist module is a big help. this module allows end-users to easily create images and add styled image content to their nodes, using a pop-up dialog. images are optionally filtered by ownership or taxonomy.
the image cache module
having to define a finite set of size transformations using the image module can be limiting. the image cache module gets around this restriction by allowing you to define an arbitrarily large number of image transformations including scaling, resizing and cropping. e.g. you could simply define a transformation "minithumb" that creates a tiny thumbnail. if your image was available at:
the transformed image is cached, so repeated hits to this url don't require repeated server side transformations. pretty cool. you see more imagecache examples in my fantastic four article.
the cck imagefield module
so when should you use cck and imagefiled?
cck and imagefield is a good choice for node types where:
- you have a finite, well understood set of images that go with the node, e.g., if the node was called "shoe" you might have cck image properties "shoe front view" and "shoe top view"
- you know how to style each instance of the node ahead of time e.g. your shoe product page should have a 100px "front view" at the top of the page, and a 500px wide "top view", at the bottom.
conversely, for a blog entry, you'd probably be better to use the image and image assist modules to add arbitrary images to each node instance, and lay them out as you see fit.
for example, this picture of my daughter, ava, and skimble the cat, which i've added to this blog, in an arbitrary position.