Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
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 07/04/2008, 10h09   #1
Membre éclairé
 
Avatar de mdr_cedrick
 
Développeur multimédia
Inscription : janvier 2008
Messages : 375
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : janvier 2008
Messages : 375
Points : 305
Points : 305
Par défaut créer une miniature et l'afficher

bonjour à tous

je recherche quelque chose qui a l'air assez simple pourtant je ne trouve rien de vraiment intéressant à ce sujet
je fais dans une boucle un affichage d'image qui viennent d'un site de mon boulot
auparavant je regardais si l'image était existante
Code :
1
2
3
4
5
6
7
8
9
10
11
if ($ewp->url_exists("http://www.xxx.com/xxx/pdt/".$o->id.".jpg"))
		{
			$tailles			=		getImageSize("http://www.xxx.com/xxx/pdt/".$o->id.".jpg");
 
			if ($tailles[0] > $tailles[1])//en longueur ou carré
				$size	=	"width='100'";
			else//en hauteur
				$size	=	"height='95'";
 
			$image		=	'						<img '.$size.' src="http://www.xxx.com/xxxx/pdt/'.$o->id.'.jpg" alt="'.$o->libelle.'" border="0" /></a>';
		}
or ses images vont servir sur un 2e site et je ne veux pas que les gens voient la source avec
Code :
<img '.$size.' src="http://www.xxx.com/xxxx/pdt/'.$o->id.'.jpg" alt="'.$o->libelle.'" border="0" />
mais plutot du genre
Code :
<img src="monImage.php?id=5" />
pour celà je cherche donc dans ma page monImage.php à récupérer l'image qui m'intéresse, à la redimensionner (si possible autrement qu'en changeant le width et le height, comme ca la qualité sera meilleure) et à l'afficher dans la foulée, sans la stocker dans un quelconque dossier. C'est juste de l'affichage que je veux

Si vous avez une piste je suis preneur

Merci d'avance
mdr_cedrick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 06h25   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Pour afficher l'image via un script PHP :


Code :
1
2
3
4
header('Content-type: image/jpg');
header('Content-Disposition: attachment;filename="nom_du_fichier_pour_telechargement.jpg"');
header('Cache-Control: no-cache, must-revalidate'); 
readfile('url_de_mon_mage.jpg');
seul le 1er header est obligatoire.

Pour le redimensionnement, un copier coller d'un p'tit script à moi qui redimensionne de façon symétrique en ajustant la taille de la vignette sur la valeur maximale de $t_width ou $t_height :

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
function ImageResize($pImage, $t_width, $t_height) 
{
        $iCanvas = @ImageCreateTrueColor($t_width, $t_height);
        $s_width = ImageSX($pImage);
        $s_height = ImageSY($pImage);
        ImageCopyResampled($iCanvas, $pImage, 0, 0, 0, 0, $t_width, $t_height, $s_width, $s_height);
        return $iCanvas;
}
 
function Vignette($source, $destination, $x = 100, $y = 100) // réduction sans dénaturation de l'image
{
        $img = imagecreatefromjpeg($source);
		if(!$img) return false;
        $xx = ImageSX($img);
        $yy = ImageSY($img);
        if($xx / $yy > $x / $y)
        { // réduction sur X
                $f = $y / $xx; 
                $rX = $xx * $f;
                $rY = $yy * $f;
        }
        else
        { // réduction sur Y
                $f = $x / $yy; 
                $rX = $xx * $f;
                $rY = $yy * $f;        
        }
        imagejpeg(ImageResize($img, $rX, $rY), $destination);
}
Par contre, j'avais une version qui avait un bug, j'espere que celle là est la version débuggé, j'ai pas vérifié...
__________________
Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !
gloubi 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 19h15.


 
 
 
 
Partenaires

Hébergement Web