imagecreatefromjpeg() werkt niet PHP Version 5.2.16
Iemand een idee wat er mis gaat. Bestanden tot 1 mb doen het overigens wel.
groeten,
Michiel
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
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
<?
//Resize picture
function resize_picture ($remote_file, $image_source ) {
// some settings
$max_upload_width = 600;
$max_upload_height = 600;
imagejpeg($image_source,$remote_file,100);
chmod($remote_file,0644);
/******* GROOT FORMAAT AANPASSEN *******/
// get width and height of original image
list($image_width, $image_height) = getimagesize($remote_file);
if($image_width>$max_upload_width || $image_height >$max_upload_height){
$proportions = $image_width/$image_height;
if($image_width>$image_height){
$new_width = $max_upload_width;
$new_height = round($max_upload_width/$proportions);
}
else{
$new_height = $max_upload_height;
$new_width = round($max_upload_height*$proportions);
}
$new_image = imagecreatetruecolor($new_width , $new_height);
$image_source = imagecreatefromjpeg($remote_file);
imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
// Save the image as 'simpletext.jpg'
imagejpeg($new_image,$remote_file,100);
// Free up memory
imagedestroy($new_image);
}
/** END GROOT FORMAAT **/
imagedestroy($image_source);
}
?>
//Resize picture
function resize_picture ($remote_file, $image_source ) {
// some settings
$max_upload_width = 600;
$max_upload_height = 600;
imagejpeg($image_source,$remote_file,100);
chmod($remote_file,0644);
/******* GROOT FORMAAT AANPASSEN *******/
// get width and height of original image
list($image_width, $image_height) = getimagesize($remote_file);
if($image_width>$max_upload_width || $image_height >$max_upload_height){
$proportions = $image_width/$image_height;
if($image_width>$image_height){
$new_width = $max_upload_width;
$new_height = round($max_upload_width/$proportions);
}
else{
$new_height = $max_upload_height;
$new_width = round($max_upload_height*$proportions);
}
$new_image = imagecreatetruecolor($new_width , $new_height);
$image_source = imagecreatefromjpeg($remote_file);
imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
// Save the image as 'simpletext.jpg'
imagejpeg($new_image,$remote_file,100);
// Free up memory
imagedestroy($new_image);
}
/** END GROOT FORMAAT **/
imagedestroy($image_source);
}
?>
Gewijzigd op 19/09/2012 13:17:25 door Marvin H
Bedankt voor je reactie!
Zie onderstaand:
http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:28 2012] [error] [client 217.122.227.177] File does not exist: /sites/tonijn.nl/www/errors, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:28 2012] [error] [client 217.122.227.177] File does not exist: /sites/tonijn.nl/www/verse-vis, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:28 2012] [error] [client 217.122.227.177] File does not exist: /sites/tonijn.nl/www/errors, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:50 2012] [error] [client 217.122.227.177] PHP Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 11264 bytes) in /sites/tonijn.nl/www/useradmin/dbc.php on line 618, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
Allowed memory size of 50331648 bytes exhausted
Lijkt mij overduidelijk.
Hoe roep jij de function aan, geef eens een voorbeeld
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
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
<?php
// if uploaded image was JPG/JPEG
if($_FILES["image_upload_box1"]["type"] == "image/jpeg" || $_FILES["image_upload_box1"]["type"] == "image/pjpeg"){
$image_source = imagecreatefromjpeg($_FILES["image_upload_box1"]["tmp_name"]);
}
// if uploaded image was GIF
if($_FILES["image_upload_box1"]["type"] == "image/gif"){
$image_source = imagecreatefromgif($_FILES["image_upload_box1"]["tmp_name"]);
}
// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)
// if uploaded image was BMP
if($_FILES["image_upload_box1"]["type"] == "image/bmp"){
$image_source = imagecreatefromwbmp($_FILES["image_upload_box1"]["tmp_name"]);
}
// if uploaded image was PNG
if($_FILES["image_upload_box1"]["type"] == "image/x-png"){
$image_source = imagecreatefrompng($_FILES["image_upload_box1"]["tmp_name"]);
}
//uniekie code genereren
$code = rand(0,1000);
$_SESSION['code'] = $code;
$remote_fileRUF = "image_files/$partij-$code-".$_FILES["image_upload_box1"]["name"];
$remote_file = str_replace(" ","-",$remote_fileRUF); //wiruimte verwijderen
//Door functie halen
resize_picture ($remote_file, $image_source);
?>
// if uploaded image was JPG/JPEG
if($_FILES["image_upload_box1"]["type"] == "image/jpeg" || $_FILES["image_upload_box1"]["type"] == "image/pjpeg"){
$image_source = imagecreatefromjpeg($_FILES["image_upload_box1"]["tmp_name"]);
}
// if uploaded image was GIF
if($_FILES["image_upload_box1"]["type"] == "image/gif"){
$image_source = imagecreatefromgif($_FILES["image_upload_box1"]["tmp_name"]);
}
// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)
// if uploaded image was BMP
if($_FILES["image_upload_box1"]["type"] == "image/bmp"){
$image_source = imagecreatefromwbmp($_FILES["image_upload_box1"]["tmp_name"]);
}
// if uploaded image was PNG
if($_FILES["image_upload_box1"]["type"] == "image/x-png"){
$image_source = imagecreatefrompng($_FILES["image_upload_box1"]["tmp_name"]);
}
//uniekie code genereren
$code = rand(0,1000);
$_SESSION['code'] = $code;
$remote_fileRUF = "image_files/$partij-$code-".$_FILES["image_upload_box1"]["name"];
$remote_file = str_replace(" ","-",$remote_fileRUF); //wiruimte verwijderen
//Door functie halen
resize_picture ($remote_file, $image_source);
?>
Uhm, als je een GIF upload, hoe maak je die dan aan in PHP? Toen ik een image_uploader maakte kon ik geen GIF's maken omdat ik alleen createimagefromjpeg gebruikte
Iemand een idee wat er mis gaat. Bestanden tot 1 mb doen het overigens wel."
Dus images van onder de 1mb doen het altijd?
Onder een mb doen het gewoon.
Vreemd he?
Toevoeging op 19/09/2012 14:17:42:
Zoals -SanThe- en ik al eerder opmerkte in je log is de Allowed memory exhausted melding in je log... Plaats hetvolgende eens boven aan in je script
Dit zorgt ervoor dat je php script in plaats van 5mb nu 12 mb geheugen heeft om de opdracht uit te voeren...
Gewijzigd op 19/09/2012 14:18:31 door Marvin H
Dan werkt het nog niet.
Denk dat ik maar moet overstappen op VPS want het hosting bedrijf meld het volgende:
Wat denk jij?
Waarom krijg ik de fout 'Allowed memory size exhausted' op mijn website?
Deze fout krijgt u als de server te veel geheugen nodig heeft om uw webpagina te genereren. Omdat uw website op een gedeelde server draait, kunnen wij per bezoeker/webpagina slechts een beperkte hoeveelheid geheugen toewijzen. Als uw pagina te veel geheugen nodig heeft dan zal deze worden afgebroken.
Deze error komt vaak voor bij scripts die realtime 'thumbnails' genereren. Dit kan bijna altijd worden opgelost door een zuiniger script te gebruiken, of door een lagere resolutie foto te uploaden.
Ook programma's zoals Wordpress geven vaak deze fout. Dan gaat het meestal om websites waar teveel plug-ins of modules geladen zijn. Bekende veelgebruikers zijn 'Google XML Sitemap' en 'Ultimate Tag Warrior'. In deze gevallen kunt u het beste deze plugins compleet verwijderen, samen met alle andere niet gebruikte overbodige plug-ins.
Deze error heeft niets te maken met de quota op uw website.
Toevoeging op 19/09/2012 15:09:19:
De pagina waar het script op draait is 231kb is toch niet extreem veel?
Waar vindt ik dan een zuinig upload script. Zo slecht ziet mijn script er toch niet uit?
Toevoeging op 19/09/2012 15:13:11:
Michiel v op 19/09/2012 15:07:01:
De pagina waar het script op draait is 231kb is toch niet extreem veel?
Waar vindt ik dan een zuinig upload script. Zo slecht ziet mijn script er toch niet uit?
De pagina waar het script op draait is 231kb is toch niet extreem veel?
Waar vindt ik dan een zuinig upload script. Zo slecht ziet mijn script er toch niet uit?
Het gaat niet om het script zelf, maar hetgeen wat het script uitvoert. Het resize van een image en aanmaken hiervan neemt wel resources in beslag... dan kom je al snel op je 5mb memory usage die php in beslag neemt
Bedankt voor je reacties. Ik ga een kijken bij Transip.
Ken het bedrijf wel.
ALs ik hulp nodig heb laat ik het je weten.
Groeten,
Michiel
Is goed :) Heb zelf ook een VPS bij TransIP i.c.m. DirectAdmin en met 2 cores/ 1Gb ram / 100GB HD / 2000GB dataverkeer