Ik ben bezig met het maken van een fotopagina, waarbij ik via uploadforms de plaatjes kan uploaden. Thumbnails worden automatisch aangemaakt, maar dit werkt niet altijd.
Als ik een jpg gebruik die uit een van mn digitale camera's komt (powershot a40 of a70) dan krijg ik de foutmelding:
Bij gebruik van andere jpg's werkt het script perfect. Heeft iemand een idee waar dit aan kan liggen? Ik kan me voorstellen dat fotocamera's een hoop extra informatie toevoegen aan een JPEG (EXIF data), maar het lijkt me vreemd dat dit een probleem op zou leveren. Anderzijds weet ik ook niet hoe ik die data kan verwijderen van een jpg. Zoeken heeft me niets opgeleverd.
Originele script (van php.net gehaald), probleem zit hier op regel 34 of op 29 bij maken van thumb:
Als ik een jpg gebruik die uit een van mn digitale camera's komt (powershot a40 of a70) dan krijg ik de foutmelding:
PHP:
1
| Warning: imagecopyresized(): supplied argument is not a valid Image resource in admin_page_fotobewerken.php on line 34 |
Bij gebruik van andere jpg's werkt het script perfect. Heeft iemand een idee waar dit aan kan liggen? Ik kan me voorstellen dat fotocamera's een hoop extra informatie toevoegen aan een JPEG (EXIF data), maar het lijkt me vreemd dat dit een probleem op zou leveren. Anderzijds weet ik ook niet hoe ik die data kan verwijderen van een jpg. Zoeken heeft me niets opgeleverd.
Originele script (van php.net gehaald), probleem zit hier op regel 34 of op 29 bij maken van thumb:
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
| function imageresize($img,$target="",$width,$height,$percent){ // create an image of the given filetype if (strpos($img,".jpg") !== false or strpos($img,".jpeg") !== false) { $image = ImageCreateFromJpeg($img); $extension = ".jpg"; } elseif (strpos($img,".png") !== false) { $image = ImageCreateFromPng($img); $extension = ".png"; } elseif (strpos($img,".gif") !== false) { $image = ImageCreateFromGif($img); $extension = ".gif"; } $size = getimagesize ($img); // calculate missing values if ($width and !$height) { $height = ($size[1] / $size[0]) * $width; } elseif (!$width and $height) { $width = ($size[0] / $size[1]) * $height; } elseif ($percent) { $width = $size[0] / 100 * $percent; $height = $size[1] / 100 * $percent; } elseif (!$width and !$height and !$percent) { $width = 100; // here you can enter a standard value for actions where no arguments are given $height = ($size[1] / $size[0]) * $width; } $thumb = imagecreatetruecolor ($width, $height); if (function_exists("imageCopyResampled")) { if (!@ImageCopyResampled($thumb, $image, 0, 0, 0, 0, $width, $height, $size[0], $size[1])) { ImageCopyResized($thumb, $image, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); } } else { ImageCopyResized($thumb, $image, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); } //ImageCopyResampleBicubic ($thumb, $image, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); if (!$target) { $target = "temp".$extension; } $return = true; switch ($extension) { case ".jpg": { imagejpeg($thumb, $target, 90); break; } case ".gif": { imagegif($thumb, $target); break; } case ".png": { imagepng($thumb, $target); break; } default: { $return = false; } } // report the success (or fail) of the action return $return; } |
Een heel groot en stoer systeem.