Venus 38 User's Manual

Info: HiDPI Images

High-density display devices, like Apple's retina displays, have twice the number of physical pixels (or more) within a given area, compared to regular devices. Images will appear sharper on these displays if they are larger, but displayed in half the CSS layout space. For example, an image that is 1200px wide is normally displayed in 1200 CSS pixels on a regular monitor, and is using 1200 physical pixels. But for a high-density device, it is better to provide an image that is 2400px wide, but then display it in 1200 CSS pixels on the monitor. When you do this, the display makes full use of the 2400 pixels that are available in the image, by using 2400 of its physical pixels.

jAlbum includes the option, under Settings » Images » General, of creating high-density thumbnails and/or slide images, referred to as HiDPI images. This doesn't actually produce images with a higher pixel density - there is no such thing. It simply produces images with double the image bounds - the skin, however, then displays these images in half the space.

Doing this may produce a better-looking image on a high-density monitor. The penalty is that the image files are typically several times the file size. They consume more bandwidth, taking longer to upload and longer to download when someone visits the site. The user with a regular monitor is forced to download much larger files, but gets no benefit from them.

The skin defaults to using HiDPI thumbnails, which produces better-looking thumbnails on high-density displays. Even on a regular monitor, these thumbnails look better when hovered, since the images are expanded when the visitor mouses over them. For thumbnails, this does produce larger files, but they're still relatively small, so the bandwidth penalty is minor.

Using HiDPI images is a different matter entirely. The bandwidth penalty is substantial, but the perceived improvement in display quality is not as dramatic as it is with small images like thumbnails. As the bandwidth available to your site visitors continues to grow, the greater use of bandwidth will become irrelevant. In addition, the skin does a lot of image preloading, so as a visitor moves through the slides, there will often be no delay, even with HiDPI images. Improving technology will eventually make this a non-issue, and you will be able to use HiDPI images in all your albums.

It should be noted that if the images you are adding to your project aren't fairly large to begin with, perhaps 3000x2000 pixels, there is no benefit to be gained by using HiDPI images, and there is no reason to choose that option. jAlbum can't interpolate, and produce more image information than what is present in the original images.

Recent jAlbum versions include the ability to produce albums with two sets of images, but the image display script used in this skin is not constructed to make use of them. In addition, a "2X variant" image in jAlbum is not handled the same way as a HiDPI image - the benefit of the greater density is lost.

If you want to provide HiDPI images to visitors with high-density monitors, but not penalize visitors with regular monitors, the only solution is to produce two copies of the album. Create your project and call it, for example, mydogLR (for "low resolution"), using image bounds that produce good-looking slides on a regular monitor (the skin defaults, for example). Accept the default settings - HiDPI thumbnails, but not HiDPI images. Upload your album to https://mysite.com/mydogLR/.

Now duplicate the entire project - click the down-arrow to the right of the project name in the jAlbum project panel, choose Duplicate Project, and call it mydogHR (for "high resolution"). In this duplicate project, choose HiDPI images, make the album, and upload it to https://mysite.com/mydogHR/.

Now you need to provide a steering script on your site, so that visitors will be directed to the appropriate album. Create a directory on your site called https://mysite.com/mydog/ and upload an index.html to it that contains the following:

<!DOCTYPE html>
<meta charset='UTF-8'>
<title>Redirect</title>
<script>
if(screen.width >= 768 && screen.height >= 768 && window.devicePixelRatio >= 2) {
	window.location = "http://mysite.com/mydogHR/";
} else {
	window.location = "http://mysite.com/mydogLR/";
}
</script>

All visitors can now be provided with a single link to your album: https://mysite.com/mydog/. The steering script will automatically direct visitors to the high resolution album if they are on anything the size of an iPad or larger, and have a high-density display. These are the visitors who can benefit from the larger slide images. Other visitors will be directed to the low resolution album.