Feature #11757

Add support for HDPI screens (retina)

Added by Slawomir CALUCH about 5 years ago. Updated almost 2 years ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:UI
Target version:-
Resolution:

Description

Adding support for the HDPI screens that are coming (and also here already) would be a good thing for redmine (at least in the interface).
Currently the app looks good generally, but some parts like the icones are fuzzy and become distractive on HDPI screens.

There is a choice concerning the method of implementation:
- Make all graphics hdpi and force their size of each image on the page.
- Use the JQuery plugin http://troymcilvena.com/post/998277515/jquery-retina
- Use a custom solution...

Screen Shot 2012-09-01 at 11.40.08 PM.png (31.7 KB) Slawomir CALUCH, 2012-09-01 23:42


Related issues

Related to Redmine - Feature #24927: Render high resolution Gravatars and Thumbnails Closed
Related to Redmine - Feature #24922: Support high resolution images in formatted content Closed
Related to Redmine - Patch #23980: Replace images with icon fonts New

History

#1 Updated by Slawomir CALUCH almost 5 years ago

I would like to help with the move to hdpi.

I can help with the implementation I will simply need the graphic assets in hdpi.

Can someone help me locate suitable assets?

Where do the original assets come from?

#2 Updated by Slawomir CALUCH almost 5 years ago

After reading some material about HDPI for web applications I came to the following conclusion: javascript might not be the most efficient way of loading hdpi.

The best way seems to be : send everything in x2 versions to everybody.

While using javascript would allow HDPI support without any ruby code modification this would lead to double download of images. This approach leads to a lot of changes on the client side during rendering. Maybe it's the best solution while there are relatively few HDPI devices out there, but in the end - I believe - support for higher resolution images should be handled with a cookie and on the server side.

So I started tinkering with the code. Currently when I call image_tag there is no way to get the real size of the image without reading each image. Is there a way to store these values in a cache after the first read?

I intend to also collect data about image versions (cancel.png, cancel-1.5x.png, cancel-2x.png ...). Should I store that in a cache to avoid nailing the disk on every request?

I might create a second function hdpi_image_tag to allow enabling/disabling the option and leave image_tag to its current purpose.

Would this be the right approach?

#3 Updated by Slawomir CALUCH almost 5 years ago

Should I go with the ruby changes or should I try the javascript approach first?

#4 Updated by Markus Pins almost 2 years ago

+1 Time has come, I guess. ;-)

#5 Updated by Go MAEDA 10 months ago

  • Related to Feature #24927: Render high resolution Gravatars and Thumbnails added

#6 Updated by Go MAEDA 10 months ago

  • Related to Feature #24922: Support high resolution images in formatted content added

#7 Updated by Go MAEDA 10 months ago

  • Related to Patch #23980: Replace images with icon fonts added

Also available in: Atom PDF