[script] Création de vignette jpeg ou png
31 messages
• Page 1 sur 3 • 1, 2, 3
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
[script] Création de vignette jpeg ou png
Je vous laisse un petit script que je me suis adapté pour mes besoins personnel.
Il permet de créer une vignette à partir d'une image originale.
La vignette est enregistré sur le serveur et ne peut être supérieure à la taille de l'original.
Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).
Vous me direz ainsi si je peux l'optimiser un peu

Il permet de créer une vignette à partir d'une image originale.
La vignette est enregistré sur le serveur et ne peut être supérieure à la taille de l'original.
Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).
Vous me direz ainsi si je peux l'optimiser un peu
- Code: Tout sélectionner
/**********************************************************************
- vignette($file, $maxWidth = 450, $maxHeight = 350)
- Création d'une vignette à partir d'une image ($file)
- Les extension prise en compte sont jpg et png (le gif est remplacé par le png ; le gif animé n'est jamais redimensionné)
- Dernière version : 27/11/2006
* $file : chemin vers le fichier image à redimensionner
* $maxWidth : largeur maximum que dois faire la miniature (450 par défaut)
* $maxHeight : Hauteur maximum que dois faire l'image (350 par défaut)
**********************************************************************/
function vignette($file, $maxWidth = 450, $maxHeight = 350){
// Vérification des erreurs dans les paramètres de la fonction
//============================================================
if(!file_exists($file)){
// Si le fichier passé en paramètre n'existe pas
return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.';
}
elseif(empty($file)){
// Si le fichier n'a pas été indiqué
return 'Nom du fichier non renseigné.';
}
elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){
// Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
return 'Valeur de la largeur incorrecte.';
}
elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < 0){
// Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
return 'Valeur de la hauteur incorrecte.';
}
//============================================================
$fichier = realpath($file); // Chemin canonique absolu de l'image
$dir = dirname($file).'/'; // Chemin du dossier contenant l'image
$infoImg = getimagesize($fichier); // Récupération des infos de l'image
$imgWidth = $infoImg[0]; // Largeur de l'image
$imgHeight = $infoImg[1]; // Hauteur de l'image
// Initialisation des variables selon l'extension de l'image
switch($infoImg[2]){
case 2:
$img = imagecreatefromjpeg($fichier); // Création d'une nouvelle image jpeg à partir du fichier
$extImg = '.jpg'; // Extension de l'image
break;
case 3:
$img = imagecreatefrompng($fichier); // Création d'une nouvelle image png à partir du fichier
$extImg = '.png';
}
// Initialisation des dimensions de la vignette si elles sont supérieures à l'original
if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
$whFact = $maxWidth/$maxHeight; // Facteur largeur/hauteur des dimensions max de la vignette
$imgWhFact = $imgWidth/$imgHeight; // Facteur largeur/hauteur de l'original
// Fixe les dimensions de la vignette
if($whFact < $imgWhFact){
// Si largeur déterminante
$thumbWidth = $maxWidth;
$thumbHeight = $thumbWidth / $imgWhFact;
} else {
// Si hauteur déterminante
$thumbHeight = $maxHeight;
$thumbWidth = $thumbHeight * $imgWhFact;
}
$imgThumb = imagecreatetruecolor($thumbWidth, $thumbHeight); // Création de la vignette
imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insère l'image de base redimensionnée
$fileName = basename($file, $extImg); // Nom du fichier sans son extension
$imgThumbName = $dir.$fileName.'-min'.$extImg; // Chemin complet du fichier de la vignette
//Création du fichier de la vignette
$fp = fopen($imgThumbName, "w");
fclose($fp);
// Renvoi la vignette créée
switch($infoImg[2]){
case 2:
imagejpeg($imgThumb, $imgThumbName, 50); // Renvoi d'une image jpeg avec une qualité de 50
break;
case 3:
imagepng($imgThumb, $imgThumbName);
}
return $imgThumbName;
}
-

apiphoto - WRInaute occasionnel

- Messages: 412
- Inscription: 29 Avr 2006
e-kiwi a écrit:Bonjour,
si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)
Bonjour,
Oui c'est un script qui m'intéresse.
Pour l'instant je travail en amont avec Photoshop mais j'ai un site en préparation pour lequel cela me serait très utile.
Merci
Et je testerai le script précédent aussi.
Merci
- La Chaise sauvage
- WRInaute impliqué

