Ankündigung

Einklappen
Keine Ankündigung bisher.

Schwarzes Bild bei ImageCopyResampled

Einklappen

Neue Werbung 2019

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

  • Schwarzes Bild bei ImageCopyResampled

    Hey,

    ich bastel grade ein Skript zum Hochladen, verkleinern und Speichern von Bildern. Dabei handelt es sich nur um Jpegs.

    Mein Skript so far:

    PHP-Code:
    foreach ($_FILES['files']['name'] as $i => $name) {
            if (
    strlen($_FILES['files']['name'][$i]) > 1
            {
              if (
    move_uploaded_file($_FILES['files']['tmp_name'][$i], $dir."/".$name)) {
                echo 
    $name;
                
    $source $dir."/".$name;
                
                
    //Seitenverhältnis errechnen
                
    $size getimagesize("$source");
                
    $width $size[0];
                
    $height $size[1];
                
                
    $image_total_size 1080;
                
                if(
    $width >= $height)
                {
                  
    $newwidth $image_total_size;
                  
    $newheight intval($newwidth $height $width);
                  
    $x $image_total_size;
                  
    $y $newheight;
                }
                else if(
    $width $height)
                {
                  
    $newheight $image_total_size;
                  
    $newwidth intval($newheight $width $height);
                  
    $x $newwidth;
                  
    $y $image_total_size;
                }
                
                if(
    $size[2] == 2)
                {
                  
    $old_picture ImageCreateFromJPEG("$source");
                  
    $new_picture imagecreatetruecolor($newwidth$newheight);
                  
    imagecopyresampled($new_picture$old_picture0000$newwidth$newheight$width$height);
                  
    ImageJPEG($new_picture"$source");
                }
              }
            }
        } 
    In $dir ist der Pfad gespeichert.
    Das Skript funktioniert auch überwiegend. Leider aber nicht immer.
    Bei manchen Bildern wird nach dem "resizen" ein schwarzes Bild erzeugt, bei anderen kommt ein internal Skript Error (Ich vermute, das liegt an den langen Upload-Zeiten).
    Schwarz werden die Bilder überwiegend, wenn sie etwas größer sind, der Skript Error erscheint meist bei einem Bild > 70Mb (ja, das soll so groß )

    Das lässt vielleicht vermuten, dass es an der php.ini liegt. Deswegen habe ich folgende Einstellungen vorgenommen:

    PHP-Code:
    post_max_size 1024M
    memory_limit 
    512M
    max_execution_time 
    10000
    session
    .gc_maxlifetime 10000
    max_file_uploads 
    2000
    upload_tmp_dir 
    = /tmp
    upload_max_filesize 
    1024M 
    Das Verzeichnis /tmp hat die Schreibberechtigungen 755 so wie alle anderen Verzeichnisse und Dateien auf dem Server.
    Der Server hat, wie ich per phpinfo() gesehen habe, die Einstellungen soweit übernommen.

    Hat wer vielleicht irgendeine Idee, woran das sonst liegen könnte?

    LG
    Daddeldu


  • #2
    Zitat von daddeldu Beitrag anzeigen
    Das lässt vielleicht vermuten, dass es an der php.ini liegt.
    Nicht vermuten. Nachschauen. Bei einem 500er steht im Errorlog wo genau das Problem liegt.

    Kommentar


    • #3
      Das ist der letzte Teil des Error-Logs. Ich sehe da irgendwie kein Hinweis auf den 500er... :/

      Code:
      03.02.2015 21:51:30 meineseite.de [client 86.103.92.0] , referer: http://meineseite.de/index.php?folder=Sport%20im%20Studio
      03.02.2015 21:51:30 meineseite.de [client 86.103.92.0] PHP Warning:  filesize(): stat failed for /CIMG2087.JPG in /mnt/webq/b2/18/54300918/htdocs/index.php on line 209, referer: http://meineseite.de/index.php?folder=Sport%20im%20Studio
      03.02.2015 21:51:30 meineseite.de [client 86.103.92.0] PHP Warning:  filesize(): stat failed for /Der Fu\xc3\x9fballer.jpg in /mnt/webq/b2/18/54300918/htdocs/index.php on line 209, referer: http://meineseite.de/index.php?folder=Sport%20im%20Studio
      03.02.2015 21:51:30 meineseite.de [client 86.103.92.0] PHP Warning:  filesize(): stat failed for /IMG_0661.JPG in /mnt/webq/b2/18/54300918/htdocs/index.php on line 209, referer: http://meineseite.de/index.php?folder=Sport%20im%20Studio
      03.02.2015 21:51:35 meineseite.de [client 95.118.13.0] PHP Warning:  filesize(): stat failed for /CIMG2078.JPG in /mnt/webq/b2/18/54300918/htdocs/index.php on line 211, referer: http://meineseite.de/index.php?folder=&folder_single=pictures/&picture=CIMG2088.JPG
      03.02.2015 21:51:35 meineseite.de [client 95.118.13.0] PHP Warning:  filesize(): stat failed for /CIMG2088.JPG in /mnt/webq/b2/18/54300918/htdocs/index.php on line 211, referer: http://meineseite.de/index.php?folder=&folder_single=pictures/&picture=CIMG2088.JPG
      03.02.2015 21:51:35 meineseite.de [client 95.118.13.0] PHP Warning:  filesize(): stat failed for /Der Fu\xc3\x9fballer.jpg in /mnt/webq/b2/18/54300918/htdocs/index.php on line 211, referer: http://meineseite.de/index.php?folder=&folder_single=pictures/&picture=CIMG2088.JPG
      03.02.2015 21:51:35 meineseite.de [client 95.118.13.0] PHP Warning:  filesize(): stat failed for /Sport im Studio in /mnt/webq/b2/18/54300918/htdocs/index.php on line 211, referer: http://meineseite.de/index.php?folder=&folder_single=pictures/&picture=CIMG2088.JPG
      03.02.2015 21:51:35 meineseite.de [client 95.118.13.0] PHP Warning:  filesize(): stat failed for /Studio in /mnt/webq/b2/18/54300918/htdocs/index.php on line 211, referer: http://meineseite.de/index.php?folder=&folder_single=pictures/&picture=CIMG2088.JPG
      03.02.2015 22:24:01 meineseite.de [client 95.118.13.0] Premature end of script headers: send.php, referer: http://meineseite.de/admin.php
      03.02.2015 22:43:23 meineseite.de [client 95.118.13.0] Premature end of script headers: send.php, referer: http://meineseite.de/admin.php
      Und ich habe noch nicht mal eine filesize()-Funktion in meinem Skript (nicht mehr). Braucht der Server so lange zum updaten der Skripte? Ist bei Strato...

      Kommentar


      • #4
        Zitat von daddeldu Beitrag anzeigen
        Das ist der letzte Teil des Error-Logs.
        Da stehen Zeitstempel dabei. Zu welchem Zeitpunkt ist der 500er aufgetreten? Und wie sieht der dazugehörige Code aus? Um welche Zeile es geht steht in der Fehlermeldung.

        Braucht der Server so lange zum updaten der Skripte? Ist bei Strato...
        Zum Entwickeln sollte man nie den Produktivserver nehmen, setz dir eine lokale Entwicklungsumgebung auf.

        Kommentar


        • #5
          Oh Sorry, war ein Interner Server Error...

          Code:
          Internal Server Error
          
          The server encountered an internal error or misconfiguration and was unable to complete your request.
          
          Please contact the server administrator, service@webmailer.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.
          
          More information about this error may be available in the server error log.

          Kommentar


          • #6
            Ah, ich bin irgendwie.. naja
            Hier steht es:

            Code:
            04.02.2015 19:29:12 meineseite.de [client xx.xxx.xx.x] Insufficient memory (case 4), referer: http://meineseite.de/admin.php
            Hm aber ich habe den Speicher in der php.ini doch schon hochgeschraubt?

            Kommentar


            • #7
              meist bei einem Bild > 70Mb
              Das ist vermutlich die Dateigröße, richtig?

              Wisse, das die Dateigröße nicht gleich der Größe (Anzahl der Bytes) des Bildes im Speicher ist.
              Welche Ausmaße hat das Bild (Breite * Höhe) und welche Farbtiefe?
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                wow, nemn 70 mb jpeg, wie nimmste demn sowas auf?

                Kommentar


                • #9
                  Es ist eine seite für einen Fotografen er nimmt mehrere Bilder auf und überlagert die. Farbtiefe weiß ich leider nicht, Pixel liegen auf jeden Fall über 3000x2000. Ich frage noch einmal nach.
                  Wie würde man das Problem denn umgehen? Ich dachte, es reicht die uploadgröße zu erhòhen...

                  Lg

                  Kommentar


                  • #10
                    Ok eetwas unterschätzt...

                    Abmessung: 13947 x 4649
                    Auflösung: 240dpi
                    Bildtiefe: 24
                    sRGB, Auflösungseinheit 2.

                    Und er hat bestimmt auch noch größere...

                    Kommentar


                    • #11
                      da hat er ja nachgedacht, der fotograph. und, wie stellt der sich das praktisch mit dem anschauen vor?

                      Kommentar


                      • #12
                        Zitat von daddeldu Beitrag anzeigen
                        Ok eetwas unterschätzt...

                        Abmessung: 13947 x 4649
                        Auflösung: 240dpi
                        Bildtiefe: 24
                        sRGB, Auflösungseinheit 2.

                        Und er hat bestimmt auch noch größere...
                        Reicht für ein Rechenbeispiel...

                        13947 x 4649 Pixel = 64.839.603 Pixel
                        jeweils 24 Bit (= 3 Byte) Farbinfo = 194.518.809 Byte Rohdaten

                        Das 70MB Jpg belegt also im Speicher 185 MB (plus ein paar Byte an Overhead für Verwaltungsdaten, Zeilen-padding usw.)

                        Es sollte dir jedenfalls eine Vorstellung davon geben, mit welchen Dimensionen du es zu tun bekommst.

                        edit: moma, für einen Fotografen sind mehr BPP und DPI natürlich besser. Das so ein Bild sich nicht für eine Webansicht eignet, kann ihm (dem fotografen) egal sein, das ist Sache des Webdesigners/-developers, der davon eine screentaugliche Ansicht schaffen muss. Aka: Weniger DPI, kleinere Abmessungen - es soll auf vielleicht 1024x768 oder 1920x1024 bei 96 oder 72 dpi runtergerechnet werden.

                        Das Fazit lautet aber: PHP ist vielleicht nicht die geeignete Software, um das zu tun.
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          Das so ein Bild sich nicht für eine Webansicht eignet, kann ihm (dem fotografen) egal sein, das ist Sache des Webdesigners/-developers, der davon eine screentaugliche Ansicht schaffen muss.
                          wenn er sich schon nicht an der zeit, welche seine bilder zum upload brauchen stört, an dem speicherplatz, welchen sie allokieren, kann ich ihm auch nicht mehr helfen.

                          welche bildformate zum darstellen im web, zu,m verschicken in emails etc. geeignet sind, lernt man heutzutage schon in Vh anfängerkurs.

                          jeder der so wenig über sein tellerand schaut(..).
                          http://jan.ucc.nau.edu/lrm22/pixels2...calculator.htm

                          Kommentar

                          Lädt...
                          X