[script] Création de vignette jpeg ou png
31 messages • Page 1 sur 3 • 1, 2, 3
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[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;
}
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 passionné

- Messages: 691
- Inscription: Lun Avr 11, 2005 10:37
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
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
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: 3577
- Inscription: Mar Fév 10, 2004 16:40
Le brevet du GIF est tombé dans le domaine public depuis quelques temps déjà.
-

La Chaise sauvage - WRInaute passionné

- Messages: 691
- Inscription: Lun Avr 11, 2005 10:37
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
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
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
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 passionné

- Messages: 691
- Inscription: Lun Avr 11, 2005 10:37
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
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 passionné

- Messages: 691
- Inscription: Lun Avr 11, 2005 10:37
check tes messages privés
31 messages • Page 1 sur 3 • 1, 2, 3
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Optimiser les images : l'attribut ALT de la balise IMG
- Ajouter un Gadget Google sur son site
- Les albums web Picasa passent à 1 Go de stockage
- Concours de création de Gadgets pour Live.com
- Le positionnement d'annonces AdSense : explications
- MyMaps : des cartes personnalisées avec Google Maps
- Photos satellite des incendies en Grèce dans Google Earth
- Google Desktop pour Mac OS X
- Comment Google indexe et classe les documents
- Google vous recommande des sites à visiter
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





le forum