Problème d'upload et modification d'images
Posté : 13 mars 2008, 20:48
J'ai réalisé un script me permetant de placer une image dans un dossier et ensuite directement la redimensionner par rapport a son format (portrait ou paysage) et y placer le copyright.
Et bien il fonctionne mais a partir d'une certainne taille il upload les images mais ne les redimensionnement plus.
Si quelqu'un a une solution ou au moins une explication parceque je sèche depuis déjà un bout de temps la dessys.
Merci
Et bien il fonctionne mais a partir d'une certainne taille il upload les images mais ne les redimensionnement plus.
Si quelqu'un a une solution ou au moins une explication parceque je sèche depuis déjà un bout de temps la dessys.
Merci
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = "images/"; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') )
{
exit("Le fichier n'est pas une image");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "<p>Le fichier a bien été uploadé</p>";
// ne veut pas modifier si plus de 1512 px de largeur et 944 de hauteur
///a modifier///
$tailleMaxDemande = 600; // taille maximum que l'on veut soite en hauteur ou en largeur suivent le format (portrait/paysage)
$fichierSource = "$content_dir$name_file"; // ou est la photo a modifier
$fichierDestination = "$content_dir$name_file"; //ou on veut la pacer
$texteCopyright = "copyright"; //texte du copyright
// couleur du texte de copyright en RVB
$rouge = 230;
$vert = 224;
$bleu = 206;
//ne pas modifier//
$source = imagecreatefromjpeg($fichierSource);
$rapportImage = (imagesx($source) / imagesy($source));
if ($rapportImage < 1 ) // calcul pour verifier si l'image est orizontal ou vertical
{
$rapport = ((imagesx($source) / imagesy($source)) * $tailleMaxDemande);// calcul pour que l'image fasse la taille max definie demandé de hauteur
$destination = imagecreatetruecolor($rapport, $tailleMaxDemande);
}
else
{
$rapport = ((imagesy($source) / imagesx($source)) * $tailleMaxDemande); // calcul pour que l'image fasse la taille max definie demandé de largeur
$destination = imagecreatetruecolor($tailleMaxDemande, $rapport);
}
// 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 crée la photo
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
// on rajoute le copyright
$couleurTexte = imagecolorallocate($destination, $rouge, $vert, $bleu);
imagestring($destination, 4, 5, 5, "$texteCopyright", $couleurTexte);
// On enregistre l'image
imagejpeg($destination, $fichierDestination);
}else {echo "tu n'as pas encore envoyé de photos";}
?>