Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2006, 14h57   #1
Membre régulier
 
Inscription : décembre 2003
Messages : 170
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : décembre 2003
Messages : 170
Points : 76
Points : 76
Envoyer un message via MSN à eagleleader
Par défaut [ImageMagick] Fusionner deux images

Ceci ne fonctionne pas mais je ne comprends pas pourquoi ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// on spécifie le type de document que l'on va créer (ici une image au format PNG
header ("Content-type: image/jpeg");
// déclaration des 2 images que je veux supperposer
$fond = "./1.jpg";
$dessus = "./2.jpg";
// création des espaces pour les images
$imfond = ImageCreatefromjpeg ($fond);
$imdessus = ImageCreatefromjpeg($dessus);
// miniature car je voudrais réduire l'image du dessus afin que par exemple
// l'image de fond fasse 100% mais que l'image du dessus vienne
// recouvrir que par exemple 50%
// sachant qu'elles ont toutes les deux les mêmes dimensions
list($width,$height) = getimagesize($dessus);
$newwidth = $width * 0.5;
$thumb = imagecreatetruecolor($newwidth,$height);
imagecopyresized($thumb,$imdessus,0,0,0,0,$newwidth,$height,$width,$height);
$res = imagecreatefromjpeg($thumb);
@imagecopymerge($fond,$res,0,0,0,0,99,16,50);
// on dessine notre image PNG
Imagejpeg ($fond);
?>
eagleleader est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h02   #2
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 27
Points : 27
Citation:
Envoyé par eagleleader
Ceci ne fonctionne pas mais je ne comprends pas pourquoi ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// on spécifie le type de document que l'on va créer (ici une image au format PNG
header ("Content-type: image/jpeg");
// déclaration des 2 images que je veux supperposer
$fond = "./1.jpg";
$dessus = "./2.jpg";
// création des espaces pour les images
$imfond = ImageCreatefromjpeg ($fond);
$imdessus = ImageCreatefromjpeg($dessus);
// miniature car je voudrais réduire l'image du dessus afin que par exemple
// l'image de fond fasse 100% mais que l'image du dessus vienne
// recouvrir que par exemple 50%
// sachant qu'elles ont toutes les deux les mêmes dimensions
list($width,$height) = getimagesize($dessus);
$newwidth = $width * 0.5;
$thumb = imagecreatetruecolor($newwidth,$height);
imagecopyresized($thumb,$imdessus,0,0,0,0,$newwidth,$height,$width,$height);
$res = imagecreatefromjpeg($thumb); // <======================== Erreur , tu efface ca
@imagecopymerge($fond,$res,0,0,0,0,99,16,50); <================= tu remplace par $fond par  $imfond , et $res par $thumb
// on dessine notre image PNG
Imagejpeg ($fond); // <================= tu remplace par $fond par  $imfond
?>
elle se situe la ton erreur
coolmic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h07   #3
Membre régulier
 
Inscription : décembre 2003
Messages : 170
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : décembre 2003
Messages : 170
Points : 76
Points : 76
Envoyer un message via MSN à eagleleader
ok maintenant j'ai mon image de fond qui est présente mais pas celle du dessus, j'ai changé le niveau d'oppacité au cas où elle se trouverait en dessous au lieu d'au dessus mais rien n'y fait mais on pregesse merci ...
Si tu as une idée ...
eagleleader est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h10   #4
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 27
Points : 27
Retest jai fait 4 mise a jour successifs dans mon post!! , par contre meme si elle s'affiche je pense pas que ca fera ce que tu veux, tu veux creer une sorte de cadre au dessus de ton image??
coolmic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h18   #5
Membre régulier
 
Inscription : décembre 2003
Messages : 170
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : décembre 2003
Messages : 170
Points : 76
Points : 76
Envoyer un message via MSN à eagleleader
J'ai trouvé les autres mises a jour que je n'avais pas fait et maintenant j'ai un cadre comme si il ne trouvait pas l'aimge, tu sais un cadre vide en sorte ...
eagleleader est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h23   #6
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 27
Points : 27
dabord si tu veux savoir d'ou viens l'eereur n hesite pas a mettre un // devant le

