8
votes

Groupe grand ensemble d'images

Y a-t-il un algorithme pour organiser de nombreuses petites images avec différentes dimensions et les regrouper dans un plus grand? Quelqu'un a une idée de l'endroit où devrais-je commencer à enquêter?


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 à cette complexité. Je vais utiliser l'image comme un sprite CSS, si cela fait une différence.


3 commentaires

Voulez-vous utiliser l'image résultante en tant que Sprite CSS?


Si c'est une fois seulement, vous n'avez pas besoin d'algorithme. Il y a beaucoup de programmes Sprite CSS.


Même si vous utilisez une approche assez inefficace (afin qu'elle crée une image avec des dimensions plus grandes), cela ne devrait pas beaucoup avoir beaucoup d'importance; La plupart des espaces gaspillés auront la même couleur et compresseront bien, de sorte que votre taille d'image globale ne sera pas beaucoup plus grande. Utilisez la mise en cache latérale du client et ils téléchargeront uniquement l'image une fois ... alors ne perdez pas trop de temps sur ce problème.


3 Réponses :


0
votes

Je pense que cela s'appelle mosaïque , vous pouvez donc commencer par regarder cela en regardant


0 commentaires

6
votes

2 commentaires

Oups, Square + Emballage + Problème Liens vers Square + Emballage + Algorithme . Cette question est le troisième résultat :)


Il est assez courant, alors gagne beaucoup de popularité dans Google.



1
votes

L'utilisation d'un algorithme d'optimisation pourrait être une overkilleuse pour votre problème. Codage d'un algorithme d'optimisation nécessitera beaucoup d'étude préalable. Même la mise en œuvre d'une bibliothèque prête pourrait être un gros problème pour s'attaquer.

Vous pouvez concevoir une heuristique, par vous-même:
Utilisez la largeur et la hauteur de la grande image comme votre entrée.
Pensez-y comme si vous remplissez chaque ligne et continuez jusqu'à la ligne suivante une fois la ligne remplie. Et commencez à insérer des images un par un.

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

Si vos dimensions d'image varient un peu, commandez-les en fonction de leur dimension la plus variable (largeur ou hauteur). Ensuite, commencez à insérer les images dans cet ordre.


0 commentaires