Foto's verkleinen
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?php
//functie voor het maken van een thumb
/*
Auteur: ME Wieringa
Email: [email protected]
This function creates a JPG formatted thumb.
sourcePath: Path of original image (this can be a GIF, PNG or JPG)
thumbPath: Path where thumb should be stored (this path should ALWAYS end with .jpg)
thumbWidth: Prefered width of the thumb (0 = relative to its height)
thumbHeight: Prefered height of the thumb (0 = relative to its width)
quality: The quality percentage of the created thumb.
*/
function createThumb($sourcePath, $thumbPath, $thumbWidth = 140, $thumbHeight = 105, $quality = 100)
{
$sourceExtention = strtolower(array_pop(split("[.]", $sourcePath)));
if(strcasecmp($sourceExtention, "gif") === 0)
{
$sourceData = imagecreatefromgif($sourcePath);
}
elseif(strcasecmp($sourceExtention, "png") === 0)
{
$sourceData = imagecreatefrompng($sourcePath);
}
elseif((strcasecmp($sourceExtention, "jpg") === 0) || (strcasecmp($sourceExtention, "jpeg") === 0))
{
$sourceData = imagecreatefromjpeg($sourcePath);
}
else
{
return false;
}
if($sourceData)
{
$sourceWidth = imagesx($sourceData);
$sourceHeight = imagesy($sourceData);
if($thumbWidth > 0)
{
if($thumbHeight === 0)
{
$thumbHeight = round($sourceHeight * ($thumbWidth / $sourceWidth));
}
}
elseif($thumbHeight > 0)
{
$thumbWidth = round($sourceWidth * ($thumbHeight / $sourceHeight));
}
else // No scaling
{
$thumbHeight = $sourceHeight;
$thumbWidth = $sourceWidth;
}
$thumbData = imagecreatetruecolor($thumbWidth, $thumbHeight);
if(imagecopyresampled($thumbData, $sourceData, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $sourceWidth, $sourceHeight))
{
if(imagejpeg($thumbData, $thumbPath, $quality))
{
Imagedestroy($sourceData);
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
}
//functie voor het maken van een FOTO VOOR FOTOALBUM!!!
/*
Auteur: ME Wieringa
Email: [email protected]
This function creates a JPG formatted foto.
sourcePath: Path of original image (this can be a GIF, PNG or JPG)
thumbPath: Path where thumb should be stored (this path should ALWAYS end with .jpg)
thumbWidth: Prefered width of the thumb (0 = relative to its height)
thumbHeight: Prefered height of the thumb (0 = relative to its width)
quality: The quality percentage of the created thumb.
*/
function createFoto($sourcePath, $thumbPath, $thumbWidth = 480, $thumbHeight = 0, $quality = 100)
{
$sourceExtention = strtolower(array_pop(split("[.]", $sourcePath)));
if(strcasecmp($sourceExtention, "gif") === 0)
{
$sourceData = imagecreatefromgif($sourcePath);
}
elseif(strcasecmp($sourceExtention, "png") === 0)
{
$sourceData = imagecreatefrompng($sourcePath);
}
elseif((strcasecmp($sourceExtention, "jpg") === 0) || (strcasecmp($sourceExtention, "jpeg") === 0))
{
$sourceData = imagecreatefromjpeg($sourcePath);
}
else
{
return false;
}
if($sourceData)
{
$sourceWidth = imagesx($sourceData);
$sourceHeight = imagesy($sourceData);
if($thumbWidth > 0)
{
if($thumbHeight === 0)
{
$thumbHeight = round($sourceHeight * ($thumbWidth / $sourceWidth));
}
}
elseif($thumbHeight > 0)
{
$thumbWidth = round($sourceWidth * ($thumbHeight / $sourceHeight));
}
else // No scaling
{
$thumbHeight = $sourceHeight;
$thumbWidth = $sourceWidth;
}
$thumbData = imagecreatetruecolor($thumbWidth, $thumbHeight);
if(imagecopyresampled($thumbData, $sourceData, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $sourceWidth, $sourceHeight))
{
if(imagejpeg($thumbData, $thumbPath, $quality))
{
Imagedestroy($sourceData);
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
}
?>
//functie voor het maken van een thumb
/*
Auteur: ME Wieringa
Email: [email protected]
This function creates a JPG formatted thumb.
sourcePath: Path of original image (this can be a GIF, PNG or JPG)
thumbPath: Path where thumb should be stored (this path should ALWAYS end with .jpg)
thumbWidth: Prefered width of the thumb (0 = relative to its height)
thumbHeight: Prefered height of the thumb (0 = relative to its width)
quality: The quality percentage of the created thumb.
*/
function createThumb($sourcePath, $thumbPath, $thumbWidth = 140, $thumbHeight = 105, $quality = 100)
{
$sourceExtention = strtolower(array_pop(split("[.]", $sourcePath)));
if(strcasecmp($sourceExtention, "gif") === 0)
{
$sourceData = imagecreatefromgif($sourcePath);
}
elseif(strcasecmp($sourceExtention, "png") === 0)
{
$sourceData = imagecreatefrompng($sourcePath);
}
elseif((strcasecmp($sourceExtention, "jpg") === 0) || (strcasecmp($sourceExtention, "jpeg") === 0))
{
$sourceData = imagecreatefromjpeg($sourcePath);
}
else
{
return false;
}
if($sourceData)
{
$sourceWidth = imagesx($sourceData);
$sourceHeight = imagesy($sourceData);
if($thumbWidth > 0)
{
if($thumbHeight === 0)
{
$thumbHeight = round($sourceHeight * ($thumbWidth / $sourceWidth));
}
}
elseif($thumbHeight > 0)
{
$thumbWidth = round($sourceWidth * ($thumbHeight / $sourceHeight));
}
else // No scaling
{
$thumbHeight = $sourceHeight;
$thumbWidth = $sourceWidth;
}
$thumbData = imagecreatetruecolor($thumbWidth, $thumbHeight);
if(imagecopyresampled($thumbData, $sourceData, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $sourceWidth, $sourceHeight))
{
if(imagejpeg($thumbData, $thumbPath, $quality))
{
Imagedestroy($sourceData);
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
}
//functie voor het maken van een FOTO VOOR FOTOALBUM!!!
/*
Auteur: ME Wieringa
Email: [email protected]
This function creates a JPG formatted foto.
sourcePath: Path of original image (this can be a GIF, PNG or JPG)
thumbPath: Path where thumb should be stored (this path should ALWAYS end with .jpg)
thumbWidth: Prefered width of the thumb (0 = relative to its height)
thumbHeight: Prefered height of the thumb (0 = relative to its width)
quality: The quality percentage of the created thumb.
*/
function createFoto($sourcePath, $thumbPath, $thumbWidth = 480, $thumbHeight = 0, $quality = 100)
{
$sourceExtention = strtolower(array_pop(split("[.]", $sourcePath)));
if(strcasecmp($sourceExtention, "gif") === 0)
{
$sourceData = imagecreatefromgif($sourcePath);
}
elseif(strcasecmp($sourceExtention, "png") === 0)
{
$sourceData = imagecreatefrompng($sourcePath);
}
elseif((strcasecmp($sourceExtention, "jpg") === 0) || (strcasecmp($sourceExtention, "jpeg") === 0))
{
$sourceData = imagecreatefromjpeg($sourcePath);
}
else
{
return false;
}
if($sourceData)
{
$sourceWidth = imagesx($sourceData);
$sourceHeight = imagesy($sourceData);
if($thumbWidth > 0)
{
if($thumbHeight === 0)
{
$thumbHeight = round($sourceHeight * ($thumbWidth / $sourceWidth));
}
}
elseif($thumbHeight > 0)
{
$thumbWidth = round($sourceWidth * ($thumbHeight / $sourceHeight));
}
else // No scaling
{
$thumbHeight = $sourceHeight;
$thumbWidth = $sourceWidth;
}
$thumbData = imagecreatetruecolor($thumbWidth, $thumbHeight);
if(imagecopyresampled($thumbData, $sourceData, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $sourceWidth, $sourceHeight))
{
if(imagejpeg($thumbData, $thumbPath, $quality))
{
Imagedestroy($sourceData);
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
}
?>
Maar als ik deze foto probeer te verkleinen of in iedergeval toe te voegen krijg ik de volgende error:
Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 10368 bytes) in /home/brokke/domains/michelbrokke.nl/public_html/incl_functions.php on line 82
Dit kun je ook hier zien.
Om de foto te verkleinen en dan weer te laten zien doe ik zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php $newurl = "thumbs/".$row['id'].".jpg";
$maakthumb = createThumb($row['url'], $newurl);
if(!isset($maakthumb))
{
echo "Thumb wordt niet aangemaakt!";
exit;
}
echo "<td><a href=\"".$_SERVER['PHP_SELF']."?foto=".$row['id']."\"><img src=\"".$newurl."\" border=\"0\" style=\"border: 1px solid #000000;\" alt=\"© Michel Brokke\" /></a></td>";
?>
$maakthumb = createThumb($row['url'], $newurl);
if(!isset($maakthumb))
{
echo "Thumb wordt niet aangemaakt!";
exit;
}
echo "<td><a href=\"".$_SERVER['PHP_SELF']."?foto=".$row['id']."\"><img src=\"".$newurl."\" border=\"0\" style=\"border: 1px solid #000000;\" alt=\"© Michel Brokke\" /></a></td>";
?>
http://qdig.sourceforge.net/Support/AllowedMemorySize
Hier staat dus dat ik in de php.ini file de Memory size moet opschroeven. Maar ik kan niet in de file omdat ik webhosting huur. Is er een andere oplossing? :)
Hoe kan ik dit repareren dat hij de plaatjes wel verkleint. Hier staat dus dat ik in de php.ini file de Memory size moet opschroeven. Maar ik kan niet in de file omdat ik webhosting huur. Is er een andere oplossing? :)
Het geheugen van de webserver zit vol! De server moet gereboot worden...
Je kan je foto's misschien ook eens internet vriendelijk maken. 2.6 MB voor een foto is alles behalve, en helemaal niet verwonderlijk dat je server dat niet aankan.
Rafael schreef op 24.06.2007 17:16:
Je kan je foto's misschien ook eens internet vriendelijk maken. 2.6 MB voor een foto is alles behalve, en helemaal niet verwonderlijk dat je server dat niet aankan.
1. Hij wil ze waarschijnlijk niet voor niets verkleinen
2. Dit is ongeveer een tiende van het geheugen
3. Waarom zit er zo ongelofelijk weinig geheugen in die server...
Er is al een mail richting de host! Het probleem is dat mijn broer dus morgen voor een half jaar naar Zuid-Afrika gaat en hij dus wel graag snel die foto's er op wilt. Gelukkig snapt hij al hoe hij foto's moet uploaden op de FTP en dan het het juiste adres kan vinden om hem te laten verkleinen en toe te voegen! ;)
Edit:
Alhoewel, dat script zal waarschijnlijk hetzelfde probleem geven. Ik denk dat softwarematig verkleinen de best optie is.
Alhoewel, dat script zal waarschijnlijk hetzelfde probleem geven. Ik denk dat softwarematig verkleinen de best optie is.
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
PHP Newbie schreef op 24.06.2007 17:19:
1. Hij wil ze waarschijnlijk niet voor niets verkleinen
2. Dit is ongeveer een tiende van het geheugen
3. Waarom zit er zo ongelofelijk weinig geheugen in die server...
2. Dit is ongeveer een tiende van het geheugen
3. Waarom zit er zo ongelofelijk weinig geheugen in die server...
En zijn site is de enige die geheugen vraagt? Right. Als hij de optie zou hebben, zou ik de foto's iig verkleinen voor je ze upload. Bespaart je nog meer tijd, een doorsnee foto programma is sneller dan de GD library, en niet te vergeten de upload tijd.
Gewijzigd op 01/01/1970 01:00:00 door Alfred -
PHP Newbie schreef op 24.06.2007 17:33:
Gebruik anders even het foto album script van Arjan, dat is een pracht ding.
Edit:
Alhoewel, dat script zal waarschijnlijk hetzelfde probleem geven. Ik denk dat softwarematig verkleinen de best optie is.
Alhoewel, dat script zal waarschijnlijk hetzelfde probleem geven. Ik denk dat softwarematig verkleinen de best optie is.
Ik denk dat je deze bedoeld?
http://www.phphulp.nl/php/scripts/9/668/
Als ik geen mail krijg van mijn host dan instaleer ik die wel. Ziet er erg goed uit inderdaad! :)
PHP Newbie schreef op 24.06.2007 17:10:
Het geheugen van de webserver zit vol! De server moet gereboot worden...
Dit is niet het geval. Bij PHP in een Linux omgeving kan je een memory limit opgeven. Dit is hier gewoon ingesteld. Je kunt gewoon aan de hosting provider vragen of ze zo vriendelijk willen zijn, om dit voor je te verhogen.
Danny Koppel schreef op 24.06.2007 17:49:
Dit is niet het geval. Bij PHP in een Linux omgeving kan je een memory limit opgeven. Dit is hier gewoon ingesteld. Je kunt gewoon aan de hosting provider vragen of ze zo vriendelijk willen zijn, om dit voor je te verhogen.
PHP Newbie schreef op 24.06.2007 17:10:
Het geheugen van de webserver zit vol! De server moet gereboot worden...
Dit is niet het geval. Bij PHP in een Linux omgeving kan je een memory limit opgeven. Dit is hier gewoon ingesteld. Je kunt gewoon aan de hosting provider vragen of ze zo vriendelijk willen zijn, om dit voor je te verhogen.
Het ligt hier niet aan de geheugen limit. Er staat namelijk:
Allowed memory size of 20971520 bytes exhausted
Terwijl de afbeelding zo'n 10 keer kleiner is.
Quote:
Max file upload size staat momenteel op 10MB. Dat zou voldoende moeten zijn om
foto's te uploaden via het script.
Met vriendelijke groet,
foto's te uploaden via het script.
Met vriendelijke groet,
Ik heb inmiddels het script van Arjan geinstaleerd. Klik
Ben ik nou zo dom? Of is mijn host nou zo dom? Want ik snap er helemaal niks meer van.
Het foto's uploaden is het probleem niet. Het bewerken (verkleinen) dat vergt te veel..