Code :
header ("Content-type: image/jpeg");

et enleve le @!! Normalement tu verra un message d'erreur!!


je repost

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// on spécifie le type de document que l'on va créer (ici une image au format PNG
header ("Content-type: image/jpeg");
// déclaration des 2 images que je veux supperposer
$fond = "./1.jpg";
$dessus = "./2.jpg";
// création des espaces pour les images
$imfond = ImageCreatefromjpeg ($fond);
$imdessus = ImageCreatefromjpeg($dessus);
// miniature car je voudrais réduire l'image du dessus afin que par exemple
// l'image de fond fasse 100% mais que l'image du dessus vienne
// recouvrir que par exemple 50%
// sachant qu'elles ont toutes les deux les mêmes dimensions
list($width,$height) = getimagesize($dessus);
$newwidth = $width * 0.5;
$thumb = imagecreatetruecolor($newwidth,$height);
imagecopyresized($thumb,$imdessus,0,0,0,0,$newwidth,$height,$width,$height);
 
@imagecopymerge($imfond,$thumb,0,0,0,0,99,16,50); //<================= tu remplace par $fond par  $imfond , et $res par $thumb
// on dessine notre image PNG
Imagejpeg ($imfond); // <================= tu remplace par $fond par  $imfond
?>
coolmic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h32   #7
Membre régulier
 
Inscription : décembre 2003
Messages : 170
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : décembre 2003
Messages : 170
Points : 76
Points : 76
Envoyer un message via MSN à eagleleader
Nikel cela fonctionne merci de m'avoir aidé !!!

J'ai un autre problème : il me crée le cadre pour l'espace de l'image à la taille de sa forme initiale donc le résultat est du coloris noir...

Peut-on faire en sorte que la taille réservée s'adapte à celle souhaitée ?

Encore un grand merci ...
eagleleader est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h40   #8
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 27
Points : 27
jai pas trop compris ton probleme!!! ou se trouve le cadre??? dans celui générer par $thumb?
coolmic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 15h43   #9
Membre régulier
 
Inscription : décembre 2003
Messages : 170
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : décembre 2003
Messages : 170
Points : 76
Points : 76
Envoyer un message via MSN à eagleleader
Pardon je m'explique mal...

Oui en fait le cadre créé pour le thumb est trop grand par rapport à ce que l'image rétrécie est créée. Donc php complète l'affichage par du noir.

Donc en fond mon image est ok
Mon image au dessus par contre est correcte sauf que le cadre créé pour elle est trop grand et donc est remplie par du noir par la suite.

Je peux le comprendre car on crée l'espace avant de définir la miniature ...
eagleleader est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 16h08   #10
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 27
Points : 27
je vois tu rétrécie l'image , et tu la colle dans ton image de fond, mais l'image rétrécie doit occupé une plus grande place que elle meme!!! Voila ce que je te propose


Tu creer une image $thumb un peu plus grande qui contient dans son coin en haut a gauche l'image du dessus
Le reste innocupé tu la rend transparente! Voila comment faire!!

Code :
1
2
3
4
5
6
7
8
9
10
11
 
list($width,$height) = getimagesize($dessus);
$newwidth = $width * 0.5;
 
$thumb = imagecreatetruecolor($width,$height); // On la laisse grande
$c = imagecolorallocatealpha($thumb , 255 , 255 , 255 , 127); // Couleur transparent 
imagefill($thumb , 0 , 0 , $c); // On la remplie de couleur la couleur transparent
imagecopyresampled($thumb,$imdessus,0,0,0,0,$newwidth,$height,$width,$height); 
imagecolortransparent($thumb ,  $c); // On dit que la couleur $c doit etre transparente
 
@imagecopymerge($imfond,$thumb,0,0,0,0,99,16,50);
coolmic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 17h30   #11
Membre régulier
 
Inscription : décembre 2003
Messages : 170
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : décembre 2003
Messages : 170
Points : 76
Points : 76
Envoyer un message via MSN à eagleleader
Wha nikel trop bien merci beaucoup pour ton aide.
Thank's
eagleleader est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h29.


 
 
 
 
Partenaires

Hébergement Web