Drupal Articles » Roundup of image modules for Drupal
The following is extracted from my post on Drupal.org. I've brought it here to begin working on in to make it a more up-to-date Docs page for the current ways to use images in Drupal.
Making sense of the image options in Drupal is complicated, and unfortunately an early issue that Drupal newbies come up against. See my Documentation case study on "How do I add images to my Drupal site?" My goal with this article is to remove as much of this barrier as possible and make selecting an appropriate image handling method (or combination of methods) as easy as possible.
This may fit best into the Beyond the Basics > Comparisons of contributed modules section of the Handbook. However, I might recommend that an additional short page be placed in one or more additional locations as well to forward to it, such as within HowTos and/or Tutorials, since that is most likely to be understood by a complete beginner with Drupal ("contributed modules" is a topic a beginner may not yet understand as they set out looking for how to add images to their site).
......
There are a variety methods for working with images in Drupal, and each way has various benefits and drawbacks. Which solution you choose will often depend on the needs of the website you are creating, as well as your preferences regarding user interface, functionality, and whether you prefer images to be treated as nodes or just ordinary files. Another major factor is whether the image handling method is able to include images anywhere within the content of your page, or only in preset locations (some applications of images require images to appear in a constant, known location of every page, while in other cases images need to be able to appear at any desired location within the text/content of the page).
Important: before working with images in Drupal, ensure that your Input Format has been configured to allow image tags, or else images will not show up when you save your content. For more info please see Understanding Input Formats.
The modules listed are those which I'm familiar with, though there could be even more, since new Drupal modules come out all the time. The descriptions of these modules and the lists of benefits and drawbacks are by no means the "final word" nor do they necessarily include every possible feature/benefit/drawback. Drupal modules are constantly changing, so please visit the project pages for each module to assess their current capabilities.

