2010-09-01 9 views
4

Existe-t-il un moyen de redimensionner l'image réelle en utilisant JavaScript? Je ne parle pas de modifier le DOM pour obtenir le navigateur pour redimensionner l'image. Je veux réellement redimensionner les données de pixel de l'image et l'afficher ensuite.Bicubic-ly Redimensionner des images avec Javascript

Fondamentalement, mon problème est: Firefox échoue complètement à réduire les images avec des fonctionnalités délicates, car il a seulement le plus proche voisin et Binlinear. Tous les autres navigateurs - même IE - ont un support bicubique. Il y a talk de cela inclus dans un proche avenir, mais cette conversation se poursuit depuis plus d'un an. Je ne me dérange pas de télécharger les images en taille réelle parce que je veux les télécharger de toute façon. Lorsque l'utilisateur survole la petite version d'une image, la grande version apparaît immédiatement ailleurs sur la page. Si je faisais un redimensionnement côté serveur, je devais télécharger les deux copies des images, ce qui entraînerait un trafic encore plus important. S'il n'y a pas d'autre solution, alors c'est ce que je vais devoir faire ... Je ne veux pas.

+1

Vous n'avez donc besoin de cela que pour Firefox ou un autre navigateur avec support de canvas? –

+0

Le site comme je l'ai l'air bien dans tout sauf FF (même la dernière version). Et c'est un résultat direct de FF n'offrant pas de capacités de redimensionnement bicubiques (ou mieux). – colithium

+0

J'ai passé du temps avec le Google, espérant trouver du code qui pourrait "juste être converti", mais je n'ai pas eu de chance. Est-ce un secret étroitement gardé? –

Répondre

1

C'est possible. Vous obtenez une image sur le même domaine, écrivez sur canvas, puis manipulez des données de pixel à partir de là (compliqué, mais possible j'en suis sûr), puis utilisez cette sortie ou sortie sous png/gif/jpg ... MAIS ... Je ne pense pas que vous trouverez ce sera meilleur moyen de préserver fonctionnalités délicates que CSS.

+0

Dans tous les autres navigateurs, l'image redimensionnée est parfaite parce que ces navigateurs utilisent quelque chose de mieux que l'interpolation bilinéaire - la délicate les caractéristiques sont préservées. C'est juste un énorme défaut de FF que j'essaie de contourner. – colithium

+2

Pour une implémentation de différents algorithmes qui font exactement ce qui est mentionné ci-dessus, voir ici: http://jsperf.com/pixel-interpolation/2 – Daniel

Questions connexes