Image server

From Wikipedia, the free encyclopedia
Jump to: navigation, search

An image server is web server software which specializes in delivering (and often modifying) images. Not all image servers support HTTP or can be used on web sites, however.

While traditional web servers generally supply clients with static copies of image files, image servers usually perform additional image processing before serving the file. These functions may include frame/format selection, resizing, cropping, alpha blending, compositing source images, rotating, color adjustment, and filtering.

Concepts[edit]

Single-source imaging[edit]

The proliferation of mobile devices, screen resolutions, and pixel densities has forced web designers to create an ever-increasing number of image variations. Image servers capable of dynamic image resizing can produce the required sizes and variations on demand, eliminating repetitive work and the room for human error.

Declarative vs Imperative[edit]

Declarative APIs (such as RIAPI) allow the client to describe resulting characteristics of the image, such as desired size, aspect ratio, rotation, fit modes, etc. Command order is not important - ?width=200&height=100 will produce the same result as ?height=100&width=200. The server is free to coalesce compatible operations to improve performance.

Imperative APIs, (such as IIP) describe the operations to apply to the image in order, offering the user more control, but also more responsibility for calculations.

Uses[edit]

E-commerce[edit]

Zoomable photos are a cornerstone of e-commerce and may be the most popular use for image servers.

The simplest product viewers usually require at least 3 versions of an image: a 100x100 thumbnail, a 400x300 medium 'in-page, selected', and a 1200x900 'zoomed' version. Combined with the original file, this results in 4 separate images that must be stored, updated, and linked to.

In e-commerce, image servers are qualified by their abilities to scale to hundreds of thousands of images, to multiple CPUs or load-balanced server machines, and to the quantity and quality of their image processing functionalities, such as resizing, compositing, zoom and 3D viewers, and the addition of dynamic data to the images in the form of overlaid text or graphics.

Dynamic compositing is also extremely useful for merchants who permit product customization. Many vehicle manufacturers use dynamic compositing to let the visitor visualize their customizations.

Large image sets, mapping, and geospatial use[edit]

Geospatial or mapping has particular need for specialized "image servers". Aerial and satellite images are georeferenced and can be hundreds or thousands of gigabytes in size. Traditional mechanisms for serving this data have proved inadequate. The first specialized image server for geospatial image data was Image Web Server, released in 1999. Image Web Server, among other protocols, supports ECWP (ERDAS Compressed Wavelet Protocol) that "streams" large images to a user's application, rather than sending a regular image over HTTP. The well known standard for a distributed architecture of geospatial data is Web Map Service.

Responsive web design & mobile support[edit]

Responsive web design has driven the creation of dozens of new image servers which often integrate device or resolution detection.

To prevent resampling artifacts, it's important that images display at native resolution - one image pixel per device display pixel.

To accomplish this, a large number of variations must be created for each screen resolution. An image server can solve that by dynamically adjusting the size of the image according to the user's browser settings.

Backwards compatibility[edit]

Old versions of Internet Explorer have trouble displaying PNG and MNG images, but an image server could detect the user's browser version and send the image in a supported format such as GIF instead.

Image servers may enable early adopters to begin using WebP before all browsers implement support.

Standards and Specifications[edit]

See also[edit]

References[edit]