Managing Self Hosted Images
From Habari Project
This is a short brief intended to become an extended analysis about managing self-hosting images. Feel free to edit, expand and discuss this article as you wish. (keep in mind that English is not the natural language of the original author).
Why Self-hosted content matters
You own your data, and have total control over it. External sites could eventually die or close.
Why images are different (than other content types)
Images can have multiple thumbnail sizes, in contrast to videos or documents who only need the original files.
How other projects handle images
Wordpress allow the creation of thumbnail, medium and large image sizes apart from the original. All of these resize the original image to adjust the defined dimensions, while respecting the scale. Thumbnail size has an option to crop the original image to the exact defined size.
Their user interface to handle it is very poor, while it's possible to create more sizes and force the crop to any defined size by adding some settings directly to the database.
When an image is deleted, only original size is deleted. When size settings are modified, new sizes apply only to images uploaded on future. There is a plugin for readjusting sizes of existent images.
Images are threated as a 'content' (just like post and pages), so they can be attached to a post or page. This allows easy implementation of galleries.
Drupal (afaik) has different image implementation. One of them is like wordpress but better (it does readjust sizes, delete every size when an image is deleted, allow creation for lots of sizes directly from the admin panel, etc), also being a 'content' (they call it 'node') just like post and pages. The other popular way is doing it using cck+views, which creates a custom table in the db for images.
What features should it have
Manage custom image sizes.
What features could it have
Embedding code that will support lightbox-like scripts. Embedding as gallery view.
What is the ideal technique
It would be great to hear some opinions and get some consensus that will encourage the creation of a plugin.
Please discus! and edit this article as much as you want.