Hello,
Wanneer ik een foto via een form wil uploaden, geeft hij SOMS een fatal
error. Soms doet hij het dus wel, soms niet.
Het script maakt bij het uploaden meteen 3 versies, elk met hun eigen
grootte.
De error die hij geeft:
"Fatal error: Allowed memory size of 33554432 bytes exhausted at (null):0
(tried to allocate 8032 bytes) in ... on line 621"
Op line 621 staat t volgende:
--> $srcImage = imageCreateFromJpeg($src) or die("imageCreateFromJpeg
mislukt");
Weet er iemand raad?
tnx...
Bij een upload doe ik het volgende :
createThumbnail($tempFile,$destFile1,425,425,90);
copyAndThumb($destFile1,$destFile2,220,220,90);
copyAndThumb($destFile2,$destFile3,80,80,90);
function copyAndThumb($src,$dest,$maxWidth,$maxHeight,$qual ity=80) {
global $message;
copy($src,$dest) or die("Kopiëren van de file ($src) naar ($dest) niet
gelukt");
$srcInfo = pathinfo($src);
$destInfo = pathinfo($destInfo);
createThumbnail($src,$dest,$maxWidth,$maxHeight,$q uality);
}
function createThumbnail($src,$dest,$maxWidth,$maxHeight,$q uality=80) {
if (file_exists($src) && isset($dest)) {
// path info
$destInfo = pathInfo($dest);
$srcInfo = pathInfo($src);
// image src size
$srcSize = getImageSize($src) or die ("$src niet Gevonden");
// image dest size $destSize[0] = width, $destSize[1] = height
$srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio
$destRatio = $maxWidth/$maxHeight; // width/height ratio
if ($srcRatio >= 1) {
// landscape image
if ($srcSize[0] < $maxWidth)
$maxWidth = $srcSize[0];
$destSize[0] = $maxWidth;
$destSize[1] = (int)($srcSize[1] / ($srcSize[0]/$maxWidth));
if ($destSize[1] > $maxHeight) {
$destSize[0] = (int)($srcSize[0] / ($srcSize[1]/$maxHeight));
$destSize[1] = $maxHeight;
}
}
else {
// portrait
if ($srcSize[1] < $maxHeight)
$maxHeight = $srcSize[1];
$destSize[0] = (int)($srcSize[0] / ($srcSize[1]/$maxHeight));
$destSize[1] = $maxHeight;
if ($destSize[0] > $maxWidth) {
$destSize[0] = $maxWidth;
$destSize[1] = (int)($srcSize[1] / ($srcSize[0]/$maxWidth));
}
}
// path rectification
if ($destInfo['extension'] == "gif") {
$dest = substr_replace($dest, 'jpg', -3);
}
// true color image, with anti-aliasing
$destImage = imageCreateTrueColor($destSize[0],$destSize[1]) or die
("imagecreate mislukt");
// src image
switch ($srcSize[2]) {
case 1: //GIF
$srcImage = imageCreateFromGif($src);
break;
case 2: //JPEG
--> $srcImage = imageCreateFromJpeg($src) or die("imageCreateFromJpeg
mislukt");
break;
case 3: //PNG
$srcImage = imageCreateFromPng($src);
break;
default:
return false;
break;
}
// resampling
imageCopyResampled($destImage, $srcImage, 0, 0, 0,
0,$destSize[0],$destSize[1],$srcSize[0],$srcSize[1]) or die
("imageCopyResampled mislukt");
// generating image
switch ($srcSize[2]) {
case 1:
case 2:
imageJpeg($destImage,$dest,$quality) or die ("imageJpeg
mislukt");
break;
case 3:
imagePng($destImage,$dest);
break;
}
imageDestroy($srcImage);
imageDestroy($destImage);
return true;
}
else {
// Het bestand bestaat niet
return false;
}
}
Bedankt!

Likes:

Quote