Very useful. Wonder why I did not come across this why searching on both yahoo! and google.
Thx.
Both the article and the site itself are pretty new, so not likely indexed well in Google. As soon as it's done I'll be moving this article (in fact just about every article I'm writing here) to drupal.org itself so everyone will be able to find it easily. It's just substantially easier to edit/work on here with my own site, as well as allows me to get feedback from people while I write.
You may be interested in my attempt at defining a "Future-proof methodology for posting images to Drupal" using Image module + imagefield at the same time. Feedback welcome!
http://drupal.org/node/309564
For what it's worth, here are my raw notes from research on this topic so far (if nothing else it'll increase your traffic from people Googling for different module combinations
-------
Notes on Images in Drupal
3 major categories:
A Images as nodes
Image module - creates a special 'image' node type (not a CCK node)
+ Image Attach/Image Assist + Image Gallery
B Images as fields in nodes (storing links in filesystem)
Imagefield - uses CCK to provide an image upload field
+Image Cache
C1 Allows links to files directly uploaded to the server, no nodes created, images aren't stored in any structured way in the database; they're just traditional files in the filesystem, referenced via links in line with the node's content within (e.g.) the body field.
IMCE
Image Picker
C2 Also uploaded as files in the filesystem, but "attached" to a node.
Core Upload module + Inline module
(Upload Image combines this with also creating the Image nodes)
Asset module
General comparisons:
A takes advantage of all feature available for nodes, like comment support, taxonomy support, etc.
Option B seems to be the future direction, most developers are depreciating Option A.
Reasons given:
B is more versatile
A only allows one image per node
A can't have different customized derivative sizes based on content type or specific nodes, just one custom size for everything
(Note this possible going away with possiblity of having Image module use Imagecache (see below. Also see Inline module)
A can create a lot of nodes into your system, table overhead if you have a lot of images
However:
B is more complex and difficult to configure and theme
B doesn't do inline placement within the content
Only A can batch import into a gallery from a filesystem directory
It should be possible to use Image module with its node type AND Imagefield with CCK nodes, but you cannot add an Imagefield to the Image nodes; from Imagefield: "If you add an imagefield CCK field to the image node type provided by image module, image module will delete all the imagefield images on every node update." Bottom line - have to keep the content types separate.
Views can work with either A or B, (including in blocks? A doesn't need Views for that) but since B doesn't do inline placement, A gives the most flexibility.
Option C
Most serious developers don't even mention Option C, I believe because it only allows Views to display images in full-node mode, not list/teasers/table modes. However these apparently both give good formatting control to the content-contributing user and are relatively user-friendly.
Disadvantages:
changing the layout may require re-editing all the nodes
site designer has less control over display, because:
image not available to Views for teaser/list/table displays
from this POV, better to let Views+theming handle the layout
the only markup in the Node text is inline formatting (e.g. bold/italic, links)
need to allow Full HTML filter
Advantages:
low-overhead way to just show images in a node display
user has more control over placement and formatting
relatively user-friendly, depending on the front end interface:
rather than just FTPing files and coding the src link manually, these modules help with
uploading and (maybe) image manipulation
automate the HTML code generation
Details
Group A
Image module creates image nodes, lets you take advantage of taxonomy and other available *node management* options, galleries etc.
Image Attach allows you to attach an image node to any other node (only one image per node). Works with the native Drupal dialog and TinyMCE, but not FCKedit.
Image Assist is a more sophisticated replacement of Image Attach which allows an image (or any number of images) to be displayed inline with the body text of a node. Can upload image files at node creation time or select images previously uploaded with Image module, filtered by owner or taxonomy. Control over size, alignment, link behavior, title, and description; also TinyMCE and (more recently) FCKedit integration. (See also Inline module.)
Upload Image module takes all files that are uploaded with a node (attached to the node via the core Upload module), and if they are images feeds them to the Image module, turning them into image nodes. It keeps track of the images uploaded with the node, and by default displays them as a thumbnail gallery at the bottom of the post linking to the originals. (No Views integration yet to display otherwise - use Inline module) Not as flexible as Image assist but that takes a little learning, and requires caring enough about where the images go to bother uploading each one individually, giving it a title correctly, selecting size and placing it. However after upload of course the author can then edit the image nodes and add more info about the picture. The module depends on both upload.module and image.module.
Upload previews module lets you look at the images as part of the Upload dialog.
Group B
ImageAPI module
Group C
IMCE - general file manager, not just images, user-friendly - scale/resize to pre-defined presets (not as flexible as Imagecache)
Integrates with TinyMCE and FCKeditor - now even works with plain textareas!
Asset module - asset management tool and easy insertion of images inline into content (instead of Inline). Also handles other file types. Decent user interface with image preview, lets you get to your images, works with imagecache's presets, and a fairly simple wizard for people to use as well as TinyMCE integration.
Core Upload module - generic file attachments, also in filesystem, not specific to images. Delete the node, file deleted from filesystem.
Inline module works with Upload module (or Upload Image). Lets you easily insert links to files **uploaded with/attached to the current node** (and only those file attachments, not imagefield, not Image module nodes), image files just display. Doesn't actually resize itself but can set a maximum size parameter if the original is bigger, link shows instead. Or can also use Imagecache presets! Special tag format, either use the # of the file within the set (don't change them!) or a filename. Need dev version to work with ImageCache2 and Lightbox?
Note attached images are usually NOT visible for non-authenticated users
Image picker module - upload, generate thumbnails (only 2 presets?) control alignment, Lightbox2
Supports WYSIWYG web-based editors:
TinyMCE has a bigger installed base, wider module integration and plug-ins
FCKedit will apparently become part of Drupal 7 and is apparently easier to set up, better CSS support (as with Image Assist).
WYMEditor, Whizzywig, BUEditor
Desktop "offline" posting tools:
ScribeFire good reviews - set input format to enable p and br
Qumana also good but do any of these support "promote" or "sticky"?
w.bloggar has file upload feature, says supported by Drupal
GoogleDocs
Windows LiveWriter (http://drupal.org/node/287615)
BlogDesk
BlogJet
Imagecache - utility module for display control - custom sizes (scale, resize, crop - now also watermarks, borders?) for thumbnails, previews and full-sizes. Actually works by hacking Drupal's menu functionality (a la 404/htaccess to the /files/imagecache to generate them on the fly - Cool Dopry!
Currently works mostly with Imagefield (Option B), although it's quite possible to use it with attached files (Upload or Upload Image modules - Option C), and (in theory) to handle Image module's (Option A) derivative generation process (but statically only); see issue queue for Imagecache for a forked module.
Otherwise (with Imagefield) generates the altered images only when needed; if the cache is wiped it rebuilds the derivative images and can automatically batch-resize if your needs change.
Views integration - value in the Options field - for instance, in ImageCache, I created two sizes: Thumbnail and Display. So in my Option field, I have the options of "Display as link" and "Thumbnail as link".
Image exact sizes module (easier for newbies) never got out of dev, recommends Imagecache as being more flexible, gives replacement recipe to use theme functions to grab the right version of the derived images.
TinyMCE - use WYSIWYG module
Thickbox - displaying DHTML/AJAX image viewers for galleries/slideshows.
Views - customized queries (eg tags,date, author) displaying lists (or tables or teasers or full node pages) of nodes, including gallery pages, preview blocks
Views Bonus Pack - This is a handy collection of layouts to customize the views output
Content Construction Kit - this module allow you to add customized fields to your content types
Galleries:
CCK+imagefield better for galleries, but complex (Gallery2 much easier)
David,
I hope you don't mind, but I've hijacked your placeholder node in the Handbook, as I've gotten to the stage where I'm ready to actually start composing it in an organized fashion.
Feedback on the initial couple of pages and more importantly ideas about structuring the section would be most welcome, and I hope as we move along you'll actively (ruthlessly) edit and contribute!
http://drupal.org/node/325323
Image handling in drupal is very solid and this one of the reasonse people love playing with Drupal. Thanks for the link on Understanding Input Formats.