Ik heb een simpel script geschreven dat random plaatjes moet kunnen weergeven op een bepaalde grootte, om zo random avatars te kunnen weergeven.
Nou werkt het script dat ik geschreven heb perfect op mijn eigen server (Apache 2.0.48/PHP 4.3.4), maar ik krijg op mijn webserver (Apache 1.3.28/PHP 4.2.3) alleen maar rode kruisen.
Hier de info over GD op beide servers:
Eigen server
GD Support enabled
GD Version bundled (2.0.15 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
Webserver
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
JPG Support enabled
PNG Support enabled
WBMP Support enabled
Ik weet dat zulke grote lappen code niet gebruikelijk zijn, maar ik heb geen duidelijk idee waar de fout zit.
Zelf vermoed ik dat de fout zit in één van de imagecreate functies, maar waarom het precies niet werkt snap ik niet. Doe ik wat verkeerd?
Overigens kun je hier de verschillen tussen beide servers zien:
Lokale server
Webserver
Beide servers bevatten dezelfde afbeeldingen in dezelfde relatieve paden.
Als iemand een idee heeft wat ik verkeerd doe, dan hoor ik het graag.
Edit:
Hmm, de gifs werken ook niet goed, dus het ligt niet aan GD lijkt me. Kan het een rechtenkwestie zijn? Ik heb alles 755 gechmod.
Nou werkt het script dat ik geschreven heb perfect op mijn eigen server (Apache 2.0.48/PHP 4.3.4), maar ik krijg op mijn webserver (Apache 1.3.28/PHP 4.2.3) alleen maar rode kruisen.
Hier de info over GD op beide servers:
Eigen server
GD Support enabled
GD Version bundled (2.0.15 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
Webserver
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
JPG Support enabled
PNG Support enabled
WBMP Support enabled
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
| <?php define("MAX_IMAGE_SIZE", 96); $types = array("jpg", "jpeg", "gif", "bmp", "png"); $folder = (isset($_GET["folder"]) ? $_GET["folder"] : ".")."/"; if (isset($_GET["size"]) and is_numeric($_GET["size"])) $maxsize = $_GET["size"]; else $maxsize = MAX_IMAGE_SIZE; if ($handle = opendir($folder)) { while (false !== ($file = readdir($handle))) { $filename = explode(".", $file); if (in_array($filename[count($filename) - 1], $types)) $files[] = $file; } closedir($handle); } $image = $files[rand(0, count($files) - 1)]; $width = $height = $maxsize; $imgInfo = getImageSize($folder.$image); if (($imgInfo[0] <= $maxsize) and ($imgInfo[1] <= $maxsize)) { $width = $imgInfo[0]; $height = $imgInfo[1]; } else { if ($imgInfo[0] > $imgInfo[1]) // Width > Height $height = round(($imgInfo[1]/$imgInfo[0]) * $maxsize); if ($imgInfo[0] < $imgInfo[1]) // Width < Height $width = round(($imgInfo[0]/$imgInfo[1]) * $maxsize); } if ($imgInfo["mime"] != "image/gif") { header("Content-type: image/jpeg"); $background = imagecreatetruecolor($width, $height); switch ($imgInfo["mime"]) { case "image/jpeg": $foreground = imagecreatefromjpeg($folder.$image); break; case "image/png": $foreground = imagecreatefrompng ($folder.$image); break; case "image/vnd.wap.wbmp": $foreground = imagecreatefromwbmp ($folder.$image); break; } imagecopyresized($background, $foreground, 0, 0, 0, 0, $width, $height, $imgInfo[0], $imgInfo[1]); imagejpeg($background); imagejpeg($foreground); imagedestroy($background); imagedestroy($foreground); } else { header("Content-type: image/gif"); if ($file = fopen($folder.$image, "rb")) { echo fread($file, filesize($folder.$image)); fclose($file); } } ?> |
Ik weet dat zulke grote lappen code niet gebruikelijk zijn, maar ik heb geen duidelijk idee waar de fout zit.
Zelf vermoed ik dat de fout zit in één van de imagecreate functies, maar waarom het precies niet werkt snap ik niet. Doe ik wat verkeerd?
Overigens kun je hier de verschillen tussen beide servers zien:
Lokale server
Webserver
Beide servers bevatten dezelfde afbeeldingen in dezelfde relatieve paden.
Als iemand een idee heeft wat ik verkeerd doe, dan hoor ik het graag.
Edit:
Hmm, de gifs werken ook niet goed, dus het ligt niet aan GD lijkt me. Kan het een rechtenkwestie zijn? Ik heb alles 755 gechmod.
[ Voor 7% gewijzigd door NMe op 01-06-2004 23:21 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.