Ankündigung

Einklappen
Keine Ankündigung bisher.

getimagesize kann die Größen nicht aus dem Bild lesen

Einklappen

Neue Werbung 2019

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

  • getimagesize kann die Größen nicht aus dem Bild lesen

    Hallo erstmal!

    Ich habe ein kleines Tool, welches Bilder auf meinen Server hochladet und komprimiert. Es funktioniert alles soweit. Außer bei bestimmten Bildern funktioniert die funtktion getimagesize(); nicht!
    Hier ist so ein Bild zum Beispiel.http://akonet.ath.cx/test.jpg
    Weiß jemad wieso das sein kann?

    spotnik

    P.S.: Habe SuSE Linux 10.3 mit Apache2, php5 und GD-Library 2.35


  • #2
    zum beispiel photoshop legt in seinen jpegs nicht standardkonforme informationen an. diese stören normalerweise nicht bei der anzeige aber bei der grössenberechnung kommt mist dabei heraus.

    deswegen gibts im photoshop auch die option "für web abspeichern" oder so. ich denke das könnte damit zusammenhängen.

    Kommentar


    • #3
      PHP-Code:
      <?php
      var_dump
      (getimagesize('test.jpg'));
      funktioniert bei mir mit dem Bild
      array(7) {
      [0]=>
      int(3264)
      [1]=>
      int(2176)
      [2]=>
      int(2)
      [3]=>
      string(26) "width="3264" height="2176""
      ["bits"]=>
      int(
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
      }
      Das Bild ist allerdings als Datei schon 3,6MB groß. Vielleicht stößt Du an das Speicherlimit von php.

      Kommentar


      • #4
        Danke für den var_dump() - dabei fällt mir nämlich noch nen Satz zu dem PS Problem von oben ein:

        Photoshop kodiert einen Alphakanal ins JPEGs was nicht standardkonform ist - das war das Problem damals bei mir...

        Kommentar


        • #5
          Hallo!
          Danke für eure Antwort. An Photoshop kann es nicht liegen, da das Bild direkt aus der Kamera kommt. (sonst wäre es nicht so groß) Ist aber trotzdem eine nützliche Info, da ich Photoshop sehr viel verwende.
          Ich werde mal das vom David ausprobieren.

          Manuel

          Kommentar


          • #6
            Dann vielleicht gleich mal in der Version
            PHP-Code:
            <?php
            error_reporting
            (E_ALL);
            ini_set('display_errors'1);
            echo 
            'memory_limit='.ini_get('memory_limit')."<br />\n";
            flush();
            var_dump(getimagesize('test.jpg')); 
            echo 
            "<div>Done.</div>";
            Und bitte mit genau dem selben Bild wie unter http://akonet.ath.cx/test.jpg
            Bei gd2 brauchst Du pro Pixel 5 Bytes Speicherplatz (CMYK+alpha). 3264*2176*5bytes ~ 33,8MB

            Kommentar


            • #7
              Hallo!

              Wahrscheinlich liegt es doch am Uploadlimit, da wenn das Bild bereits am Server liegt funktioniert alles einwandfrei.
              In der php.ini ist
              upload_max_filesize = 5M

              In der httpd.conf hab ich nix gefunden.
              Woran könnte das liegen?

              Manuel

              Kommentar


              • #8
                Ah, ein Upload also. Dann lass Dir mal das Element $_FILES[...]['error'] anzeigen.

                Kommentar


                • #9
                  Ja , sorry!
                  Kurz was das Tool macht:
                  Es ladet ein Bild hoch und verkleinert es dann auf einen bestimmten Wert und legt es dann in einen Ordner ab.
                  $_FILES[...]['error'] gibt einen "0" aus. Ich nehme an, d.h. dass kein Fehler vorliegt.

                  $_FILES[...]['tmp_name'] gibt er auch aus.

                  Woran kann das dann noch liegen?

                  Manuel

                  Kommentar


                  • #10
                    Testest Du das Skript mit error_reporting(E_ALL) und display_errors?
                    Was gibt denn
                    PHP-Code:
                    echo 'filesize:'filesize($_FILES[...]['tmp_name']); 
                    aus?

                    Kommentar


                    • #11
                      Nur
                      filesize:3850581

                      spotnik

                      Kommentar


                      • #12
                        Ich habe keine Ahnung was ich gemacht habe, aber es geht jetzt auf einmal. Ich habe eigentlich nichts verändert weder in in irgendeinem .conf file noch in meinem Programm. Naja, Hauptsache es geht!

                        Vielen, vielen Dank für eure Hilfe!

                        spotnik

                        Kommentar

                        Lädt...
                        X