tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
382
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Zack
    Zack Zack ist offline cookies vader
    Registriert seit
    Oct 2007
    Ort
    hier und dort
    Beiträge
    258
    Hallo,
    ich habe eine Funktion zum verkleinern von zugroßen Bildern in einem Upload. Ich bekomme folgenden Fehler:
    HTML-Code:
    Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 13824 bytes) in C:\xampp\htdocs\PHP\peter\class.php on line 169
    Die Funktion:
    PHP-Code:
        function resizeImage($sourcePath$destPath$maxWidth$maxHeight) {
            
    $size getimagesize($sourcePath);
            if(
    $size[1]/$size[0] > $maxHeight/$maxWidth) {
               
    $newHeight $maxHeight;
               
    $newWidth floor($size[0]/$size[1] * $newHeight);
            }else{
               
    $newWidth $maxWidth;
               
    $newHeight floor($size[1]/$size[0] * $newWidth);
            }

            
    $image imagecreatefromjpeg($sourcePath);
            
    $newImage imagecreatetruecolor($newWidth$newHeight);
            
    imagecopyresampled($newImage$image0,0,0,0$newWidth$newHeight$size[0], $size[1]);
            
    imagejpeg($newImage$destPath);
            
    imagedestroy($image);
            
    imagedestroy($newImage);
        } 
    Der Aufruf:
    PHP-Code:
    .....
    $DST="../images/upload/";
    ....
    $file=str_replace(" """$_FILES['thefile']['name']);
    ....
    resizeImage($DST.$file,  $DST.$file"700""1200");
    .... 
    Ich seh aber keinen Fehler und lege ja auch keine maximal nutzbare Größe fest. Wobei ich bei einen 2.4MB Bild eigentlich auch nicht ganz so viel in anspruch nehme. Das Bild wird auch nicht verkleinert so wie es eigentlich sein soll.

    Hilfe !
     
    Und was lernen wir darauf? Es niemals versuchen! (Homer Jay Simpson)
    127.0.0.1 Home! Sweet Home!

    Ich würde mich über eine Bewertung meiner Beiträge freuen!

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Die Einstellung wird in der php.ini festgelegt und heißt: memory_limit
    Die Einstellung ist laut Fehlermeldung bei dir ungefähr auf 32MB.

    Und 2.4MB sind es wahrscheinlich als JPEG, PHP arbeitet aber mit unkomprimierten Bildern, die um ein vielfaches mehr verbrauchen.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    kalle123456 Tutorials.de Gastzugang
    Ein ähnlichen Problem hatte ich auch mal, wobei die Fehlermeldung sehr lustig ist. Bei mir war der Fehler daß ich zur Laufzeit das Limit geändert habe, checke das mal.
    EDIT: rechne mit den Speicherverbrauch ungefähr mit den dreifachen!
    Geändert von kalle123456 (19.12.08 um 22:43 Uhr)
     

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Zitat Zitat von kalle123456 Beitrag anzeigen
    EDIT: rechne mit den Speicherverbrauch ungefähr mit den dreifachen!
    Das hängt meines Wissens ganz allein von den Proportionen des Bildes ab und kann sogar errechnet werden...

    /Edit:

    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    Die Dateigröße von 500kb ist natürlich im JPEG Format komprimiert, du müsstest allerdings mit der unkomprimierten Größe arbeiten, hier eine kleine Formel dafür (aus dem Coppermine Trouble Shooting, s. o.)



    Basisfarben sind RGB (Faktor 3) oder CMYK (Faktor 4).

    Für ein 1024x768 Pixel großes Bild mit RGB Farben, wären es:

    Wenn deine Bilder also komprimiert schon 500kb groß sind, werden sie wahrscheinlich von einer Digicam o. ä. stammen die eine sehr hohe Auflösung benutzt...
    Rechne dir das mal durch...

    Allerdings passt das nicht ganz dazu, dass du auch versucht hast Kleinere zu nehmen. Mal versucht wirklich nur ein Minibild hochzuladen, dass nur ein paar KB groß ist?
    Geklaut von mir selbst, hier: http://www.tutorials.de/forum/1282138-post4.html
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    kalle123456 Tutorials.de Gastzugang
    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    Das hängt meines Wissens ganz allein von den Proportionen des Bildes ab und kann sogar errechnet werden...
    Es ist ja auch nur ein Richtwert, den man jederzeit anpassen kann, aber mit den dreifachen kommen die meisten hin!

    @Felix die Lösung wäre per Ajax Request die Größe bestimmen und danach das limit setzen... Wünsche auch dir schöne Feiertage

    EDIT: habe von dir nichts geklaut
    Geändert von kalle123456 (19.12.08 um 23:11 Uhr)
     

  6. #6
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Zitat Zitat von kalle123456 Beitrag anzeigen
    EDIT: habe von dir nichts geklaut
    Ich meinte, dass ich obiges Zitat von mir selbst geklaut habe, aus einem alten Beitrag
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  7. #7
    kalle123456 Tutorials.de Gastzugang
    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    Ich meinte, dass ich obiges Zitat von mir selbst geklaut habe, aus einem alten Beitrag
    Dann kann ich ja jetzt ruhig schlafen, obwohl mir fehlt noch das Feedback... Denke aber schon das er zur Laufzeit das Limit geändert hat... is not a bug is a feature
     

Ähnliche Themen

  1. [Perl] Out of Memory Error
    Von Ole im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 4
    Letzter Beitrag: 27.08.10, 17:44
  2. Memory Error
    Von Duellking im Forum PHP
    Antworten: 3
    Letzter Beitrag: 31.07.07, 09:41
  3. Fatal error: Allowed memory...
    Von em3L im Forum PHP
    Antworten: 26
    Letzter Beitrag: 06.05.07, 15:22
  4. Memory Error
    Von rayinstructor im Forum 3D Studio Max
    Antworten: 4
    Letzter Beitrag: 18.01.05, 17:05
  5. Out of Memory error
    Von MiRaMC im Forum Java
    Antworten: 7
    Letzter Beitrag: 02.12.04, 15:48