Thumbnail script ondersteunt geen gif en png hoe los ik dit op?
Hallo mensen,, ik ben in verschillende scripts gaan zoeken voor een thumbnail functie die ook gif en png thumbed maar tevergeefs het script is als volgt en het werkt perfect,, maar ik zou heel erg graag willen dat hij ook gif pakt... enig idee?
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
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
<?
if ($thumbnail == "") {
// Thumb bestaat niet
if (! eregi("\.jpg$|\.jpeg$", $foto[$i])) {
// jpg
echo "er is geen thumb<br>\n";
} else {
// Voor jpg/jpeg formaat: thumbnail maken
echo "Thumbnail wordt gemaakt<br>\n";
// Als nog geen directory voor de thumbs bestaat, deze aanmaken...
if (! is_dir ($thumbs)) {
mkdir("$thumbs");
}
// 20sec per thumb
set_time_limit(20);
// alleen jpg support....
$photo = imagecreatefromjpeg ("$album/$foto[$i]");
// afmetingen bepalen
$photo_width = imagesx ($photo);
$photo_height = imagesy ($photo);
// minimaal een van de afmetingen is groter dan $max_thumb..?
if ($photo_width > $max_thumb_width || $photo_height > $max_thumb_height) {
// langwerpiger dan thumb??
if ($photo_width / $photo_height > $max_thumb_width / $max_thumb_height) {
// Langwerpiger dan thumb, de breedte van de thumb is bepalend
$new_thumb_width = $max_thumb_width;
// Hoogte berekenen:
$value = $photo_width / $max_thumb_width;
$new_thumb_height = round ($photo_height / $value);
} else { // niet langwerpiger...
// De hoogte van de thumb is bepalend...
$new_thumb_height = $max_thumb_height;
// Breedte berekenen
$value = $photo_height / $max_thumb_height;
$new_thumb_width= round ($photo_width / $value);
}
} else {
// Foto is al klein genoeg, afmetingen worden overgenomen
$new_thumb_width = $photo_width;
$new_thumb_height = $photo_height;
}
// plaatje aanmaken, met de juiste afmetingen...
$create_thumb = imagecreatetruecolor ($new_thumb_width, $new_thumb_height);
// Plaatje kopieren en "resamplen"
imagecopyresampled (
$create_thumb,
$photo,
0, 0, 0, 0,
$new_thumb_width,
$new_thumb_height,
$photo_width,
$photo_height);
// Bestand wegschrijven
ImageJpeg ($create_thumb, $thumbs."/".$entry_without_ext.".jpg", 90);
// thumbnail bestaat nu toch...
$thumbnail = $thumbs."/".$entry_without_ext.".jpg";
// Geheugen opschonen
Imagedestroy($photo);
}
?>
if ($thumbnail == "") {
// Thumb bestaat niet
if (! eregi("\.jpg$|\.jpeg$", $foto[$i])) {
// jpg
echo "er is geen thumb<br>\n";
} else {
// Voor jpg/jpeg formaat: thumbnail maken
echo "Thumbnail wordt gemaakt<br>\n";
// Als nog geen directory voor de thumbs bestaat, deze aanmaken...
if (! is_dir ($thumbs)) {
mkdir("$thumbs");
}
// 20sec per thumb
set_time_limit(20);
// alleen jpg support....
$photo = imagecreatefromjpeg ("$album/$foto[$i]");
// afmetingen bepalen
$photo_width = imagesx ($photo);
$photo_height = imagesy ($photo);
// minimaal een van de afmetingen is groter dan $max_thumb..?
if ($photo_width > $max_thumb_width || $photo_height > $max_thumb_height) {
// langwerpiger dan thumb??
if ($photo_width / $photo_height > $max_thumb_width / $max_thumb_height) {
// Langwerpiger dan thumb, de breedte van de thumb is bepalend
$new_thumb_width = $max_thumb_width;
// Hoogte berekenen:
$value = $photo_width / $max_thumb_width;
$new_thumb_height = round ($photo_height / $value);
} else { // niet langwerpiger...
// De hoogte van de thumb is bepalend...
$new_thumb_height = $max_thumb_height;
// Breedte berekenen
$value = $photo_height / $max_thumb_height;
$new_thumb_width= round ($photo_width / $value);
}
} else {
// Foto is al klein genoeg, afmetingen worden overgenomen
$new_thumb_width = $photo_width;
$new_thumb_height = $photo_height;
}
// plaatje aanmaken, met de juiste afmetingen...
$create_thumb = imagecreatetruecolor ($new_thumb_width, $new_thumb_height);
// Plaatje kopieren en "resamplen"
imagecopyresampled (
$create_thumb,
$photo,
0, 0, 0, 0,
$new_thumb_width,
$new_thumb_height,
$photo_width,
$photo_height);
// Bestand wegschrijven
ImageJpeg ($create_thumb, $thumbs."/".$entry_without_ext.".jpg", 90);
// thumbnail bestaat nu toch...
$thumbnail = $thumbs."/".$entry_without_ext.".jpg";
// Geheugen opschonen
Imagedestroy($photo);
}
?>
Zoals je ziet is de focus van dit script gericht op jpeg.
Als je de vergelijkende functies voor je andere bestanden erbij zoekt, en switch aanmaak, dan kan je waarschijnlijk dit script zo gebruiken voor andere extensies.
Succes.
TIP: Houd de PHP-Manual bij de hand! Hier is HEELVEEL info uit te halen en ook voorbeelden!
Als je de vergelijkende functies voor je andere bestanden erbij zoekt, en switch aanmaak, dan kan je waarschijnlijk dit script zo gebruiken voor andere extensies.
Succes.
TIP: Houd de PHP-Manual bij de hand! Hier is HEELVEEL info uit te halen en ook voorbeelden!
if (! eregi("\.jpg$|\.jpeg$", $foto[$i])) {
vervangen door
if (! eregi("\.jpg$|\.jpeg$|\.gif$|\.png$", $foto[$i])) {
en klaar is R?
vervangen door
if (! eregi("\.jpg$|\.jpeg$|\.gif$|\.png$", $foto[$i])) {
en klaar is R?
nee zo werkt dat niet toch ?
Zo simpel is het helaas niet, want de functie ImageJpeg is alleen voor jpg bestanden.
switch ($type)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
Daar een beetje mee stoeien. Ga het niet allemaal voorkauwen.
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
break;
}
Daar een beetje mee stoeien. Ga het niet allemaal voorkauwen.




