IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[ImageMagick] Redimentionner une image sans l'enregistrer


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 53
    Points : 40
    Points
    40
    Par défaut [ImageMagick] Redimentionner une image sans l'enregistrer
    bonjour,

    Voila j'ai fais un script qui me permet de redimentionner une image et de l'enregistrer dans un dossier, jusque la pas de problème ..

    En suite je réutilise ce script pour créé des vignettes de cette image mais j'appel cette fonction que lorsque l'image est affiché sur une page. Le problème c'est qu'il me renvoit quelque chose de ce genre :

    ê”ú0¬}G"dAÔ“I»"¢®ËhñAž óœÔÖjÓJÒ2ã çP¼REjˆ³zUÅ’ÅÄyÞÈq¥rUvV:o¡O»#}p©Ý.Uô“7 ïMŽÎ[ˆþkoº ©æ±µ4Ï1œcæº(NÊ̙ÛU¹Âñ„Ò"?Þ,S[kÆ‘Ù³JÝ"ŠÑa •‚‚zuéùÖwÔ´®®z
    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function createImgVigniette($fichier){
     
    	$ratioImage			= 150;
    	$imageSrc			= imagecreatefromjpeg($fichier);
    	$size 				= getimagesize($fichier);
     
    	if ($size[0] > $size[1]) {	
    		$image			= imagecreatetruecolor(round(($ratioImage/$size[1])*$size[0]), $ratioImage);
    		imagecopyresampled($image, $imageSrc, 0, 0, 0, 0, round(($ratioImage/$size[1])*$size[0]),$ratioImage, $size[0], $size[1]);
    	}
    	else {	
    		$image			= imagecreatetruecolor($ratioImage, round(($ratioImage/$size[0])*$size[1]));
    		imagecopyresampled($image, $imageSrc, 0, 0, 0, 0, $ratioImage, round($size[1]*($ratioImage/$size[0])), $size[0], $size[1]);
    	}
     
    	$vignette = imagejpeg($image,'',50);
    	return $vignette;
    }
    et j'appel cette fonction de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $adrImage = '/photos/'.$row->idSection.'_'.$row->idAlbum.'/'.$row->image;
    	echo'<img src="'.createImgVigniette($adrImage).'" alt="'.$row->titleAlbum.'" />';
    Comment puis je renvoyer une image plustot que du texte sans devoir enregistrer l'image dans un dossier ?

    Merci d'avance ...

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2003
    Messages : 217
    Points : 242
    Points
    242
    Par défaut
    Citation Envoyé par gunth
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $adrImage = '/photos/'.$row->idSection.'_'.$row->idAlbum.'/'.$row->image;
    	echo'<img src="'.createImgVigniette($adrImage).'" alt="'.$row->titleAlbum.'" />';
    Je ne veux pas te décevoir mais ce code est complètement faux, car tu n'utilises pas correctement du tout les balises img.
    La balise img demande en attribut src le lien de l'image à afficher, tu lui fournis le code de l'image lui même.
    Pour que cela fonctionne correctement, il faut que tu lui fournisses une url, celle de l'image redimensionnée, à savoir ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="image.php?src=$adr_Image" />
    (tu adapteras pour ton script), et dans le fichier image.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $src = './chemin/'.basename(isset($_GET['src'])?$_GET['src']:''); //On suppose que les images sont dans ./chemin/, par sécurité...
    if( file_exists($src) )
    {
    header('Content-type: image/jpeg');
    echo createImgVigniette($src);
    }
    ?>
    Et normalement ca devrait marcher...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    Un grand merci ..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregistrer une image sans perte
    Par dhekrasousou dans le forum Images
    Réponses: 3
    Dernier message: 04/05/2011, 20h17
  2. Réponses: 3
    Dernier message: 19/06/2008, 15h45
  3. [ImageMagick] Redimensionner une image avant de l'enregistrer
    Par julien.63 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/05/2006, 21h01
  4. [ImageMagick] Tronquer une image
    Par tomtoad dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 08/01/2005, 21h12
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo