resize image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : resize image

par Invité » 02 juin 2005, 16:09

merci bien je vais tester ca. Encore une petite question, l'image qui va etre redimensionnée est une image temporaire uploadée faut t'il que je remplace "monimage.jpg" par ma variable $imagetemporaire et puis je mettre la fonction a n'importe quel endroit dans le script ?

par Cyrano » 02 juin 2005, 16:01

En fin de compte, qu'est-ce qui ne fonctionne pas ?

À première vue, il n'y a rien à signaler de particulier dans ce code sauf peut-être une chose, voici la fonction et une modif sur la balise img:
<?
function redimage($img_src,$dst_w,$dst_h)
{
    // Lit les dimensions de l'image
    $size = GetImageSize($img_src);
    $src_w = $size[0]; $src_h = $size[1];
    // Teste les dimensions tenant dans la zone
    $test_h = round(($dst_w / $src_w) * $src_h);
    $test_w = round(($dst_h / $src_h) * $src_w);
    // Si Height final non précisé (0)
    if(!$dst_h)
    {
        $dst_h = $test_h;
    }
    // Sinon si Width final non précisé (0)
    elseif(!$dst_w)
    {
        $dst_w = $test_w;
    }
    // Sinon teste quel redimensionnement tient dans la zone
    elseif($test_h>$dst_h)
    {
        $dst_w = $test_w;
    }
    else
    {
        $dst_h = $test_h;
    }
    // Affiche les dimensions optimales
    return "WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
?>
<IMG SRC="monimage.jpg" <?php echo(redimage("monimage.jpg",XX,YY)); ?>>
Ce que j'ai modifié devrait être facile à comprendre.

En passant, quand tu mets du code, utilise les boutons [ PHP ] ou [ Code ] quand tu mets un bout de code source, ce sera plus facile à lire pour tout le monde.

resize image

par germinos » 02 juin 2005, 15:50

Bonjour a tous,
Je suis en train de réaliser un site en flash incluant des diaporamas faisant appel à des images contenues dans un repertoire dynamiquement.
Je dois y ajouter une page php permettant d'intervertir les images contenues dans le repertoire, ce qui est déjà fait. Mais maintenant il faut que j'y ajoute une fonction permettant le redimensionnement automatique des images nouvellement uploadée à une taille fixe. Le problème est que je ne connais absolument rien a php, j'ai trouvé sur le net une fonction permettant de le faire (enfin je pense) mais je ne sais pas comment l'inclure dans le reste de ma page. Serait-il possible d'avoir un petit coup de main et une explication par la meme occasion. Merci d'avance. Voici les code de la page :

<?php

// Récupération du dossier dans lequel le fichier sera uploadé //
$DESTINATION_FOLDER = "travaux_courants/photos/"; //
// Taille maximale de fichier, valeur en bytes //
$MAX_SIZE = 5000000; //
// Récupération de l'url de retour //
$RETURN_LINK = $_SERVER['HTTP_REFERER']; //
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".jpg"); //
// ############################################################ //

// Fonction permettant de créer un lien de retour automatique

function createReturnLink(){
global $RETURN_LINK;
echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT)){
return true;
}else{
return false;
}
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.

if(!empty($_FILES["file"]["name"])){

// Nom du fichier choisi:
$nomFichier = $_FILES["file"]["name"] ;
// Nom temporaire sur le serveur:
$nomTemporaire = $_FILES["file"]["tmp_name"] ;
// Type du fichier choisi:
$typeFichier = $_FILES["file"]["type"] ;
// Poids en octets du fichier choisit:
$poidsFichier = $_FILES["file"]["size"] ;
// Code de l'erreur si jamais il y en a une:
$codeErreur = $_FILES["file"]["error"] ;
// Extension du fichier
$extension = strrchr($nomFichier, ".");

// Si le poids du fichier est de 0 bytes, le fichier est
// invalide (ou le chemin incorrect) => message d'erreur
// sinon, le script continue.
if($poidsFichier <> 0){
// Si la taille du fichier est supérieure à la taille
// maximum spécifiée => message d'erreur
if($poidsFichier < $MAX_SIZE){
// On teste ensuite si le fichier a une extension autorisée
if(isExtAuthorized($extension)){
// Ensuite, on copie le fichier uploadé ou bon nous semble.
$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
if($uploadOk){
echo("L'upload a réussi !<br><br>");
echo(createReturnLink());
}else{
echo("L'upload a échoué !<br><br>");
echo(createReturnLink());
}
}else{
echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
echo (createReturnLink()."<br>");
}
}else{
$tailleKo = $MAX_SIZE / 1000;
echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
echo (createReturnLink()."<br>");
}
}else{
echo("Le fichier choisi est invalide !<br>");
echo (createReturnLink()."<br>");
}
}else{
echo("Vous n'avez pas choisi de fichier !<br>");
echo (createReturnLink()."<br>");
}

?>

et voici la fonction que j'ai trouvé sur le net :

<?
function redimage($img_src,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($dst_w / $src_w) * $src_h);
$test_w = round(($dst_h / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$dst_h) $dst_h = $test_h;
// Sinon si Width final non précisé (0)
elseif(!$dst_w) $dst_w = $test_w;
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$dst_h) $dst_w = $test_w;
else $dst_h = $test_h;

// Affiche les dimensions optimales
echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
?>

<IMG SRC="monimage.jpg" <?redimage("monimage.jpg",XX,YY)?>>