[PHP5] Out of Memory beim Resizen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] Out of Memory beim Resizen

    Hallo,

    sobald ich ein Bild mit meinem Resize Tool verkleinern will kommt die folgende Meldung:

    Fatal error: Out of memory (allocated 30670848) (tried to allocate 13056 bytes) in /homepages/11/c1156345/htdocs/test.php on line 22
    Wie kann man das umgehen?

    Mfg Simon

  • #2
    z.B. dein Script auf Endlosschleife untersuchen

    Kommentar


    • #3
      Re: [PHP5] Out of Memory beim Resizen

      In dem man kleinere Bilder verwendet, oder dem Script mehr Speicher zugesteht (memory_limit).

      (Und ggf. auch, in dem man das ganze etwas performanter programmiert, also bspw. Bildressourcen entsorgt, sobald sie nicht mehr gebraucht werden. Aber ob das bei deinem Script überhaupt der Fall ist und damit möglich wäre, kannst nur du wissen.)
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hallo,

        es könnte gehen das ich in das Script folgenden Befehl setze, oder?

        PHP-Code:
        ini_set('memory_limit''32M'); 
        Das Skript:

        PHP-Code:
            function resize($path$file$new_width$new_height)
            {    
                
        $size         getimagesize($path.$file);
                
        $width_old    $size[0];
                
        $height_old   $size[1];
                
        // Neues Format definieren, 600 px maximal bei Höhe und Breite
                
        if ($width_old $height_old) {
                    
        $height_new intval($height_old $width_new $width_old);
                } else 
                {
                    
        $width_new  intval($width_old $height_new $height_old);
                }
                 
        // Bild verarbeiten
                
        $picture_old imagecreatefromjpeg($path.$file);
                
        $picture_new imagecreatetruecolor($width_new$height_new);
                
        imagecopyresampled($picture_new$picture_old0000$width_new$height_new$width_old$height_old);

                
        // Neues Bild speichern
                
        $create imagejpeg($picture_new$path.$file);
                
        imagedestroy($picture_new);
                
        $bild[$i] = $newname;
                return 
        true;
            } 

        Kommentar


        • #5
          Warum probierst du's nicht einfach aus?

          Kommentar


          • #6
            Habe ich. Es klappt leider nicht.

            Kommentar


            • #7
              Original geschrieben von =firesimon=
              Habe ich. Es klappt leider nicht.
              1. Muss es dir erlaubt sein, Veränderungen an der php.ini vorzunehmen.

              2. Sollte das neue Speicherlimit größer sein als das alte. Dessen Größe erfährst du mit ini_get().

              Lass dir mal die Abmessungen der Grafik ausgeben, die getimagesize() ermittelt hat. Das kann einen Hinweis darauf liefern, wieviel Hauptspeicher die dazu passende Image-Resource belegt. Guckst du:

              http://www.php-resource.de/forum/sho...094#post607808
              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

              Kommentar

              Lädt...
              X