Détection de la taille d'une image [RESOLU]
6 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Si tu souhaite redimentionner une image, en définissant une largeur ou hauteur max, et en gardant les proportions, voici une petite fonction:
Et le script qui vas avec (je ne fais pas le détails, ce script propose de redmentionner une image selon trois gabarits de taille max...
- Code: Tout sélectionner
function resize($image , $largeur_max , $hauteur_max , $source , $destination , $prefixe){
if (!file_exists($source.$image)) {
echo "L'image $source$image n'existe pas";
exit;
}
// On verifie que l'extention du fichier est bien une image jpg, jpeg ou gif
$ext=strtolower(strrchr($image, '.'));
if ($ext!=".jpg" AND $ext!=".jpeg" AND $ext!=".gif"){
echo "<br>Votre image doit être un jpg, jpeg ou gif <br>";
exit;
}
$size = getimagesize($source.$image);
$largeur_src=$size[0];
$hauteur_src=$size[1];
//2ieme verification -> on verifie que le type du fichier est un jpg, jpeg ou gif
// $size[2] -> type de l'image : 1 = GIF , 2 = JPG, JPEG
if ($size[2]!=1 AND $size[2]!=2){
echo "<br>Format non supporté<br>";
exit;
}
if($size[2]==1){ // format gif
$image_src=imagecreatefromgif($source.$image);
}
if($size[2]==2){ // format jpg ou jpeg
$image_src=imagecreatefromjpeg($source.$image);
}
// on verifie que l'image source ne soit pas plus petite que l'image dedestination
if ($largeur_src>$largeur_max OR $hauteur_src>$hauteur_max){
// si la largeur est plus grande que la hauteur
if ($hauteur_src<=$largeur_src){
$ratio=$largeur_max/$largeur_src;
}else{
$ratio=$hauteur_max/$hauteur_src;
}
}else{
$ratio=1; // l'image créee sera identique à l'originale
}
umask(022);
$image_dest=imagecreatetruecolor(round($largeur_src*$ratio),
round($hauteur_src*$ratio));
imagecopyresized($image_dest, $image_src, 0, 0, 0, 0,
round($largeur_src*$ratio), round($hauteur_src*$ratio), $largeur_src, $hauteur_src);
if(!imagejpeg($image_dest, $destination.$prefixe.$image)){
echo "la création de l'image a echouée pour l'image $image";
chmod ('../articles/img/'.$prefixe.''.$image.'', 0777);
exit;
}
else
{
echo 'la création de l\'image a fonctionné pour l\'image '.$destination.''.$prefixe.''.$image.' <br /> Pour la placer a droite dans l\'article: <br />[imgdroite]'.$prefixe.''.$image.'[/img]<br><br>Pour la placer a droite dans l\'article: <br />[imggauche]'.$prefixe.''.$image.'[/img]';
exit;
}
}
Et le script qui vas avec (je ne fais pas le détails, ce script propose de redmentionner une image selon trois gabarits de taille max...
- Code: Tout sélectionner
<?php
include "../mainfile.php"; //fichier de conf, avec toutes les fonctions...
//--------------------------------------
// DEFINITION DES VARIABLES
//--------------------------------------
$target = "../articles/source/"; // Repertoire cible
$max_size = 10000000; // Taille max en octets du fichier
$width_max = 10000000; // Largeur max de l'image en pixels
$height_max = 10000000; // Hauteur max de l'image en pixels
$extensions_ok = array("jpg","gif","png","jpeg");
//------------------------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//------------------------------------------------------------
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
$chemin = $target.$_FILES['fichier']['name'];
$extension = substr($nom_file,-3); // Récupération de l'extension
//---------------------------
// SCRIPT D'UPLOAD
//---------------------------
if($_POST['posted'])
{
// On vérifie si le champ est rempli
if($_FILES['fichier']['name'])
{
// On vérifie l'extension du fichier
if(in_array(strtolower($extension),$extensions_ok))
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($taille <= $max_size))
{
// Si c'est OK, on teste l'upload
if(move_uploaded_file($tmp,$chemin))
{
// Si upload OK alors on affiche le message de réussite
echo '<p>Image uploadée avec succès !</p>';
echo '<ul><li>Fichier : '.$_FILES['fichier']['name'].'</li>';
echo '<li>Taille : '.$_FILES['fichier']['size'].' Octets</li>';
echo '<li>Largeur : '.$infos_img[0].' px</li>';
echo '<li>Hauteur : '.$infos_img[1].' px</li></ul>';
chmod ('../articles/source/'.$_FILES['fichier']['name'].'', 0777);
}
else
{
// Sinon on affiche une erreur système
echo '<p>Problème lors de l\'upload !</p>';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
echo '<p>Erreur dans les dimensions ou taille de l\'image !</p>';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<p>Votre image ne comporte pas une extension valide !</p>';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<p>Le champ du formulaire est vide !</p>';
}
}
if (isset($_POST['taille'])){
$taille = $_POST['taille'];
if ($taille == a)
{
$larg = 260;
$haut = 200;
echo "Taille choisit: A<br />";
}
elseif ($taille == b)
{
$larg = 200;
$haut = 150;
echo "Taille choisit: B<br />";
}
elseif ($taille == c)
{
$larg = 230;
$haut = 175;
echo "Taille choisit: B<br />";
}
else
{
echo "Erreur de taille >>";
}
$number = mysql_query("SELECT id FROM articles ORDER BY id DESC LIMIT 0, 1");
list($id) = mysql_fetch_array($number);
$prefix = $id+1;
$prefi = ''.$prefix.'_';
$desti = "../articles/img/";
$sourc = '../articles/source/';
$limage = $_FILES['fichier']['name'];
resize($limage , $larg , $haut , $sourc , $desti , $prefi);
}
?>
<html>
<head>
<title>Upload d'une image sur le serveur !</title>
</head>
<body>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
<p>Envoyer le fichier :</p>
<input type="hidden" name="posted" value="1">
<input name="fichier" type="file">
<select name="taille">
<OPTION value="a">Taille grande (a)
<OPTION value="b">Taille petite (b)
<OPTION value="c">Taille moyenne (c)
</select>
<input type="submit" value="Uploader">
</form><br>
<img src="A.gif" width="260" height="200"> <img src="C.gif" width="230" height="175"> <img src="B.gif" width="200" height="150">
</body>
</html>
Petite note sur le script ci-dessus: c'est le script d'un backoffice d'un de mes sites, il permet de redimentionner l'image, et donne le code a la fin pour placer l'image dans l'article, car je ne suis pas le seul a utiliser le backoffice.
Il permet également de mettre un numéro à l'image, le numéro de l'article courrant, d'ou la petite requete sql.
Bref, j'aurai pu le simplifier pour le mettre ici, mais j'ai un peu la fleme, et puis ce script ne répond p'tet pas a ta question...
Donc voila
Edit: ce script ne convient que pour un backoffice, est doit etre adapté si on veux l'utiliser publiquement.
Ce script est codé a la truelle, je l'admet lol
Il permet également de mettre un numéro à l'image, le numéro de l'article courrant, d'ou la petite requete sql.
Bref, j'aurai pu le simplifier pour le mettre ici, mais j'ai un peu la fleme, et puis ce script ne répond p'tet pas a ta question...
Donc voila
Edit: ce script ne convient que pour un backoffice, est doit etre adapté si on veux l'utiliser publiquement.
Ce script est codé a la truelle, je l'admet lol
6 messages • Page 1 sur 1
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 :
- Nouveautés sur les recherches de Google Images
- Sortie officielle de GoogleStats v2.0 !
- La terre vue par satellite : accord entre Google et Spot Image
- Google indexe plus de 8 milliards de pages
- Sortie de GoogleStats v2.01
- Ajouter un moteur de recherche d'images sur son site
- Idées d'optimisation du référencement des images
- Google teste l'affichage de favicons dans des publicités AdSense
- Google change de favicon
- Brevet de Google sur le contenu dupliqué
- Taille maxi ALT image
- Afficher une image type à la place image pro ........ RESOLU
- Changer la taille d'une image avec le css
- Insérer une image après avoir controlé taille et poids
- [Résolu] Taille logo de wikimedia
- [resolu]fond #bandeau_haut adaptable à la taille du contenu
- [Résolu] The GIMP - Taille des outils gomme, pinceau, etc.
- Ouverture d'une fenêtre (browser) à la taille d'une image
- [Résolu] Uploader une image
- [ résolu ] probleme CSS image
- [Résolu] Image sur AOL
- Positionnement d'une image en absolue ? [résolu]
- [résolu] Problem avec un background image
- [résolu] Intégrer une image php
- [RESOLU] image de fond dans une newsletter
Consultez la description détaillée des produits ou services de Google suivants : Google Image Labeler
- Détection de pages dupliquées
Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués. - Tester le type de redirection
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum