2010-09-07 27 views
1

Nous souhaitons afficher de très grandes images (50mb plus) dans Internet Explorer. Nous aimerions éviter la compression car les algorithmes de compression ne sont pas ce que CSI voudrait nous faire croire et les fichiers qui en résultent sont trop volumineux. Par conséquent, nous avons trouvé deux options: Silverlight Deep Zoom ou une solution basée sur Flash (comme Zoomify). Le problème est que les deux nécessitent une conversion vers une sortie en mosaïque et/ou une conversion vers un type de fichier spécifique (Zoomify prend en charge un seul type de fichier propriétaire, PFF).Très grandes images dans le navigateur Web

Ce que nous nous demandons est si une solution existe qui nous permettra de voir l'image sans une conversion avant main. PS: Je sais que vous pouvez écrire une application pour coller les images (au besoin ou après le processus de chargement) et les sortir; Cependant, nous aimerions le faire sans couper le fichier.

Répondre

5

L'approche en mosaïque est vraiment la bonne façon de le faire.

Vos utilisateurs ne souhaitent pas télécharger un fichier de 50 Mo avant de pouvoir commencer à visualiser l'image. Vous ne voulez pas dépenser la bande passante pour servir 50 Mo à tous les utilisateurs qui pourraient ne voir qu'une fraction de votre image.

Si vous distribuez l'intégralité du fichier, les utilisateurs pourront éventuellement le charger et l'afficher, mais il ne fonctionnera pas correctement pour la plupart d'entre eux.

Il n'y a pas de moyen non-carrelé pour ne servir qu'une partie d'une image sauf si vous voulez utiliser une bibliothèque côté serveur comme imagemagik ou PIL pour extraire un sous-ensemble spécifique de l'image pour chaque utilisateur. Vous ne voulez probablement pas faire cela parce que cela va placer une charge importante sur votre serveur. Alternativement, vous pouvez utiliser quelque chose comme l'outil cartographique de Google pour fournir un zoom et une mise à l'échelle. Quelques commentaires à faire qui sont disponibles ici:

http://webtide.wordpress.com/2008/08/27/custom-google-maps/

+0

C'est ce que je pensais, je pensais juste jeter à SO.Certaines solutions proposées par la communauté m'ont emporté alors je demande même si je suis sûr à 99% de la solution :) –

+0

J'ai certainement fait la même chose et j'ai parfois trouvé des suggestions très intéressantes. Je voudrais avoir une meilleure solution pour vous ... –

+0

Il est également intéressant de noter que (en fonction de la variété de vos images), vous pourriez être en mesure d'utiliser l'outil cartographique de Google comme une alternative à Silverlight ou Flash. J'ai mis à jour la réponse avec un lien. –

0

Le navigateur ne chargera pas correctement un fichier de 50 meg; Si vous ne le coupez pas, il n'y a pas de moyen raisonnable de ne pas le retarder.

-1

Si vous ne voulez pas à carreaux, vous pourriez avoir le serveur d'ouvrir le fichier et rendre une vue taille de l'écran de l'image pour l'affichage dans le navigateur en particulier résolution de zoom demandée. De cette façon, vous ne pouvez pas envoyer 50 fichiers meg sur la ligne lorsque quelqu'un veut seulement avoir un aperçu de l'image. C'est-à-dire que le navigateur demande un ensemble de coordonnées et une taille de sortie en pixels, le serveur ouvre l'image plus grande et crée une image plus petite qui correspond à la vue souhaitée, et renvoie celle-ci au navigateur Web. En ce qui concerne la compression, vous dites que c'est trop risqué, mais si c'est ce que vous voyez, vous utilisez probablement un mauvais algorithme de compression ou un mauvais réglage pour le type d'image que vous avez. Le format jpg a des paramètres de qualité pour contrôler la perte, et la compression PNG est sans perte (les pixels que vous obtenez après la décompression sont les valeurs exactes que vous aviez avant la compression). Alors, pensez à changer ce que vous utilisez comme compression, et ne comptez pas uniquement sur les paramètres par défaut dans un éditeur d'image.

+0

Tout algorithme de compression va perdre après un point spécifique. Vous ne pouvez pas prendre un JPG 50mb et le réduire à une taille qui est légitime pour le web (environ 1mb ou plus) sans perdre la fidélité. Vous pouvez l'obtenir mais pas si loin. –

+0

Vous êtes simplement incorrect. La compression PNG est sans perte. Tout comme la compression GIF. Voir http://en.wikipedia.org/wiki/Lossless_data_compression Pensez-y ... si tous les algorithmes de compression étaient à perte, comment pensez-vous pouvoir compresser un fichier de 500 meg et le décompresser, en récupérant les originaux? – GrandmasterB

+0

Ce que je voulais dire, c'est qu'il y a une limite à la taille que vous pouvez atteindre sans passer à une compression avec perte. Vous pouvez prendre un PNG de 50 Mo et l'amener à 40 Mo. Si vous dégonflez le flux dans un zip, vous pouvez descendre à 20mb. Il est (à ma connaissance) impossible d'obtenir une image de 50 Mo jusqu'à 1 Mo sans compression avec perte. –

0

Jetez un oeil à OpenSeadragon. Pour faire une image peut fonctionner avec OpenSeadragon, vous devez générer un format d'image zoomable qui a mentionné here. Ensuite, suivez le guide de démarrage here