Question

Supposons que j'ai un bitmap avec un aspect carré et une largeur de 2048 pixels.

Afin de créer un ensemble de fichiers requis par le DeepZoomImageTileSource de Silverlight, je dois redimensionner ce bitmap sur 1024, puis sur 512, puis sur 256, puis réduire à 1 pixel.

Il existe deux approches, je suppose naïves,: -

  1. Pour chaque image requise, redimensionnez l'image originale à la taille requise. Cependant, il semble excessif d’adapter l’image complète aux très petites tailles.
  2. Après avoir redimensionné d'un niveau à un autre, supprimez l'image d'origine et redimensionnez chaque image redimensionnée comme source de la prochaine image plus petite. Cependant, je soupçonne que cela générerait des images dans la plage 256-64 avec une fidélité médiocre par rapport à l'option 1.

Remarque: contrairement à Deep Zoom Composer, cet outil est censé agir à la demande et doit donc être terminé dans un délai raisonnable (supérieur à 30 secondes). Du côté des points positifs, je ne crée qu’une seule image multi-échelle, pas une pyramide d’images multiples haute résolution.

Je suis en dehors de ma zone de confort ici, des experts en graphisme ont-ils un conseil? Est-ce que je me trompe à propos du point 2? Le point 1 est-il raisonnablement performant et je ne m'inquiète de rien? Option 3?

Était-ce utile?

La solution

À propos de 1: Cela semble le meilleur moyen. Et ce n’est pas excessif de ne pas recharger chaque fois l’image source.

À propos de 2: Oui, vous perdriez (en partie) la qualité en procédant par échelonnement.

Je pense que 30 secondes devraient suffire pour redimensionner une image (quelques fois). Toute optimisation concernerait la mise en cache des résultats.

Autres conseils

Ce que vous essayez essentiellement de faire est de créer des MipMaps (voir http://fr.wikipedia.org / wiki / Mipmap ). Si vous commencez avec une image de 2 carrés, réduisez ensuite la taille de moitié, puis réduisez de 2 la taille de l’image, vous obtiendrez le même résultat que si vous preniez l’image originale en la réduisant de moitié. facteur de 4.

Chaque pixel de l’image demi-taille correspond à la moyenne de 4 pixels de l’image originale. Chaque pixel de l’image de la taille du quart correspondra à une moyenne de 16 pixels. Que vous preniez la moyenne de 16 pixels ou la moyenne de 4 pixels, quelle que soit la moyenne de 4 autres pixels.

Je dirais donc que vous pourrez bien réduire progressivement les images, comme indiqué dans l'option 2. Si vous voulez être sûr, essayez les deux méthodes et comparez les images.

Je me rends compte que cette question est ancienne et qu’il existe peut-être une raison qui explique que vous ne l’ayez pas fait, mais si vous bénéficiez du Deep Zoom Composer gratuit de Microsoft, il est livré avec une DLL permettant de créer des zooms profonds, "DeepZoomTools.dll". Il créera des compositions de zoom profond d'une seule image ou composites de nombreuses images. (La classe ImageCreator fait le gros du redimensionnement des images).

Vous devriez étudier les conséquences d'une licence si vous développez une application commerciale, mais il est toujours préférable de réutiliser du code que de l'écrire vous-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top