Thumbnail script ondersteunt geen gif en png hoe los ik dit op?
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);
}
?>
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!
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.
{
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.