ik heb een script waarmee mensen een jpg kunnen uploaden het script verkleind de jpg al tot een bepaalde grootte, alleen daarna zou hij ook nog de kwaliteit net zo lang omlaag moeten gooien tot hij onder een bepaald aantal kb zit nou kan je het doen met een tijdelijk bestand te maken en met imagejpg() in een loop de kwaliteit steeds om laag te knallen tot hij laag genoeg is en dan uiteindelijk dat tijdelijke bestand weer weg gooien maar bestaat er geen functie voor? ben al tijdje aan het zoeken maar niks gevonden tot nu toe!
voor de geinteresseerden, dit is de code tot nu toe, er zit nog geen controle op of het wel een jpg is enzo dat moet nog..
en voor het complete
:
voor de geinteresseerden, dit is de code tot nu toe, er zit nog geen controle op of het wel een jpg is enzo dat moet nog..
PHP:
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
| <?php $upload="../test/upload"; // map waar plaatjes heen gaan $naam=time().".jpg"; // nieuwe naam van het plaatje $max_width = 100; // max breedte nieuwe plaatje $max_height = 100; // max hoogte nieuwe plaatje $img = null; $img = @imagecreatefromjpeg($_FILES['userfile']['tmp_name']); if ($img) { $width = imagesx($img); $height = imagesy($img); $scale = min($max_width/$width, $max_height/$height); if ($scale < 1) { $new_width = floor($scale*$width); $new_height = floor($scale*$height); $tmp_img = imagecreatetruecolor($new_width, $new_height); imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagedestroy($img); } } imagejpeg($tmp_img,$upload.'/'.$naam,100); imagedestroy($tmp_img); ?> |
en voor het complete
code:
1
2
3
4
| <form enctype="multipart/form-data" action="blaat.php" method="post"> Upload dit bestand: <input name="userfile" type="file"> <input type="submit" value="Upload!"> </form> |
[ Voor 70% gewijzigd door Verwijderd op 21-01-2005 16:29 ]