Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2006, 21h18   #1
Débutant
 
Inscription : mai 2002
Messages : 15
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 15
Points : 2
Points : 2
Envoyer un message via AIM à DocCoinCoin Envoyer un message via MSN à DocCoinCoin
Par défaut [ImageMagick] Redimensionnement d'image

Bonsoir,

J'ai un petit soucis sur le redimensionnement de mon image.

J'envoi mon image par un formulaire mais quand je souhaite la redimenssioner il ne la retouche pas.

Je ne sais pas trop ou ca bloque ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
 
$tmp = $_FILES['fichier']['tmp_name'];
 
[...]
 
$name = "[64x64] ".$nomart.' - '.$alb.'.jpg';
 
[...]
 
 if (isset($tmp)) // Si on envoi l'image par un fichier 
 
        {
 
        $content_dir = './cdimg/'.$user.'/';
 
         if( !is_uploaded_file($tmp) )
    {
        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') )
    {
        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, $content_dir . $name_file) )
    {
       exit("Impossible de copier le fichier dans $content_dir");
    }
 
    $urlemt = $content_dir.$name_file;
 
     $size = getimagesize($urlemt);
     $thumb = imagecreatetruecolor(64, 64);
     $source = imagecreatefromjpeg(trim($content_dir.$name_file));
 
     imagecopyresampled  ($thumb,$source,0,0,0,0,64,64,$size[0],$size[1]);
 
     imagejpeg($thumb,$name);
 
 
        }
Merci à vous
DocCoinCoin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 15h47   #2
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Salut

J'avais fais une fonction de redimensionnement si sa t'intéresse:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
private function resize($taille_maximum,$source_img,$dest,$src_srv,$name,$w,$h)
   { // début de la fonction resize
      // on test la taille de l'image
      if($w <= $taille_maximum && $h <= $taille_maximum)
         {
         // si le fichier a déjà la bonne dimension ou est plus petit que la taille max on fait une simple copie
         copy($src_srv,$dest.$name);		
         }
         else
         {
         // défini le type de l'image
         //header ("Content-type: image/jpeg");
         // crée une image par rapport à l'image de base
         $source = imagecreatefromjpeg($src_srv);
         // si l'image est plus large que haute
         if($w >$h)
         {
            // on crée une image vide avec les dimensions de l'image de destination
            $destination = imagecreatetruecolor($taille_maximum,($taille_maximum/(imagesx($source))*imagesy($source)));
         }
         else
         {
            // on crée une image vide avec les dimensions de l'image de destination mais dans l'autre sens (plus haute que large)
           $destination = imagecreatetruecolor(($taille_maximum/((imagesy($source)))*imagesx($source)), $taille_maximum);
         }
            // redimesionne l'image par rapport à la nouvelle image
            imagecopyresized($destination, $source, 0, 0, 0, 0, imagesx($destination), imagesy($destination), imagesx($source), imagesy($source));
            // copie la nouvelle image dans le dossier normal
            imagejpeg($destination,$dest.$name);
         }
   }
J'espère que sa pourra t'aider!
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h39.


 
 
 
 
Partenaires

Hébergement Web