2010-11-17 7 views
8

Existe-t-il un algorithme pour organiser beaucoup de petites images avec des dimensions différentes et les regrouper dans un plus grand? Quelqu'un at-il une idée d'où devrais-je commencer à enquêter?groupe grand ensemble d'images


EDIT: Fondamentalement, je veux faire quelque chose comme ça http://www.google.ro/images/srpr/nav_logo27.png en PHP. Je ne m'attends pas vraiment à une telle complexité. Je vais utiliser l'image comme sprite CSS, si cela fait une différence.

+0

Voulez-vous utiliser l'image résultante comme image-objet css? – c0rnh0li0

+0

Si c'est une seule fois, vous n'avez pas besoin d'algorithme. Il y a beaucoup de programmes d'image-objet CSS. – Ross

+1

Même si vous utilisez une approche assez inefficace (pour créer une image avec des dimensions plus grandes), cela ne devrait pas vraiment avoir d'importance; la majeure partie de l'espace gaspillé sera de la même couleur et se comprimera bien, de sorte que la taille globale de votre image ne sera pas beaucoup plus grande. Utilisez la mise en cache côté client et ils ne téléchargeront l'image qu'une fois ... alors ne perdez pas trop de temps sur ce problème. –

Répondre

1

En utilisant un algorithme d'optimisation peut-être trop pour votre problème. Coder un algorithme d'optimisation nécessitera beaucoup de pré-étude. Même la mise en place d'une bibliothèque prête pourrait être un gros problème à résoudre.

Vous pouvez concevoir une heuristique, par vous-même:
Utilisez la largeur et la hauteur de la grande image comme entrée. Pensez-y comme si vous remplissiez chaque rangée et passez à la rangée suivante une fois la rangée remplie. Et commencez à insérer les images une par une.

Si vous utilisez un algorithme, l'image finale sera plus optimisée. Plus petit en taille. Mais la différence ne serait pas très différente si vos images ne varient pas beaucoup dans les dimensions.

Si les dimensions de votre image varient légèrement, commandez-les en fonction de leurs dimensions les plus diverses (largeur ou hauteur). Puis commencez à insérer les images dans cet ordre.

0

Je pense que ce qu'on appelle mosaic, de sorte que vous pouvez commencer par regarder ce jusqu'à

Questions connexes