Bonjours, j'ai créé ce script pour un copain qui en avait marre de rajouter l'adresse de son site sur toutes les images qu'il rajoutait!
Donc je lui est proposé de faire un script qui fait tout cela...
Facile d'utilisation, il vous demande que faire ou presque :D
Source / Exemple :
<?php
// ** Ne rien modifier ici
define('fond_fichier', 'fond.jpg'); // Image de fond
define('longeur_max', 20); // Longueur maximal du nom d'un fichier (pour tronquage)
define('police', 'polices/police.ttf'); // Police utilisé
define('skin', 'style'); // Emplacement du skin
$format = array(1 => 'gif', 2 => 'jpeg', 3 => 'png');
include 'config.php';
// Fonctions, elles permettent d'exécuter un code plusieurs fois pour différentes choses
function mise_majmin($chaine,$majmin,$plus){
define('min', 'efgijnpäâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæ?ðø');
define('maj', 'EFGIJNPÄÂÀÁÅÃÉÈËÊÒÓÔÕÖØÌÍÎÏÙÚÛÜÝÑÇÞÝÆ?ÐØ');
$chaine = strtoupper($chaine);
if($majmin === 'maj'){
$chaine = strtr($chaine, min, maj);
if($chaine === 'JPG' && $plus === 1){$chaine = 'JPEG';}
}else if($majmin === 'min'){
$chaine = strtr($chaine, maj, min);
if($chaine === 'jpg' && $plus === 1){$chaine = 'jpeg';}
}
return $chaine;
}
function tronquer($chaine, $longeur_moy){
if (strlen($chaine) > $longeur_moy){
$longeur_moy = $longeur_moy / 2;
$chaine = substr_replace($chaine, '...', $longeur_moy, - $longeur_moy);
}
return $chaine;
}
// Cette condition sert à afficher directement une image avec copyright (par lien)
if($_GET['choix'] === 'gen'){
define('fichier', $_GET['image']);
define('repertoire', $repertoire.'/');
if(file_exists(repertoire.fichier)){
define('ext_plus', pathinfo(fichier, PATHINFO_EXTENSION)); // Fonction de php qui renvoi l'extension d'un fichier
define('ext', mise_majmin(ext_plus, 'maj', 0));
list($imagex, $imagey, $type) = getimagesize(repertoire.fichier); // Détails sur l'image
header ('Content-type: image/'.$format[$type]);
// Lecture de l'image et mise en variable
if(ext === 'JPG' or ext === 'JPEG')
$image = imagecreatefromjpeg(repertoire.fichier);
if(ext === 'PNG')
$image = imagecreatefrompng(repertoire.fichier);
if(ext === 'GIF')
$image = imagecreatefromgif(repertoire.fichier);
define('imagex', $imagex); // Nombre de pixel en longueur
define('imagey', $imagey); // Nombre de pixel en hauteur
// Positionnement du texte
switch(posx){
case 'g': define('x', 20);
break;
case 'c': define('x', (imagex - (50 + (strlen(copyright) * taille))) / 2);
break;
case 'd': define('x', imagex - (50 + (strlen(copyright) * taille)));
break;
}
switch(posy){
case 'h': define('y', 20 + taille);
break;
case 'm': define('y', (imagey - 50) / 2);
break;
case 'b': define('y', imagey - taille);
break;
}
define('couleur', imagecolorallocate($image, rouge1, vert1, bleu1)); // On met une couleur en variable R,V,B
define('couleur2', imagecolorallocate($image, rouge2, vert2, bleu2)); // On met une couleur en variable R,V,B
imagettftext($image, taille, 0, x, y, couleur, police, copyright); // Ecriture du premier texte sur l'image
imagettftext($image, taille, 0, x + 1, y + 1, couleur2, police, copyright); // Ecriture du deuxième texte sur l'image
// On affiche l'image
if(ext === 'JPG' or ext === 'JPEG')
imagejpeg($image);
if(ext === 'PNG')
imagepng($image);
if(ext === 'GIF')
imagegif($image);
imagedestroy($image); // On détruit l'image pour vider la variable et la mémoire
}
exit();
}
$_GET = ''; // Sécuriser le script en enlevant les variables stockées dans le lien
?>
<html>
<head>
<title>Copyright sur Image</title>
<link rel="stylesheet" type="text/css" href="<?php echo skin.'/style'.$s.'.css'; ?>" title="PyroFrissons" media="screen" />
</head>
<body>
<div id="titre">Copyright sur Image</div>
<?php
$n = "\n"; // Permet le retour à la ligne dans le code
$validation = 0;
$exist = 0;
define('erreur', '<div id="validation"><blink>Désolé, aucune image trouvé...</blink></div>'.$n);
define('erreur2', preg_replace('/aucune image/', 'aucun dossier', erreur));
define('retour', '<div id="retour"><a href="javascript:history.back()">Retour</a></div>'.$n);
$fich = '<div id="colone-image">'.$n.'<div id="image-titre"> --- Nom de l\'image --- </div>'.$n.'<div id="image-fichier">'.$n;
$deff = '<div id="colone-deff">'.$n.'<div id="deff-titre"> --- etat --- </div>'.$n.'<div id="deff-fichier\">'.$n;
echo '<div id="encadrement">'.$n;
if($_POST['choix'] === 'scanner'){
if($_POST['repertoire'] != ''){
define('repertoire', $_POST['repertoire']); // Répertoire scanné (point si direct -- deux points si précédents)
}
if(!file_exists(repertoire)){$exist === 'ok';}else{$dossier = openDir(repertoire);}
define('etat', 'Extension');
$deff = preg_replace('/etat/', etat, $deff);
while($fichier = @readDir($dossier)){
$ext = pathinfo($fichier, PATHINFO_EXTENSION); // Fonction de php qui renvoi l'extension d'un fichier
$ext = mise_majmin($ext, 'maj', 0);
$ext2 = mise_majmin($ext, 'maj', 1);
$ext3 = mise_majmin($ext, 'min', 0);
if(repertoire === skin){$fond = fond_fichier;}
if(($fichier != '.')&&($fichier != '..')&&($fichier != $fond)){
if($ext === 'JPG' or $ext === 'JPEG' or $ext === 'PNG' or $ext === 'GIF'){
if(!is_dir(repertoire.'/'.$fichier)){
$validation++; // Argumenter la variable afin de savoir qu'il y a une image
if($_POST['renommer'] === 'oui'){
$fichier2 = $_POST['nom'].$validation.'.'.$ext3;
rename(repertoire.'/'.$fichier, repertoire.'/'.$fichier2);
}else{
$fichier2 = $fichier;
}
$fich .= '<a href="'.repertoire.'/'.$fichier2.'">';
// Affiche les images du répertoire indiqué et les extensions
if($ext === 'JPEG')
$fich .= tronquer(substr($fichier2,0,strlen($fichier2)-5), longeur_max).'</a><br>'.$n;
else
$fich .= tronquer(substr($fichier2,0,strlen($fichier2)-4), longeur_max).'</a><br>'.$n;
$deff .= '<font id="on">'.$ext2.'</font><br>'.$n;
}
}
}
}
// Ajoute le résultat pour l'affichage à la fin
$affichage = $fich.'<br></div>'.$n;
$affichage .= $deff.'</div>'.$n;
$affichage .= '</div>'.$n.retour;
if ($validation <= 0)
if($exist === 'ok')
$affichage = erreur2;
else
$affichage = erreur;
$affichage .= '<br>'.retour;
}else if($_POST['choix'] === 'modifier'){
if($_POST['repertoire'] != ''){
define('repertoire', $_POST['repertoire']); // Répertoire scanné (point si direct -- deux points si précédents)
}
if(!file_exists(repertoire)){$exist === 'ok';}else{$dossier = openDir(repertoire);}
if($_POST['repertoire2'] != ''){
define('repertoire2', $_POST['repertoire2']); // Répertoire de sortie (point si direct -- deux points si précédents)
}
if(!file_exists(repertoire2)){mkdir(repertoire2);}
define('etat', 'Status');
$deff = preg_replace('/etat/', etat, $deff);
if($_POST['qualite'] >= 100){
define('qualite', 100);
}else{
define('qualite', round($_POST['qualite']));
}
while($fichier = @readDir($dossier)){
$ext = pathinfo($fichier, PATHINFO_EXTENSION); // Fonction de php qui renvoi l'extension d'un fichier
if($ext === 'JPG' or $ext === 'JPEG' or $ext === 'PNG' or $ext === 'GIF'){
$ext = mise_majmin($ext, 'min', 0);
if($ext === 'jpeg'){
$renommer = substr($fichier,0,strlen($fichier)-5);
}else{
$renommer = substr($fichier,0,strlen($fichier)-4);
}
rename(repertoire.'/'.$fichier, repertoire.'/'.$renommer.'.'.$ext);
$fichier = $renommer.'.'.$ext;
}
if(repertoire === skin){$fond = fond_fichier;}
if(($fichier != '.')&&($fichier != '..')&&($fichier != $fond)){
if($ext === 'jpg' or $ext === 'jpeg' or $ext === 'png' or $ext === 'gif'){
if(!is_dir(repertoire.'/'.$fichier)){
$validation++; // Argumenter la variable afin de savoir qu'il y a une image
$resultat = 'Modifié';
$resultat2 = 'Erroné';
if($_POST['renommer'] === 'oui'){
$fichier2 = $_POST['nom'].$validation.'.'.$ext;
}else{
$fichier2 = $fichier;
}
// Lecture de l'image et mise en variable
if($ext === 'jpg' or $ext === 'jpeg')
$image = imagecreatefromjpeg(repertoire.'/'.$fichier) or $resultat = $resultat2;
if($ext === 'png')
$image = imagecreatefrompng(repertoire.'/'.$fichier) or $resultat = $resultat2;
if($ext === 'gif')
$image = imagecreatefromgif(repertoire.'/'.$fichier) or $resultat = $resultat2;
//if($ext === 'bmp')
// $image = imagecreatefromwbmp(repertoire.'/'.$fichier) or $resultat = $resultat2;
list($imagex, $imagey) = getimagesize(repertoire.'/'.$fichier); // Détails sur l'image
//$imagex = imagesx($image); // Nombre de pixel en longueur
//$imagey = imagesy($image); // Nombre de pixel en hauteur
// Positionnement du texte
switch($_POST['posx']){
case 'g': $x = 20;
break;
case 'c': $x = ($imagex - (50 + (strlen($_POST['copyright']) * $_POST['taille']))) / 2;
break;
case 'd': $x = $imagex - (50 + (strlen($_POST['copyright']) * $_POST['taille']));
break;
}
switch($_POST['posy']){
case 'h': $y = 20 + $_POST['taille'];
break;
case 'm': $y = ($imagey - 50) / 2;
break;
case 'b': $y = $imagey - $_POST['taille'];
break;
}
$height = imagefontheight(taille); // Calcul de la taille d'une chaine (approximatif)
define('couleur', imagecolorallocate($image, $_POST['rouge1']*255/100, $_POST['vert1']*255/100, $_POST['bleu1']*255/100)); // On met une couleur en variable R,V,B
define('couleur2', imagecolorallocate($image, $_POST['rouge2']*255/100, $_POST['vert2']*255/100, $_POST['bleu2']*255/100)); // On met une couleur en variable R,V,B
imagettftext($image, $_POST['taille'], 0, $x, $y, couleur, 'polices/'.$_POST['police'], $_POST['copyright']); // Ecriture du premier texte sur l'image
imagettftext($image, $_POST['taille'], 0, $x + 1, $y + 1, couleur2, 'polices/'.$_POST['police'], $_POST['copyright']); // Ecriture du deuxième texte sur l'image
// On enregistre l'image (80 est le niveau de netteté)
if($ext === 'jpg' or $ext === 'jpeg')
imagejpeg($image, repertoire2.'/'.$fichier2, qualite) or $resultat = $resultat2;
if($ext === 'png')
imagepng($image, repertoire2.'/'.$fichier2, qualite) or $resultat = $resultat2;
if($ext === 'gif')
imagegif($image, repertoire2.'/'.$fichier2, qualite) or $resultat = $resultat2;
//if($ext === 'bmp')
// imagewbmp($image, repertoire2.'/'.$fichier2, $qualite) or $resultat = $resultat2;
if($_POST['renommer'] === 'oui'){
rename(repertoire2.'/'.$fichier, repertoire2.'/'.$fichier2);
}
imagedestroy($image); // On détruit l'image pour vider la variable et la mémoire
if($resultat === 'Modifié')
$resultat_couleur = 'on'; // Donner de la couleur (image modifié avec succés -> vert)
else
$resultat_couleur = 'off'; // Donner de la couleur (image raté -> rouge)
$fich .= '<a href="'.repertoire2.'/'.$fichier2.'">';
// Affiche les images du répertoire indiqué et dit si la modification a réussi
if($ext === 'jpeg')
$fich .= tronquer(substr($fichier2,0,strlen($fichier2)-5), longeur_max).'</a><br>'.$n;
else
$fich .= tronquer(substr($fichier2,0,strlen($fichier2)-4), longeur_max).'</a><br>'.$n;
$deff .= '<span id="'.$resultat_couleur.'">'.$resultat.'</span><br>'.$n;
}
}
}
}
// Ajoute le résultat pour l'affichage à la fin
$affichage = $fich.'<br></div>'.$n;
$affichage .= $deff.'</div>'.$n;
$affichage .= '</div>'.$n.retour;
if ($validation <= 0)
if($exist === 'ok')
$affichage = erreur2;
else
$affichage = erreur;
$affichage .= '<br>'.retour;
}else{
$option = '';
$ptiterreur = 'Pour le répertoire du script tapez \'.\' Pour le répertoire parent tapez \'..\'';
switch(posx){
case 'g':
$posx_plus[0] = ' checked';
break;
case 'c':
$posx_plus[1] = ' checked';
break;
case 'd':
$posx_plus[2] = ' checked';
break;
}
switch(posy){
case 'h':
$posy_plus[0] = ' checked';
break;
case 'm':
$posy_plus[1] = ' checked';
break;
case 'b':
$posy_plus[2] = ' checked';
break;
}
for($i = 0; $i != 11; $i++){
$j = ($i*10);
$option .= '<option value="'.$j.'">'.$j.'</option>';
}
if(file_exists('polices')){
$dossier = openDir('polices');
$polices = '<option value="police.ttf">'.nom_police.'</option>';
while($fichier = @readDir($dossier)){
$ext = pathinfo($fichier, PATHINFO_EXTENSION); // Fonction de php qui renvoi l'extension d'un fichier
if(($fichier != '.')&&($fichier != '..')&&($fichier != 'police.ttf')&&($ext === 'ttf' or $ext === 'TTF')){
$polices .= '<option value="'.$fichier.'">'.substr($fichier,0,strlen($fichier)-4).'</option>';
}
}
}else{
$ptiterreur = 'Dsl Aucune police trouvé pour le répertoire \'polices\'!';
}
$affichage = '<form name="copyright" method="post">'.$n;
$affichage .= '<div id="sous-titre">Choisissez Les Répertoires</div>'.$n;
$affichage .= '<div id="repertoire">Répertoire Des Images<span id="repertoirespan"> </span><input type="text" name="repertoire" value="'.$repertoire.'" size=\"30\"></div>'.$n;
$affichage .= '<div id="repertoire2">Répertoire De Sortie<span id="repertoire2span"> </span><input type="text" name="repertoire2" value="'.$repertoire2.'" size=\"30\"></div>'.$n;
$affichage .= '<div id="separation1"></div>'.$n;
$affichage .= '<div id="couleur1">Couleur Avant<span id="couleur1span"> </span><select name="rouge1"><option value="'.rouge1.'">R'.rouge1.'</option>'.$option.'</select>'.$n;
$affichage .= '<select name="vert1"><option value="'.vert1.'">V'.vert1.'</option>'.$option.'</select>'.$n;
$affichage .= '<select name="bleu1"><option value="'.bleu1.'">B'.bleu1.'</option>'.$option.'</select></div'.$n;
$affichage .= '<div id="couleur2">Couleur Arrière<span id="couleur2span"> </span><select name="rouge2"><option value="'.rouge2.'">R'.rouge2.'</option>'.$option.'</select>'.$n;
$affichage .= '<select name="vert2"><option value="'.vert2.'">V'.vert2.'</option>'.$option.'</select>'.$n;
$affichage .= '<select name="bleu2"><option value="'.bleu2.'">B'.bleu2.'</option>'.$option.'</select></div'.$n;
$affichage .= '<div id="separation2"></div>'.$n;
$affichage .= '<div id="position"><font id="titreposition">Positionnement</font><br><input type="radio" name="posy" value="h"'.$posy_plus[0].'>Haut<input type="radio" name="posy" value="m"'.$posy_plus[1].'>Milieu<input type="radio" name="posy" value="b"'.$posy_plus[2].'>Bas<br>'.$n;
$affichage .= '<input type="radio" name="posx" value="g"'.$posx_plus[0].'>Gauche<input type="radio" name="posx" value="c"'.$posx_plus[1].'>Centre<input type="radio" name="posx" value="d"'.$posx_plus[2].'>Droite</div>'.$n;
$affichage .= '<div id="separation3"></div>'.$n;
$affichage .= '<div id="taille">Taille Texte<span id="taillespan"> </span><input type="text" name="taille" value="'.taille.'" size=\"10\"></div>'.$n;
$affichage .= '<div id="polices">Police Choisie<span id="policesspan"> </span><select name="police">'.$polices.'</select></div>'.$n;
$affichage .= '<div id="copyright">Texte Copyright<span id="copyrightspan"> </span><input type="text" name="copyright" value="'.copyright.'" size=\"30\"></div>'.$n;
$affichage .= '<div id="separation4"></div>'.$n;
$affichage .= '<div id="renommer"><input type="radio" name="renommer" value="oui"> Renommer <input type="radio" name="renommer" value="non" checked> Ne Pas Renommer</div>'.$n;
$affichage .= '<div id="renommer"><input type="text" name="nom" value="Nom à donner aux fichiers" size=\"30\"></div>'.$n;
$affichage .= '<div id="separation5"></div>'.$n;
$affichage .= '<div id="qualite">Qualité Image<span id="qualitespan"> </span><input type="text" name="qualite" value="80" size=\"10\"> %</div>'.$n;
$affichage .= '<div id="choix">Scanner <input type="radio" name="choix" value="scanner"> <input type="radio" name="choix" value="modifier"> Modifier</div>'.$n;
$affichage .= '<div id="valider"><input type="submit" value="Valider"></div>'.$n;
$affichage .= '</div></form>'.$n;
$affichage .= '<div id="explic"><blink>'.$ptiterreur.'</blink></div>'.$n;
}
echo $affichage;
?>
</body>
</html>
Conclusion :
Merci à ApaS pour sa fonction de mise en majuscule (pour les extensions) --> je trouve sa mieu :D
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.