As a web developer, it is very common to have the need for an image server. Usually the requirement is pretty straight forward: We need to dynamically re size an image. This is very common when you display thumbnails and regular size pictures in a site.
Personally, I also like to have a single source image; that way, I don’t have to create all the sizes I need before hand. But most importantly, if I need a new size in the future I don’t have to create that new size for all the images I already have.
When working on enterprise environment, people tend consider only solutions by big companies which tend to be pretty expensive. People that can’t afford these solutions try to create the component them selves, which can be very time consuming (if done correctly).
I’ve been u sing Spry Photo for a while (http://www.spryphoto.com/). You can see it in action in http://www.clickclassified.ca and http://www.storybank.com.
With Spry Photo, I get all that I need for image resizing and more… All of it for a very reasonable price. In addition to resizing, it provides cropping, image conversion, variant quality (affects image sizes) and text overlay (a great way to protect your content).
The integration with ASP.Net which is very simple and straight forward… I noticed they now have a PHP version which I haven’t tried.
TIP
In my integration of this product I added an extra step, I generated a CustomControl that inherits from the Image control. This control receives a source url but also an Alias. This alias is translated inside the control to the properties requried by the image server to generate my image.
In my case, I keet the Aliases in the database, but this is just one or many possible implementation. In any case, having the combination of the custom control and alias allows me to have something like this:
<cc:PortalImage id=”image” runat=”server” src=”/UserPicture.JPG” Alias=”Thumb” />
and translate it into:
<img src=”http://www.storybank.com/ImageServer/SpryIS.aspx?img=../UserPicture.JPG&cell=40,40,0xffffff&qlt=90&cvt=jpg”>
Doing this will save you time, and if done correctly you can re-use it in upcoming projects.
I hope you find this helpfull.
-Ricardo