Gestion d'Images

WockyWorsen
Invité n'ayant pas de compte PHPfrance

20 avr. 2011, 09:52

Bonjour à tous!
Je dois faire un module pour mon tuteur de stage pour créer des vidéos à partir d'images (à ce propos, si quelqu'un sait comment utiliser ffmpeg... ^^'), seulement j'ai un petit problème lors de la création de mes images. Celles-ci doivent prendre aléatoirement une image (de robinet, évier ou autre) préexistante sur le disque, et l'insérer sur un fond de couleur, cependant, sans même utiliser de filtre alpha, il arrive de voir le fond de couleur derrière le png du robinet (qui n'est pourtant pas transparent).
De plus, lorsque je déplace mon image (de robinet) pour la centrer sur l'image principale, ça créer un bloc noir par rapport à la position d'origine de mon png, et je ne comprend pas pourquoi...
Je vous met une image pour éclaircir tout ça, vous comprendrez surement mieux qu'avec mes explications (pourtant très claires n'est ce pas? ^^') :

http://img801.imageshack.us/i/exemplerp.png/

Oui, ceci est un évier! ^^'
De plus l'image qui est pourtant bien détourée apparait dans un cadre blanc et est coupée par endroit... c'est vraiment bizarre...
En tout cas, merci à tous ceux qui pourront m'aider! ^^

Eléphant du PHP | 92 Messages

20 avr. 2011, 10:44

Hello,

Pour reprendre la phrase d'une personne rencontré sur le forum developpez.com :
Du code messire du code ! On est à cours de Dodo à sacrifier pour faire de la divination sur ce qu'il se passe...
Programmer c'est 20% de syntaxe pour 80% de réflexion et dans les 20% de syntaxe il faut encore compter une bonne dose de réflexion...
Je vous donne des conseils, pas des solutions toutes faites...

WockyWorsen
Invité n'ayant pas de compte PHPfrance

20 avr. 2011, 11:10

Eh oui, je sais bien, mais mon tuteur m’interdit de sortir du code de l'entreprise...
Je vais quand même tenter d'expliquer au mieux ma procédure :
Je commence donc par attribuer une couleur aléatoire au fond avec imagecolorallocate($img, rand(80, 200), rand(80, 200), rand(80, 200));
Ensuite je crée une variable qui va chercher aléatoirement une image parmi mon tableau d'images (ce sont des png).
J'indique que cette image est un png : $img_png = imagecreatefrompng($img_id);
Je fusionne cette image à la première avec la fonction imagecopymerge($img, $img_png, 150, 150, 0, 0, 800, 600, 100);
Et voila pour ce qui concerne l'image...
Après j'ai des fonctions pour la création du texte mais celui-ci se crée bien (numéro de tel et le dépannage 24/24...).

Voila, merci de votre aide...

Eléphant du PHP | 92 Messages

20 avr. 2011, 11:30

Hello,

Bon on va faire avec ce qu'on a hein ?! :D

En tout cas une chose est sûre c'est que la manipulation d'image un minimum complexe faite "from scratch" peut souvent mener à ce genre de choses.
Parce que tout ça passe par une multitude de choses que tu ne comprends pas forcément (encore ;) ).
Tout ça pour te dire qu'il vaut mieux s'orienter vers des librairies qui s'occupe de gérer tout ça pour toi ou si vous disposez d'un serveur dédié, vous pouvez mettre en place un petit programme qui s'appelle nConvert et qui fait ce genre de choses très facilement et très bien. Si mes souvenirs sont bons, la licence entreprise pour l'utilisation coûte 300€.
Pour les librairies d'image, je t'oriente vers Google qui sera capable de faire cette recherche pour toi ;)
Programmer c'est 20% de syntaxe pour 80% de réflexion et dans les 20% de syntaxe il faut encore compter une bonne dose de réflexion...
Je vous donne des conseils, pas des solutions toutes faites...

WockyWorsen
Invité n'ayant pas de compte PHPfrance

20 avr. 2011, 11:37

Ok, ben je vais en parler à mon tuteur alors, encore merci. ^^
Je dois avouer que ça me fait quand même rager de devoir lacher l'affaire alors que je commençais à avoir des résultats (même moches... ^^').
Je pense que je vais quand même continuer à chercher un peu, on sait jamais! (avec un peu de chance ^^)

Eléphant du PHP | 92 Messages

20 avr. 2011, 11:47

Voilà mon conseil :
Télécharge le nConvert et fait des tests (t'es pas obligé de l'acheter tout de suite...) S'il ne fonctionne pas comme tu veux tu retourneras vers ton code.

Maintenant par expérience je peux te dire que la découverte de ce programme m'a changé la vie (parce que des scripts de traitement d'image j'en ai fait plus d'un j'te le dis !) Et je sais qu'on peut vite être amené à tourner en rond...

Parce que comme tu passes par des PNG tu te retrouves à gérer des canaux alpha sans compter que je ne suis pas sûr du résultat avec ffmpeg quand tu vas lui filer des images avec de la transparence...

Le calcul qu'il faut faire est assez simple :
Combien de temps penses tu pouvoir passer à chercher une solution * par le prix par jour que tu coûte à ta boite = coût total du développement
Sans compter la maintenance (ben oui parce qu'une fois que tu auras fait marcher ton truc avec du PNG on va certainement te dire : "Ben pourquoi ça marche pas avec du JPEG ? et quid d'un GIF ? Ha et puis on a un TIFF aussi qu'on aimerait bien faire passer...")

Et ne le prends pas pour toi mais ton but au-delà de faire du code est d'être efficace et ré-inventer la roue n'a jamais été efficace comme philosophie :)
Programmer c'est 20% de syntaxe pour 80% de réflexion et dans les 20% de syntaxe il faut encore compter une bonne dose de réflexion...
Je vous donne des conseils, pas des solutions toutes faites...