Modifier un fichier php de redimension image

Fermé
jef43 - 29 mars 2010 à 22:44
 jef43 - 31 mars 2010 à 22:05
Bonjour,

Voila j'ai un site internet dans lequel un fichier php automatique de redimension d'image a été crée pour faire en sorte que mes internautes integrent automatiquement des photos au format 350X250 quelque soit le format de depart. Ceci avait été fait a une epoque ou les formats d'ecrans et les debits de reseau étaient bien + petits qu'aujourd'hui. Hors je souhaiterai modifier ce fichier pour un nouveau format d'image automatique en 640X480.
Le problème est que je n'y connais rien en langage php, donc je recherche quelqû'un capable de me le modifier : voir ci apres. Merci vivement pour votre aide.

<?php
function redim_image($image,$n_image,$type_redim,$T1,$T2=0) {
// Filtrage des données
$T1 = abs($T1);
$T2 = abs($T2);

// Test l'existance de l'image source
if (!file_exists($image)) return 0;

// Detecte le type d'image (grace à l'extension)
if (eregi('.png$',$image)) $type = 'PNG';
elseif(eregi('.jpg$',$image)||eregi('.jpeg$',$image)) $type = 'JPEG';
else return 0;

// Ouverture de l'image source
$Create = 'ImageCreateFrom'.$type;
$src_img=$Create($image);

// Dim. de l'image source
$a_l = ImageSX($src_img);
$a_h = ImageSY($src_img);

// Calcul de la nouvelle taille
switch($type_redim) {
case 'H':
$n_h = $T1;
$n_l = round($a_l * ($T1/$a_h));
break;
case 'L':
$n_l = $T1;
$n_h = round($a_h * ($T1/$a_l));
break;
case 'LH':
$n_l = $T1;
$n_h = $T2;
break;
case 'R':
$n_h = $a_h * $T1;
if ($T2>0) $n_l = $a_l * $T2;
else $n_l = $a_l * $T1;
break;
}

// Création de l'image de destination
if (!$dst_img=imagecreatetruecolor($n_l,$n_h)) return 0;

// Copie de l'image source sur l'image de destination
// avec redim.
if (!imagecopyresized($dst_img,$src_img,0,0,0,0,$n_l,$n_h,$a_l,$a_h)) return 0;

// Choix entre envoie et enregistrement
if (!$n_image) {
// Envoie de l'image au navigateur
header("Content-type: image/$type");
$img = 'Image'.$type;
if ($img($dst_img)) return 1;
else return 0;
}
else {
// Enregistrement de l'image
$img = 'Image'.$type;
if ($img($dst_img,$n_image)) return 1;
else return 0;
}
}
redim_image($_GET[img],'',$_GET[mode],$_GET[L],$_GET[H]);
?>
A voir également:

4 réponses

grou29 Messages postés 39 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 19 mai 2010 9
30 mars 2010 à 00:23
A première vue, la taille est passé en paramètre a ton code.
Voici le fonctionnement:
ce code est appelé probablement par un autre page (html ou php) avec une adresse html qui se temine par &H=250&L=250

Le code php récupère ces valeurs en utilisant
$_GET[L] et $_GET[H]
et les passe en paramètre a la fonction redim_image qui fait le boulot de redimensionner l'image.

Deux solutions:
1) tu trouve la page qui appel se code et tu modifies les valeur L et H
2) plus grade, tu remplace les $_GET[L],$_GET[H] par 640,480

-
Grou29
http://lienssanslien.free.fr
0
Bonsoir Grou29 et merci beaucoup pour ton "descryptage" !
Apparement il y a plusieurs pages selon differentes rubriques de mon site qui appellent se code. J'ai donc du pain sur la planche pour recenser tout ça. Sinon tes solutions sont elles un choix entre l'une OU l'autre ou dois-je faire les deux?
Les valeurs 640 et 480 doivent être mis dans les acolades [H] et [L] ou carrément à la place de: $_GET[L],$_GET[H]. Merci!

Jef
0
grou29 Messages postés 39 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 19 mai 2010 9
31 mars 2010 à 02:56
c'est l'une ou l'autre.
Pour la deuxieme tu fais:
redim_image($_GET[img],'',$_GET[mode],640,480);
-
Grou29
http://lienssanslien.free.fr
0
Encore moi!
Je me confronte à un problème qui est que lorsque j'indique ces valeurs dans mon fichier php: redim_image($_GET[img],'',$_GET[mode],640,480); la page de résumé qui appelle les dernières annonces inscrites sur mon site avec normalement des miniatures 100X70, (cliquable vers le pop up d'annonce) m'affiche des placards de 640X480 ! C'est plus du résumé c'est du Decaud ;-).

Jef
0