Image Resize
Ik heb gister de hele dag aan een script liggen te kloten om plaatjes te uploaden en dat ze dan gecopieert en metteen verkleint worden tot thumbnail. Dat werkt gelukkig na heel wat gekloot maar de kwaliteit van de plaatjes laat wat te wensen over. Is er een manier om dit te verbeteren? Want vooral de kleuren worden gewoon vern**kt. mss dat er iets is wat ik fout doe ofzo...
http://members.lycos.nl/kotrsite/index.php?page=gallery
daar staan een paar plaatjes die door men script gegaan zijn.
en voor de gene die intresse hebben in men script:
Code (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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?
if (isset($_POST['uploaden']))
{
require("config.php");
function create_image_from($ext,$naam)
{
if ($ext == 'jpg')
$org = imagecreatefromjpeg("fotos/".$naam);
elseif ($ext == 'gif')
$org = imagecreatefromgif("fotos/".$naam);
elseif ($ext == 'png')
$org = imagecreatefrompng("fotos/".$naam);
else
die("ERROR while createing image -> create_image_from");
return $org;
}
function complete_img($ext,$create,$naam)
{
if ($ext == 'jpg')
imagejpeg($create, "fotos/klein_".$naam, 100);
elseif ($ext == 'gif')
imagegif($create, "fotos/klein_".$naam, 100);
elseif ($ext == 'png')
imagepng($create, "fotos/klein_".$naam, 100);
else
die("ERROR while createing image -> complete_img");
}
$img = $foto_name;
if ($img == "")
{
echo "U heeft geen bestand opgegeven.";
exit();
}
$naam = explode("/", $foto_name);
$naam = end($naam);
$naam = strtolower($naam);
$sql = "SELECT * FROM gallery WHERE naam = '".$naam."'";
$res = mysql_query($sql) OR die(mysql_error());
$num = mysql_num_rows($res);
if ($num >= '1')
die ("Sorry de naam van de afbeelding bestaat al. Geef u foto een andere naam en probeer het op nieuw.");
$expl = explode(".", $img);
$ext = end($expl);
$ext = strtolower($ext);
if (!(($ext == 'jpg') || ($ext == 'gif') || ($ext == 'png')))
{
echo "U afbeelding heeft niet de juiste extensie.<br>";
echo "Toegestaan zijn: gif, jpg en png<br>";
exit();
}
copy($foto,"fotos/".$naam);
// functie orginele foto ophalen
$org = create_image_from($ext,$naam);
$size = getimagesize("fotos/".$naam);
$width = $size[0];
$height = $size[1];
if ($size[0] == $size[1])
{
$newwidth = 140;
$newheight = 140;
}
elseif ($size[0] > $size[1])
{
$newwidth = 140;
$newheight = ($size[1] * 140 / $size[0]);
}
elseif ($size[0] < $size[1])
{
$newheight = 140;
$newwidth = ($size[0] * 140 / $size[1]);
}
else
{
echo "ERROR while createing image -> size";
echo "$size[0] x $size[1]";
exit();
}
$create = imagecreate($newwidth, $newheight);
echo "new: $newwidth x $newheight<br>";
echo "orginal: $width x $height<br>";
imagecopyresized($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// functie orginele foto ophalen
complete_img($ext,$create,$naam);
imagedestroy($org);
imagedestroy($create);
$imgsize = $foto_size;
$name = $naam;
$size = round($imgsize / 1024);
$datum = date("Y-m-d");
echo "Naam: ".$name."<br>";
echo "Size: ".$size." Kb<br>";
echo "Datum: ".$datum."<br>";
$sql = "INSERT INTO gallery (naam,size,datum,jaar) VALUES ('".$name."', '".$size."', '".$datum."','".$_POST['jaar']."')";
mysql_query($sql) OR die(mysql_error());
?>
if (isset($_POST['uploaden']))
{
require("config.php");
function create_image_from($ext,$naam)
{
if ($ext == 'jpg')
$org = imagecreatefromjpeg("fotos/".$naam);
elseif ($ext == 'gif')
$org = imagecreatefromgif("fotos/".$naam);
elseif ($ext == 'png')
$org = imagecreatefrompng("fotos/".$naam);
else
die("ERROR while createing image -> create_image_from");
return $org;
}
function complete_img($ext,$create,$naam)
{
if ($ext == 'jpg')
imagejpeg($create, "fotos/klein_".$naam, 100);
elseif ($ext == 'gif')
imagegif($create, "fotos/klein_".$naam, 100);
elseif ($ext == 'png')
imagepng($create, "fotos/klein_".$naam, 100);
else
die("ERROR while createing image -> complete_img");
}
$img = $foto_name;
if ($img == "")
{
echo "U heeft geen bestand opgegeven.";
exit();
}
$naam = explode("/", $foto_name);
$naam = end($naam);
$naam = strtolower($naam);
$sql = "SELECT * FROM gallery WHERE naam = '".$naam."'";
$res = mysql_query($sql) OR die(mysql_error());
$num = mysql_num_rows($res);
if ($num >= '1')
die ("Sorry de naam van de afbeelding bestaat al. Geef u foto een andere naam en probeer het op nieuw.");
$expl = explode(".", $img);
$ext = end($expl);
$ext = strtolower($ext);
if (!(($ext == 'jpg') || ($ext == 'gif') || ($ext == 'png')))
{
echo "U afbeelding heeft niet de juiste extensie.<br>";
echo "Toegestaan zijn: gif, jpg en png<br>";
exit();
}
copy($foto,"fotos/".$naam);
// functie orginele foto ophalen
$org = create_image_from($ext,$naam);
$size = getimagesize("fotos/".$naam);
$width = $size[0];
$height = $size[1];
if ($size[0] == $size[1])
{
$newwidth = 140;
$newheight = 140;
}
elseif ($size[0] > $size[1])
{
$newwidth = 140;
$newheight = ($size[1] * 140 / $size[0]);
}
elseif ($size[0] < $size[1])
{
$newheight = 140;
$newwidth = ($size[0] * 140 / $size[1]);
}
else
{
echo "ERROR while createing image -> size";
echo "$size[0] x $size[1]";
exit();
}
$create = imagecreate($newwidth, $newheight);
echo "new: $newwidth x $newheight<br>";
echo "orginal: $width x $height<br>";
imagecopyresized($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// functie orginele foto ophalen
complete_img($ext,$create,$naam);
imagedestroy($org);
imagedestroy($create);
$imgsize = $foto_size;
$name = $naam;
$size = round($imgsize / 1024);
$datum = date("Y-m-d");
echo "Naam: ".$name."<br>";
echo "Size: ".$size." Kb<br>";
echo "Datum: ".$datum."<br>";
$sql = "INSERT INTO gallery (naam,size,datum,jaar) VALUES ('".$name."', '".$size."', '".$datum."','".$_POST['jaar']."')";
mysql_query($sql) OR die(mysql_error());
?>
<center>
U afbeeling is geupload.<hr><img src="fotos/klein_">
</center>
<center>
BELANGRKIJK: lycos.tripod ondersteunt GEEN gifjes. Als je dit toch probeert zul je een error krijgen.
<form method="post" action="" enctype="multipart/form-data">
Bestand: <input type="file" name="foto"><br>
<select name="jaar">
<option></option>
<option value="2003">2003</option>
<option value="2004">2004</option>
</select><br>
<input type="submit" name="uploaden" value="Uploaden">
</form>
</center>
$width = $size[0];
$height = $size[1];
if ($size[0] == $size[1]) //als het een vierkant is
{
$newwidth = 140;
$newheight = 140;
}
elseif ($size[0] > $size[1]) // als x groter is als y
{
$newwidth = 140;
$newheight = ($size[1] * 140 / $size[0]);
}
elseif ($size[0] < $size[1]) als y groter is als x
{
$newheight = 140;
$newwidth = ($size[0] * 140 / $size[1]);
}
zoiets bedoel je :p. Ik neem toch aan dat met dit script niks fout is? misschien moet ik em wel nog afronden naar een geheel getal..
Weet iemand overigens een goede? Ik wil wel dat ik em kan downloaden zodat ik zelf nog wat aan kan passen :).
www.hotscripts.com, daar staat er vast wel een...
Kijk anders is op vervange dat door imagecreatetruecolor
Mvg Marcel
echt wat ben ik blij dat t eindelijk werkt zoals het moet ;). Ik vreesde ff dat het maar wat onzin was omdat dreamweaver MX de tag niet kende maar t werkt! Echt hartelijk bedankt ;)