L'éditeur JavaScript
Visiteur non-identifié | Identifiez-vous | Devenir membre
Code perdu ? | Combien de visiteurs sur votre site ?
Rechercher :
Page d'accueil
     Home Page

JavaScript
     Tous les scripts
     Proposer un script
     Recherche de script
     AJAX
     Cours de JavaScript
     Liste de discussion
     Forums

Services :
     CountUs
     myCircle
     ClickInText
     XooIt

Trucs et astuces :
     HTML / CSS
     PHP / MySQL
     Réferencement
     Graph / Présentation
     Toutes les astuces
     Ajouter un article

MailingList :
121713 abonnés

Annuaire webmaster :      Hebergement web
     Referencement
     Sites webmasters
     XHTML - CSS2
     PHP
     Affiliation - Pub
     FAI

     Annuaire webmaster

Ressources pour webmasters :
     Kit graphique
     Foire aux questions
     Les membres
     Devenir annonceur
     Faire un lien
     Contact

Partenaire :
     Compteur live
     Créer un forum
     Le PHP facile
     Comscripts
     Liens sponsorisés
     Blog
     Page Rank
     Gifs animés, f...
     Poésie et cita...
     Easy-script.com
     Web creation ...
     Je crée mon site
     Azote.org - no...
     Outils de créa...
     K i s s design
     Electroniq...
     L'histoire d'a...
     Les autres
     Votre site ici ?


Article posté par : mirage
Date de mise en ligne : 15-07-2004
Niveau : Moyen
>> Ajouter un article

Générez des miniatures d'images JPG avec PHP



A quoi ça sert ?

Vous avez une galerie d'images sur votre site ? Vous voulez afficher des petits aperçus sur votre site ? Grâce à ce petit script PHP, vous pourrez générer des miniatures d'images JPG !


Et le code ?

Créez un fichier miniature.php
<?php
// éditez les 2 variables ci-dessous en fonction du résultat souhaité :
$largeur = "100"; // correspond à la largeur de l'image souhaitée
$hauteur ="100"; // correspond à la hauteur de l'image souhaitée

// et voici la création de la miniature...
header("Content-Type: image/jpeg");
$img_in = imagecreatefromjpeg($pic);
$img_out = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
$t = imagejpeg($img_out);
echo $t;
?>



Et comment je fais après ?

Et bien, c'est très simple ! Votre image non réduite est située ici : http://www.votresite.com/img/monimage.jpg. Sur votre site, vous avez placé le code ci-dessous pour afficher l'image.
<img border="0" src="http://www.votresite.com/img/monimage.jpg">


Maintenant, pour afficher la miniature, remplacez ce code par celui-ci :
<img border="0" src="http://www.votresite.com/miniature.php?pic=http://www.votresite.com/img/monimage.jpg">



Résultat : vous avez votre miniature de créée !

Ce script fonctionne uniquement avec les images au format JPG



Annotations des visiteurs :

De Nadawave - le 19-08-2009

Besoin d' aide

comment faire pour lire une image qui contient un espace ?
Exemple : mon image.jpg

merci
De jaybeegamer - le 16-08-2008

Bonjour,
Et c'est possible de créer un miniature si l'entrée est une url par exemple ? c'est à dire faire un minature d'une page web par exemple ?
De strex - le 10-11-2007

slt atous
ce code ca marche pas .
svp verifier!
<? if(isset($_GET["im"])) {
//mettre ici les valeurs par défaut de limitation de taille
$defaut_largeur_max=800;
$defaut_hauteur_max=600;
$size_im=getimagesize($_GET["im"]);
if(isset($_GET["w"]) && ($_GET["w"]+0)) $largeur_max = $_GET["w"]; else $largeur_max = $defaut_largeur_max;
if(isset($_GET["h"]) && ($_GET["h"]+0)) $hauteur_max = $_GET["h"]; else $hauteur_max = $defaut_hauteur_max;
if($size_im[0]>=$size_im[1] && $size_im[0]>$largeur_max) {
$largeur=$largeur_max;
$hauteur=ceil(($largeur/$size_im[0])*$size_im[1]);
} elseif($size_im[1]>=$size_im[0] && $size_im[1]>$hauteur_max) {
$hauteur=$hauteur_max;
$largeur=ceil(($hauteur/$size_im[1])*$size_im[0]);
} else {
$largeur=$size_im[0];
$hauteur=$size_im[1];
}
header("Content-Type: image/jpeg");
$img_in = imagecreatefromjpeg($_GET["im"]);
$img_out = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
$t = imagejpeg($img_out);
echo $t; } ?>
De jobeau - le 13-12-2006

Salt ça marche mais si je devais créer une image à partir d'une vidéo?
QUEL SERAIT LE CODE ?
De electrochoc - le 15-10-2006

