1

Je veux faire une application qui obtient vos photos de profil de vos amis de dire votre facebook, Myspace ou compte Twitter et fait une image sur tous les. Je sais déjà comment utiliser les API de ces réseaux sociaux pour obtenir l'URL de l'image, la question est de savoir comment les "assembler" ensemble.faire une plus grande image en assemblant les autres

Si vous savez comment faire cela en utilisant une classe spécifique dans Zend ou PEAR, ce sera génial puisque c'est ce que j'utilise.

Merci.

Répondre

0

Une très approche de base est de prendre votre image cible (l'image que vous voulez que votre image de synthèse pour ressembler) et le découper à des images plus petites dans une série d'images que nous pouvons appeler T.

  1. Trouvez la "couleur moyenne" de chaque image dans T.

  2. Prenez votre ensemble d'images d'amis, appelons cet ensemble F, et trouver la "couleur moyenne" de chacun d'eux.

  3. Maintenant, associez chaque image dans T avec une image dans F afin que la distance entre les couleurs soit aussi petite que possible. Ici, vous devez considérer si vous autorisez la même image dans F à utiliser pour plus d'une image dans T.

Une approche un peu moins de base serait de (utilisant les mêmes jeux que ci-dessus):

  1. filtre Mean chaque image en T et F (comme dans les flou)

  2. alignement de chaque image en T avec une image en F à l'aide de calculs des moindres carrés d'erreur.

D'autres approches plus avancées que je peux penser, mais qui sont beaucoup plus lourds de mathématiques sont:

  • Utilisation de l'analyse en composantes principales pour choisir les composantes principales de F et T et correspondent à ceux-ci. Utilisation de n'importe quel type de descripteur (SIFT, SURF, ...) pour trouver une image dans F dans l'image cible
  • Cela vous permettrait d'avoir une grille inégale, ou vraiment pas de grille du tout où deux images dans F peuvent très bien avoir des tailles très différentes dans l'image résultante.

En ce qui concerne le cadre, je ne pense pas que ce soit important. Ce dont vous avez besoin, c'est d'une bonne bibliothèque d'images pour faciliter la manipulation des images.

+0

Ceci est une bonne information, mais je ne pense pas que le questionneur posait la question de faire correspondre une grande image - juste de faire une plus grande image en assemblant les autres ensemble. –

+0

@Lou Franco: Aïe, je vois que maintenant ... Devine mon esprit était réglé sur des choses plus difficiles :) –

+0

Oui @Lou Franco, c'est ce que j'essaie de faire, merci de clarifier ma question :) – SoftwareDev

1

Je prendrais un coup d'œil à intégrer Imagemagick dans votre solution

http://us3.php.net/imagick

Je ne l'utilise pas, mais en regardant les exemples, il Commençons comme:

<?php 
/* Create the big image. */ 
$im = new Imagick(); 
$im->newPseudoImage(500, 500, "white"); 

/* Create the small image. */ 
$faceImg = new Imagick('face.jpg'); 


?> 

Je ne vois pas comment superposer $ faceImg sur $ im, mais imagemagick a la fonctionnalité. Si les liaisons PHP ne sont pas suffisantes, vous pouvez toujours utiliser la version de ligne de commande d'ImageMagick.

+0

Merci, je vois ce que vous dites, faites une grande image et mettez les autres en haut. J'ai entendu parler de cette bibliothèque mais je ne l'ai pas utilisée, maintenant que vous la mentionnez, je vais essayer. – SoftwareDev

0

Je pense qu'il ya une commande dans l'image Magick aux images point

convertir 1.jpg 2.jpg -rotate 90 -append 270 final.jpg

Je pense que c'est ce que vous cherchez

Questions connexes