- Messages: 717
- Inscription: 11 Avr 2005
Re: [script] Création de vignette jpeg ou png
medium69 a écrit:Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).
http://gnu.fyxm.net/philosophy/gif.fr.html#venuenote
Le brevet Unisys a expiré le 20 juin 2003 aux États-Unis; en Europe, le 18 juin 2004; au Japon, le 20 juin 2004 et au Canada, le 7 juillet 2004. Le brevet américain de IBM a expiré le 11 août 2006. Le Software Freedom Law Center dit qu'après le 1er octobre 2006, il n'y aura plus de revendication de brevet significative pour interférer avec l'emploi du format GIF.
.. et imagecreatefromgif marche très bien
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
yep
moi j'en ai fait un qui met à jour un dossier mirroir
tu lances le script et il update le dossier à l'identique et en passant efface les vignettes dont les images ont disparues
je le publierai quand j'aurai fini mon site et surtout quand ovh voudra bien me livrer le dedié que j'ai commandé et payé depuis plus de deux mois
rog
moi j'en ai fait un qui met à jour un dossier mirroir
tu lances le script et il update le dossier à l'identique et en passant efface les vignettes dont les images ont disparues
je le publierai quand j'aurai fini mon site et surtout quand ovh voudra bien me livrer le dedié que j'ai commandé et payé depuis plus de deux mois
rog
- Tilt
- WRInaute impliqué

- Messages: 858
- Inscription: 26 Mar 2005
Re: [script] Création de vignette jpeg ou png
medium69 a écrit:Vous me direz ainsi si je peux l'optimiser un peu
Oui, c'est le script de la doc php, à ceci près que la doc conseille de remplacer imagecopyresized par imagecreatetruecolor (http://www.php.net/imagecopyresized).
-

ecocentric - WRInaute accro

- Messages: 3602
- Inscription: 10 Fév 2004
Le brevet du GIF est tombé dans le domaine public depuis quelques temps déjà.
- La Chaise sauvage
- WRInaute impliqué

- Messages: 717
- Inscription: 11 Avr 2005
Re: [script] Création de vignette jpeg ou png
Tilt a écrit:medium69 a écrit:Vous me direz ainsi si je peux l'optimiser un peu
Oui, c'est le script de la doc php, à ceci près que la doc conseille de remplacer imagecopyresized par imagecreatetruecolor (http://www.php.net/imagecopyresized).
hum nan. imagecopyresized est remplacé par imagecopyresampled
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: [script] Création de vignette jpeg ou png
La Chaise sauvage a écrit:medium69 a écrit:Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).
http://gnu.fyxm.net/philosophy/gif.fr.html#venuenoteLe brevet Unisys a expiré le 20 juin 2003 aux États-Unis; en Europe, le 18 juin 2004; au Japon, le 20 juin 2004 et au Canada, le 7 juillet 2004. Le brevet américain de IBM a expiré le 11 août 2006. Le Software Freedom Law Center dit qu'après le 1er octobre 2006, il n'y aura plus de revendication de brevet significative pour interférer avec l'emploi du format GIF.
.. et imagecreatefromgif marche très bien
Je n'ai jamais prétendu que imagecreatefromgif ne marchait pas.
Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
e-kiwi a écrit:Bonjour,
si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)
C'est une partie que je n'ai pas encore étudiée, mais qui m'intéresse.
Si tu peux nous donner le script
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: [script] Création de vignette jpeg ou png
Tilt a écrit:medium69 a écrit:Vous me direz ainsi si je peux l'optimiser un peu
Oui, c'est le script de la doc php, à ceci près que la doc conseille de remplacer imagecopyresized par imagecreatetruecolor (http://www.php.net/imagecopyresized).
Il est loin d'être identique il me semble
- La Chaise sauvage
- WRInaute impliqué

- Messages: 717
- Inscription: 11 Avr 2005
Re: [script] Création de vignette jpeg ou png
medium69 a écrit:On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.
Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution
je suis en train de bosser sur la question justement... mais ce n'est pas vraiment montrable en l'état... à suivre
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: [script] Création de vignette jpeg ou png
La Chaise sauvage a écrit:medium69 a écrit:On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.
Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution
je suis en train de bosser sur la question justement... mais ce n'est pas vraiment montrable en l'état... à suivre
Retiens mon pseusdo car si tu y arrives cela m'intéresse au plus au point
- La Chaise sauvage
- WRInaute impliqué

- Messages: 717
- Inscription: 11 Avr 2005
check tes messages privés
31 messages
• Page 1 sur 3 • 1, 2, 3
Lectures recommandées sur ce thème :
- Outils de compression d'images PNG/JPEG à la volée
- création et découpage d'une vignette
- script vignette qui ne marche pas
- script de creation de webblog
- Création script gestion de site complet
- Création script annuaire Open Source
- [Script PHP] Création d'annuaires personnalisés
- Creation de sites avec script open source
- Script pour la création automatique d'un forum
- [Script d'upload sur votre site] Ma création
- Optimiser son référencement sur Wikio - 10-04-2006
- API Google Maps en Flash / Flex - 15-05-2008
- Référencement des images : l'attribut ALT de la balise IMG - 04-08-2008
- Les albums web Picasa passent à 1 Go de stockage - 08-03-2007
- Google Chrome dépasse Safari aux USA - 29-06-2010
- Photos satellite des incendies en Grèce dans Google Earth - 30-08-2007
- Ajouter un Gadget Google sur son site - 04-10-2006
- Google Desktop pour Mac OS X - 05-04-2007
Consultez la description détaillée des produits ou services de Google suivants : Google Images, Google Website Optimizer
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

