#18188

html5 - Resize image with javascript canvas (smoothly) - Stack Overflow

Mh…

Donc quand on redimensionne une image en JS avec canvas, en particulier pour la réduction d’une image, la qualité n’est pas géniale : ça utilise une interpolation linéaire.

Pour avoir quelque chose de plus « doux », les logiciels de dessin utilisent une interpolation cubique, ou bi-cubique.

On peut approcher ce résultat avec canvas, mais pour ça il faut redimensionner l’image en 2 étapes : on redimensionne une première fois de 50 %, puis de nouveau de 50 %.
On utilise deux canvas successifs, avec l’image produite par la première utilisée en entrée par la seconde.

Une alternative est d’utiliser ça (en JS) :


ctx.imageSmoothingEnabled = true;
ctx.imageSmoothingQuality = "high"

Mais ça n’est supporté que par Chrome pour le moment.

https://stackoverflow.com/questions/19262141/resize-image-with-javascript-canvas-smoothly