Compound charts and line markers

Long awaited, compound charts and line markers are now supported!

You can now add lines to bar or line charts to highlight trends πŸ“ˆ:

🀩 Retina support

Retina is a marketing term coined by Apple that refers to devices and monitors that have a resolution and pixel density so high β€” roughly 300 or more pixels per inch – that a person is unable to discern the individual pixels at a normal viewing distance πŸ€“.

In order to generate beautiful charts for these Retina displays, Image-Charts supports a retina mode that can be activated through the icretina=1 parameter. If the chart URL contains icretina=1 parameter, the generated chart output will have its width and height size doubled.

We recommend the use of srcset HTML image attribute in order to send the high-resolution image chart version only to retina devices and standard resolution for others, thus reducing bandwidth usage.

Learn more about Retina

Retina support is only enabled in Enterprise+ subscriptions.

[Enterprise] More robust URL signatures

In order to be easier to handle, Image-Charts now checks the signature for both encoded and decoded query params.

Until now, our HMAC signature check was only based on the encoded URL. However, the resulting URL was sometimes decoded and encoded by various intermediate transportation layer (e.g. webmail proxies, automation pipeline and so on).

Now Image-Charts will also check the signature against the decoded URL version in order to be URL-encoding algorithm-proof.

You do not need to worry about generating a string of the whole query with the right URL-safe characters anymore, if the basic query string check does not work, Image-Charts will also try to decode every query parameter pairs and then check the resulting query string against your signature (ichm).

Generating a signature based on unencoded URL parameters is the recommended way as it's much more robust and abstract away the encoding the transportation uses (e.g. webmail proxies, web-browsers, enterprise proxies).

Learn more with our updated code examples

QR codes are now out of beta!

QR Codes finaly came out of beta! Free users will have the watermark and of course enterprise subscriptions won't.

Enterprise QRcode

Free QRcode

To learn more about QR codes, check out our documentation!

πŸ—„Yearly enterprise subscription (save 10%!)

A lot of our customers asked for easier invoice management through yearly enterprise subscription, the good news is: now you can!

Subscribe to Image-Charts yearly enterprise subscription and save 10% πŸ’°

πŸ’ͺ Improved stability

We've added visual regression testing to our continuous integration and delivery pipeline. Beyond our 98% unit and integration test-coverage we are now also relying on visual regression testing to be even more confident with our rendering.

Improved latency in Asia

We launched our 3rd cluster in Singapore πŸ‡ΈπŸ‡¬, Asia. Chart generation latency has been reduced by 3 πŸŽ‰.

πŸ’« Gif charts generation time is now 4 times faster!

We've rolled out a performance upgrade that reduced by 4 our average animated charts generation time.

Unlike Google Image Charts, Image-Charts supports animated charts and it's awesome, read more about it in our documentation.

Color fill between two lines support in a multi-line chart

Long awaited, we've added support for color fill between lines in line charts.

Without further ado let's look at an example. The line chart below has three series thus three lines and two color fills. First serie (0,1) has a blue color fill (#224499), second serie (1,2) has a red color fill (#FF0000):

chd=s:cefhjkqwrlgYcfgc,QSSVXXdkfZUMRTUQ,HJJMOOUbVPKDHKLH
chm=b,224499,0,1,0|b,FF0000,1,2,0

Read more about chm syntax.

PS: This feature was requested by two of our customer, Erisa D. from Spotify πŸ‘.

Legend now supports label orders

chdlp let you specify the chart's legend position as well as an optional label order. We now also support the later. Default label order (l) follows the order of chdl but you can overwrite it with r to display labels in the reverse order as given to chdl or specify your custom label orders with a list of zero-based label indexes 0,1,2.

chdl=a|b|c
chdlp=r|1,2,0

Read more about image chart legends.

PS: Thanks to Hunter M. for the report πŸ‘.