Générateur de newsletter

WRInaute accro
Bonjour,

Partage de ressources sans prétention.

Un client avait sa newsletter qui arrivait en vrac, particulièrement chez Gmail, il m'a demandé de prendre sa newsletter et d'en faire 1 seule image, j'ai donc commencé le code, celui que je donne superpose 1 image sur 1 image background et ajoute 2 textes.

demo : -http://tinyurl.com/d86wh9z

pour l'utiliser de votre coté, il vous faut télécharger la fonte Arial (arial.ttf), elle est free sur le net, vous pouvez bien sur tuliser d'autres fontes


Code:
<?php

// mettez ici votre image de fond
$fichier_source = "fond.jpg";


// envoie l'image a superposer sur le serveur
if(!empty($_POST['up'])) {
extract($_POST);
$userfile = $_FILES["userfile"]["tmp_name"];
if (!move_uploaded_file($userfile, $_FILES["userfile"]["name"])) {
print("La copie du fichier $userfile n'a pas réussi...<br />\n");  }

// recupere le nom de l'image
$fichier_copy = $_FILES["userfile"]["name"];
 
// 2 fonctions ImageCreateFromJpeg)
$im_source = ImageCreateFromJpeg ($fichier_source);  
$im_copy = ImageCreateFromJpeg ($fichier_copy);
 
// on calcule la largeur de l'image qui va être copiée
$larg_destination = imagesx ($im_source);  
 
// calcule la largeur
$larg_copy = imagesx ($im_copy);
// calcule la hauteur
$haut_copy = imagesy ($im_copy);
 
// calcul la position sur l'axe des abscisses
$x_destination_copy = $larg_destination - $larg_copy;
 
// excecute la superposition
imageCopyMerge ($im_source, $im_copy, 280, 280, 0, 0, $larg_copy, $haut_copy, 100);
 
Imagejpeg ($im_source, 'final1.jpg');
// creer l'image
$image = imagecreatefromjpeg('final1.jpg');


$text = $_POST['texte'];
$prix = $_POST['texte1'];

// Remplacez le chemin par votre propre chemin de police
$font = 'arial.ttf';

$grey = imagecolorallocate($image, 128, 128, 128);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);

/* ajout texte haut */

// ce bout de code c'est pour placer le texte margé a partir de la droite
for($i=0; $i<strlen($text); $i++)
{ 
    $dimensions = imagettfbbox(20, 0, $font, substr($text,$i,1));
    $total_width+=($dimensions[2]); 
}

$total = 680 - $total_width;
$total1 = $total +1;
// Ajout d'ombres au texte
imagettftext($image, 20, 0, $total1, 261, $grey, $font, $text);
// Ajout du texte
imagettftext($image, 20, 0, $total, 260, $black, $font, $text);


/* ajout texte bas */

// Ajout d'ombres au texte
imagettftext($image, 25, 0, 292, 627, $grey, $font, $prix);
// Ajout du texte
imagettftext($image, 25, 0, 290, 625, $red, $font, $prix);


Imagejpeg ($image, 'final.jpg');



}

?> 


<form action="" method="POST" enctype="multipart/form-data">
<INPUT TYPE="hidden" name="up" value="1">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="10000000">
<input type="hidden" name="envoie" value="1">
<input name="userfile" type="file" size="30"> (image de 500*300 px en .jpg pour l'exemple)
<br /> <br />
texte 1
<input type="text" name="texte" size="50" value="<?php echo $_POST['texte']; ?>" />
<br />
texte 2
<input type="text" name="texte1" size="50" value="<?php echo $_POST['texte1']; ?>" />
<br /><br />
<INPUT TYPE="submit" VALUE="Générer l'image">
</FORM>
<br />


<?php
if(!empty($_POST['up']))
{
?>
<img src="final.jpg"  />

<?php } ?>
 
WRInaute accro
Un peu dangereux ton script. Si on lui passe $_POST['fichier_source'] par exemple.
 
WRInaute accro
Utilisez Mail Chimp et ayez - de 10% de mail délivrés, c'est vrai que c'est super utile ton idée
 
WRInaute accro
sur 10 000 mails envoyés expliquer moi stp comment tu sais que 9 500 ont été correctement délivrés vu que les providers acceptent les mails et les blacklist ensuite sur leur filtres internes (j'avais lu ca sur 1 article), aussi par ex le premier provider de Caledonie (canl) a depuis bien longtemps sortie les ip mail chimp de sa white list. Maintenant peut-être qu'en métropole le jeu est différent.

Eclaire moi stp. Merci
 
Discussions similaires
Haut