J'ai amélioré le code pour ne pas déformer l'image (on conserve les proportion)
Il suffit de définir la taille maximale que doit avoir l'image, et si elle est inférieure, il n'y a pas de modification !
Voici le code :
<? if(isset($_GET["im"])) {
//mettre ici les valeurs par défaut de limitation de taille
$defaut_largeur_max=800;
$defaut_hauteur_max=600;
$size_im=getimagesize($_GET["im"]);
if(isset($_GET["w"]) && ($_GET["w"]+0)) $largeur_max = $_GET["w"]; else $largeur_max = $defaut_largeur_max;
if(isset($_GET["h"]) && ($_GET["h"]+0)) $hauteur_max = $_GET["h"]; else $hauteur_max = $defaut_hauteur_max;
if($size_im[0]>=$size_im[1] && $size_im[0]>$largeur_max) {
$largeur=$largeur_max;
$hauteur=ceil(($largeur/$size_im[0])*$size_im[1]);
} elseif($size_im[1]>=$size_im[0] && $size_im[1]>$hauteur_max) {
$hauteur=$hauteur_max;
$largeur=ceil(($hauteur/$size_im[1])*$size_im[0]);
} else {
$largeur=$size_im[0];
$hauteur=$size_im[1];
}
header("Content-Type: image/jpeg");
$img_in = imagecreatefromjpeg($_GET["im"]);
$img_out = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
$t = imagejpeg($img_out);
echo $t; } ?>

Note : il est possible de redéfinir les limites de t
De PhilihP - le 15-09-2006

[citer]Ce script fonctionne uniquement avec les images au format JPG[/citer]
Puisqu'il s'agit de "Jpeg"
pourquoi ne pas utiliser :
-les fonction de PHP qui sont liée à ce format,
+
-les renseignements inclus dans l'entête de ces fichiers.
Par ex. dans un fichier thumbnail.php:
<?php
if (($imgJpeg = exif_thumbnail('./maphoto.jpg')) === false)
print "No Thumbnail!";
else
echo ($imgJpeg);?>

Puis dans un fichier affiche.html:
<html><head><body>
<img src="thumbnail.php" border=0>
</html></head></body>

Il semblerait (voir sur des grosses quantité d'image) que se soit la solution la plus rapide.
De TsukasaFam - le 26-04-2006

Attention aux ressources serveur. Si vous avez possibilité enregistrez plutot le fichier sur le serveur (à partir d'une admin par exemple)...
De seifer_tidus - le 08-10-2005

Bonjour,

il faudrai revoir ce script il possède des trous de sécurité provenant des variables global ...

ca pourrai être embettant...
De aquadid - le 11-07-2005

Bonjour,
qq connait il le moyen de créer (si c'est possible) des vignettes .jpg à partir de fichiers pdf

merci
De Liko - le 06-01-2005

Pour prendre en charge gif, jpeg et png, rempalcer la ligne :

$img_in = imagecreatefromjpeg($pic);


Par

list($width, $height, $type, $attr) = getimagesize("$pic");

if($type == "1")
{
$img_in = imagecreatefromgif($pic);
}

if($type == "2")
{
$img_in = imagecreatefromjpeg($pic);
}

if($type == "3")
{
$img_in = imagecreatefrompng($pic);
}
De kinglouis - le 11-09-2004

Pour redimensionner en gardant les proportions je conseille ce script :

http://www.phpinfo.net/sources/sources105.html

Attention toutefois : l'image entiere est chargée , ce qui risque de rendre la page tres lourde si vous affichez beaucoup de photos par exemple !
De Natim - le 29-08-2004

http://phpcs.com/code.aspx?ID=25693
Ici, le code garde les proportions
De 8fanfan8 - le 17-08-2004

c pas indispensable si register_globals=on; dans le php.ini
De trakiss - le 14-08-2004

$img_in = imagecreatefromjpeg($_GET['pic']);


Ca me parait quand même mieu...
De Xenon_54 - le 15-07-2004

Attention, l'image générée ne sera pas proportionnelle à l'image d'origine.
De krucial - le 15-07-2004

Vous pouvez aussi créer des jpg miniatures depuis d'autres formats, comme le gif, le png. Il vous suffit de remplacer :
$img_in = imagecreatefromjpeg($pic);

Par le format de l'image a resizer, par exemple :
$img_in = imagecreatefrompng($pic);

Le script transformera alors une grande image png en vignette jpeg (si les librairies correspondantes sont installées sur le serveur).
De krucial - le 15-07-2004

Petite remarque, il faut que toutes les librairies appropriées soient installées sur le serveur (GD, jpeg).

>> Poster une annotation sur cette astuce

Retour à la liste des trucs et astuces





compteur gratuit
actuellement en ligne

    PUBLICITE



     ANNUAIRE WEBMAST.
Net@Vous
6 Euros par an pour 40 Mo d'espace disque. Vraiment pas cher.
http://www.netavous.com/
Cat : Hebergement web
Voir l'annuaire webmaster


     LES SCRIPTS :
78 à éditer
68 à copier/coller
247 des membres
2580 sur le web
>> Tous les scripts

     LES MEMBRES :
65912 membres
4797 comptes CountUs
1839 comptes myCircle

     LES FORUMS :
14 forums
40353 topics
191677 messages
>> Les forums

    SONDAGE

Vous avez un blog ou site classique ?
Un blog
Un site classique
Les deux !
La mini-astuce "Hebergement / Linux" du jour par caaptusss
Lorsque vous choisissez votre hébergment, ne prenez pas trop large ! 150 Mo suffisent largement pour un site qui n'a que quelques dizaines de pages ! Vous pourrez alors agrandir votre espace au fur et à mesure que vous en aurez besoin !
Proposer votre mini-astuce | Archives des mini-astuces
© 1999-2012 EJS - Tous droits réservés | CNIL N° 844440 | 04/02/2012 03:24:25 | Design by | Gen. en 0.494 sec.