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 26/11/2006, 00h56   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 51
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 51
Points : 11
Points : 11
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 :

Citation:
ê”ú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 :
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 :
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 ...
gunth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 02h28   #2
Membre confirmé
 
Homme Emmanuel Thierry
Ingénieur systèmes et réseaux
Inscription : décembre 2003
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Thierry
Âge : 24
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 : 216
Points : 219
Points : 219
Citation:
Envoyé par gunth
Code :
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 :
<img src="image.php?src=$adr_Image" />
(tu adapteras pour ton script), et dans le fichier image.php :
Code :
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...
Sékiltoyai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2006, 13h46   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 51
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 51
Points : 11
Points : 11
Un grand merci ..
gunth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h31.


 
 
 
 
Partenaires

Hébergement Web