Bonjour,
je suis en train de coder deux function me permettant de ( renommer/redimensionner/appliquer un WaterMark ) sur une image uploader.
Le renommage fonctionne bien mais par le redimensionnement/WaterMark.
Voici la parti formulaire post
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 // Upload images if (count($_FILES['pic']['tmp_name'])) { $ipval = ipval(); $uploaderror = 0; $uploadcount = 0; foreach ($_FILES['pic']['tmp_name'] as $k=>$tmpfile) { if ($tmpfile) { $thisfile = array("name"=>$_FILES['pic']['name'][$k], "tmp_name"=>$_FILES['pic']['tmp_name'][$k], "size"=>$_FILES['pic']['size'][$k], "type"=>$_FILES['pic']['type'][$k], "error"=>$_FILES['pic']['error'][$k]); // Check size images if ($_FILES['pic']['size'][$k] > $pic_maxsize*1000) { $uploaderror++; } elseif (!isValidImage($thisfile)) { $uploaderror++; } else { $newfile = SaveUploadFile($thisfile, "{$path_escape}{$datadir[adpics]}", $data['adtitle'], TRUE, $images_max_width, $images_max_height); if($newfile) { $sql = "INSERT INTO $t_adpics SET adid = $adid, isevent = '$data[isevent]', picfile = '$newfile'"; mysql_query($sql); if (mysql_error()) { echo "<span class=\"error\">Error uploading $_FILES[pic][name]</span><br>"; $uploaderror++; } else { $uploadcount++; } } else { $uploaderror++; } } } elseif ($_FILES['pic']['name'][$k]) { $uploaderror++; } }
La premiere function qui renomme l'image
La seconde qui redimentionne et applique le WaterMark (qui est appeler ds la premiere function)
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 function SaveUploadFile($file, $dir, $title, $resize=TRUE, $maxw=638, $maxh=478, $quality=75) { if(!$GLOBALS['image_verification']) $resize = FALSE; if ($file['tmp_name']) { $dotpos = strrpos($file['name'], "."); if ($dotpos) $ext = strtolower(substr($file['name'], $dotpos)); else $ext = ""; $radical = rand(1, 1000); $newname = RemoveBdURLChars($title)."-".$radical . $ext; if ($resize && ($ext==".jpg" || $ext==".jpeg" || $ext==".jfif" || $ext==".png" || $ext==".gif")) $copysuccess = SaveResizedJPG($file['tmp_name'], "$dir/$newname", $ext, $maxw, $maxh, $quality); else $copysuccess = copy($file['tmp_name'], "$dir/$newname"); if ($copysuccess) $ret = $newname; else return ""; unlink($file['tmp_name']); return $ret; } else { return ""; } }
Merci d'avance pour votre aide
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 function SaveResizedJPG($srcfile, $dstfile, $ext, $maxw=638, $maxh=478, $quality=75) { if($ext==".jpg" || $ext==".jpeg" || $ext==".jfif") $imgsrc = imagecreatefromjpeg($srcfile); elseif(strtolower($ext) == ".png") $imgsrc = imagecreatefrompng($srcfile); elseif(strtolower($ext) == ".gif") $imgsrc = imagecreatefromgif($srcfile); $w = $actw = imagesx($imgsrc); $h = $acth = imagesy($imgsrc); if (!$maxw) $maxw = 638; if (!$maxh) $maxh = 478; if (!$quality) $quality = 75; if ($w > $maxw) { $w = $maxw; $h = round($acth/$actw*$maxw); } if ($h > $maxh) { $h = $maxh; $w = round($actw/$acth*$maxh); } $imgdest = imagecreatetruecolor($w,$h) or die ("Impossible de crée un flux d'image GD"); $text_color = imagecolorallocate ($imgsrc, 162, 213, 43); imagestring ($imgsrc, 5, 5, 5, "mon texte", $text_color); imagecopyresampled($imgdest, $imgsrc, 0, 0, 0, 0, $w, $h, $actw, $acth); return imagejpeg($imgdest, $dstfile, $quality); }![]()
Partager