Salutations,

Je cherche, pour un site de photos, à mettre au point un petit script qui pourrait me permettre de faire une copie redimensionnée de photos uploadées dans un dossier, et placer ces copies dans un sous dossier "thumbs".

La seule chose que j'arrive à faire, c'est à les resizer à la volée, mais elle ne sont pas enregistrées ensuite...

J'ai trouvé cela, mais jen 'arrive pas a sauver la copie resizée dans le dossier "thumbs" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?
 
$img_src_chemin = "/";
$img_dst_chemin = "thumbs/";
 
 
// Déterminer l'extension à partir du nom de fichier
$extension = substr( $img_src_chemin, -3 );
// Afin de simplifier les comparaisons, on met tout en minuscule
$extension = strtolower( $extension );
 
switch ( $extension ) {
 
    case "jpg":
    case "peg": //pour le cas où l'extension est "jpeg"
        $img_src_resource = imagecreatefromjpeg( $img_src_chemin );
        break;
 
	case "JPG":
    case "PEG": //pour le cas où l'extension est "jpeg"
        $img_src_resource = imagecreatefromjpeg( $img_src_chemin );
        break;
 
    case "gif":
        $img_src_resource = imagecreatefromgif( $img_src_chemin );
        break;
 
    case "png":
        $img_src_resource = imagecreatefrompng( $img_src_chemin );
        break;
 
    // On peut également ouvrir les formats wbmp, xbm et xpm (vérifier la configuration du serveur)
 
    default:
        echo "L'image n'est pas dans un format reconnu. Extensions autorisées : jpeg, gif, png";
        break;
}
 
//Pour créer une image de destination de 100 pixels de large sur 200 de haut
$img_dst_resource = imagecreatetruecolor( 100, 200 );
 
// Exemple avec imagesx() et imagesy()
$img_src_width = imagesx( $img_src_resource );
$img_src_height = imagesy( $img_src_resource );
 
// Exemple avec getimagesize()
// getimagesize renvoie un tableau
// Ce tableau contient la largeur, la hauteur, un entier représentant le type d'image, et
// une chaîne width/height pouvant être insérée dans une balise img.
//  Je vous laisse lire la documentation pour les détails techniques
list( $img_src_width, $img_src_height ) = getimagesize($img_src_chemin);
 
// Vérifions tout d'abord que nous pouvons enregistrer le fichier
$handle = fopen( $img_dst_chemin, "w" );
if ( !$handle ) {
    echo "Impossible d'écrire l'image. Vérifiez le chemin, et les droits du serveur.";
    exit;
}
fclose( $handle );
 
// Pour enregistrer au format jpg
imagejpeg( $img_dst_resource, $img_dst_chemin );
// Un troisième argument est disponible, le niveau de compression
// S'il n'est pas fourni la valeur 75 est utilisée
 
// Pour enregistrer au format png
imagepng( $img_dst_resource, $img_dst_chemin );
 
// Pour enregistrer au format gif
imagegif( $img_dst_resource, $img_dst_chemin );
 
// Pour enregistrer au format wbmp
imagewbmp( $img_dst_resource, $img_dst_chemin );
 
?>
Si quelqu'un à une idée...