Fusionner images

Petit nouveau ! | 3 Messages

29 juil. 2009, 20:27

Bonjour à tous,
bon voila j'aimerai faire un script pour fusionner 2 images une que je vais uploader directement depuis mon site avec une image source déjà uploader. voila un exemple

Code : Tout sélectionner

http://www.vistaprint.fr/vp/ns/easypath/uploadpicture.aspx?ref=1&page=1&pf_id=372&combo_id=62643&g=189&gallery_id=189&category_id=7872&ssc=1&orig_combo1=15544.120.1.79912%7C79912%7C137%7C0&orig_combo2=15544.120.1.79912%7C79912%7C137%7C0&click=0&epupstep=1&combo1=15544.120.1.79912%7C79912%7C137%7C0&combo2=15544.120.1.79912%7C79912%7C137%7C0&redir=3&rd=4
J'ai donc trouvé un script pour uploader qui fonctionne bien le voila:
<?php 
 
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets) 
$repertoire = 'screen'; // Repertoire d'upload 
 
if (isset($_FILES['fichier'])) 
{ 
 
// On vérifit le type du fichier 
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif') 
{ 
$erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .'; 
} 
 
// On vérifit le poids de l'image 
elseif ($_FILES['fichier']['size'] > $poids_max) 
{ 
$erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.'; 
} 
 
// On vérifit si le répertoire d'upload existe 
elseif (!file_exists($repertoire)) 
{ 
$erreur = 'Erreur, le dossier d\'upload n\'existe pas.'; 
} 
 
# // Si il y a une erreur on l'affiche sinon on peut uploader 
if(isset($erreur)) 
{ 
echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>'; 
} 
else 
{ 
 
// On définit l'extention du fichier puis on le nomme par le timestamp actuel 
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } 
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; } 
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } 
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } 
$nom_fichier = time().$extention; 
 
 
// On upload le fichier sur le serveur. 
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) 
{ 
$url = './'.$repertoire.''.$nom_fichier.''; 
echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60"><br /> 
'; 
} 
else 
{ 
echo 'L\'image n\'a pas pu être uploadée sur le serveur.'; 
} 
 
} 
 
} 
else 
{ 
?> 
<form method="post" enctype="multipart/form-data"> 
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>"> 
<input type="file" name="fichier"> 
<input type="submit" value="Envoyer"> 
 
</form> 
 
<?php 
} 
?>
et j'ai trouvé sur le site du zero un script qui permet grace a la fonction imagecopymerge de fusionner deux images voila:
<?php
header ("Content-type: image/jpeg"); // L'image que l'on va créer est un jpeg
 
// On charge d'abord les images
$source = imagecreatefrompng("logosdz.png"); // Le logo est la source
$destination = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la destination
 
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
 
// On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
$destination_x = $largeur_destination - $largeur_source;
$destination_y =  $hauteur_destination - $hauteur_source;
 
// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);
 
// On affiche l'image de destination qui a été fusionnée avec le logo
imagejpeg($destination);
?>
mais je ne sais pas comment intégrer c'est 2 script et je connais pas grand chose en php
si quelqu'un pourrait m'aider ça serait vraiment très sympathique de sa part

40€ sur paypal pour celui qui m'aideras à resoudre ce probléme)
Modifié en dernier par uccello le 29 juil. 2009, 20:55, modifié 1 fois.

ViPHP
ViPHP | 2291 Messages

29 juil. 2009, 20:50

En gros je pense que
// On charge d'abord les images 
$source = imagecreatefrompng("logosdz.png"); // Le logo est la source 
$destination = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la destination 
Dans ton cas cela deviendrais
// On charge d'abord les images 
$source = imagecreatefrompng("logosdz.png"); // l'image de base
$destination = imagecreatefromjpeg($url); // et ici ton image uploader
:wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 3 Messages

29 juil. 2009, 21:03

En gros je pense que
// On charge d'abord les images 
$source = imagecreatefrompng("logosdz.png"); // Le logo est la source 
$destination = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la destination 
Dans ton cas cela deviendrais
// On charge d'abord les images 
$source = imagecreatefrompng("logosdz.png"); // l'image de base
$destination = imagecreatefromjpeg($url); // et ici ton image uploader
:wink:
euh nn ce que j'aimerai faire c'est un script pour fusionner une image que je vais uploader avec une image source par ex je choisi ma photo et quand je l'upload elle se fusionne avec un tshirt
comme sur ce site : http://www.vistaprint.fr/vp/ns/easypath ... dir=3&rd=4

ViPHP
ViPHP | 2291 Messages

29 juil. 2009, 21:07

Bi oui
$url est l'image que tu upload, et $source = imagecreatefrompng("logosdz.png"); // l'image de base
est l'image source
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 3 Messages

29 juil. 2009, 21:15

hum... ok bon je vais essayer sa ^^