On Thu, May 1, 2014 at 7:02 AM, Gilles Dubuc gilles@wikimedia.org wrote:
Another point about picking the "one true bucket list": currently Media Viewer's buckets have been picked based on the most common screen resolutions, because Media Viewer tries to always use the entire width of the screen to display the image, so trying to achieve a 1-to-1 pixel correspondence makes sense, because it should give the sharpest result possible to the average user.
I'm not sure the current size list is particularly useful for MediaViewer, since we are fitting images into the screen, and the huge majority of images are constrained by height, so the width of the image on the screen will be completely unrelated to the width bucket size. Having common screen sizes as width buckets would be useful if we would be filling instead of fitting (something that might make sense for paged media).
------
I wonder if the mip-mapping approach could somehow be combined with tiles? If we want proper zooming for large images, we will have to split them up into tiles of various sizes, and serve only the tiles for the visible portion when the user zooms on a small section of the image. Splitting up an image is a fast operation, so maybe it could be done on the fly (with caching for a small subset based on traffic), in which case having a chain of scaled versions of the image would take care of the zooming use case as well.