Bildgrösse falsch ausgelesen?

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

  • Bildgrösse falsch ausgelesen?

    Hallo zusammen!

    Ich hab ein Upload-Script gemacht für Bilder und dabei wird auf die Bildgrösse überprüft:

    if ($img = GetImageSize($_FILES['userfile']['tmp_name'][$i])) {
    if (($img[0] >= 451) && ($img[1] >= 339)) {
    //Bild verkleinern
    }
    }

    Wenn ich jetzt ein Horizontales Bild mit den Massen 450 x 338 hochlade.
    http://spring.realone.ch/pics/galler...1/PICT2756.jpg

    Muss er das Bild nicht verkleinern und alles ist ok

    Wenn ich jetzt ein Vertikales Bild mit den Massen 338 x 450 hochlade verkleinert er das Bild auch nicht, obwohl die Höhe grösser als 339! Weiss jemand wieso?
    http://spring.realone.ch/pics/galler...1/PICT2672.jpg


    EDIT:
    bildeinbindung durch links ersetzt -> sind doch vollkommen unerheblich für's problem.
    wahsaga

    Zuletzt geändert von wahsaga; 05.08.2004, 11:37.
    Blog: busyboy.ch
    Portfolio: flinkthink.ch

  • #2
    [ ] du willst dir deine bedingung einmal selbst LAUT vorlesen
    Kissolino.com

    Kommentar


    • #3
      Nein, ich will eine Lösung für mein Problem.
      Blog: busyboy.ch
      Portfolio: flinkthink.ch

      Kommentar


      • #4
        Hi,

        was denn nun ? kleiner als oder grösser als, du musst dich entscheiden...

        Kommentar


        • #5
          es sollen nur Bilder verkleinert werden die grösser als 450 x 338 sind!
          Blog: busyboy.ch
          Portfolio: flinkthink.ch

          Kommentar


          • #6
            Original geschrieben von samic
            Nein, ich will [...]
            doch, willst du!

            du sagst, dein bild hat die maße 338 x 450.

            und, erfüllt das jetzt deine bedingung
            if (($img[0] >= 451) && ($img[1] >= 339))
            ?

            wieso bringen diesen belehrenden smilie eigentlich meistens die leute, die sich am d...lichsten anstellen ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ja, $img[1] ist doch jetzt grösser als 338?
              Blog: busyboy.ch
              Portfolio: flinkthink.ch

              Kommentar


              • #8
                Original geschrieben von samic
                ja, $img[1] ist doch jetzt grösser als 338?
                deine bedingung verlangt aber auch noch, dass gleichzeitig $img[0] >= 451 sein muss - denn du hast beide (teil-)bedingungen ja mit einem logischen und verknüpft ...!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  gut, if (($img[0] >= 451) || ($img[1] >= 339)) {

                  macht auch nichts anderes. Das Bild geht zwar in die Abfrage, wird aber nicht richtig verkleinert.
                  Blog: busyboy.ch
                  Portfolio: flinkthink.ch

                  Kommentar


                  • #10
                    was wohl daran liegt, dass deine berechnung falsch ist ... aber immerhin kommst du ja schon in die bedingung.
                    Kissolino.com

                    Kommentar


                    • #11
                      Original geschrieben von samic
                      gut, if (($img[0] >= 451) || ($img[1] >= 339)) {
                      macht auch nichts anderes.
                      doch, und zwar etwas vollkommen anderes.

                      Das Bild geht zwar in die Abfrage,
                      sag ich doch, es passiert etwas vollkommen anderes als vorher.

                      wird aber nicht richtig verkleinert.
                      tja, dann ist deine funktion zum verkleinern wohl ebenfalls noch fehlerhaft ...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Original geschrieben von samic
                        gut, if (($img[0] >= 451) || ($img[1] >= 339)) {

                        macht auch nichts anderes. Das Bild geht zwar in die Abfrage, wird aber nicht richtig verkleinert.
                        womit wir ja bei nem ganz anderen Problem wären ... zudem du übrigens noch keinen Code gepostet hast. Mit ...
                        PHP-Code:
                        if (($img[0] >= 451) && ($img[1] >= 339)) {
                        //Bild verkleinern

                        ... lässt sich leider nicht leicht auf einen Fehler schliessen
                        [color=red]Geht nicht[/color] ist keine Fehlermeldung

                        Kommentar


                        • #13
                          also, ich rufe die Funktion auf, achtung:

                          gen_thumb($bildli,$bildli, 450, 338);

                          und gen_thumb sieht so aus:
                          PHP-Code:
                          function gen_thumb($image$output$newwitdh$newheight) {

                                      
                          $file $image;
                                      
                          $tmp_file explode(".",$file);
                                      
                          $ext strtolower($tmp_file[count($tmp_file)-1]);
                                      
                          // Bild aus Datei erstellen; Bildtypen müssen unterschieden werden
                                      
                          if ($ext == "jpg" || $ext == "jpeg") {
                                          
                          $img imagecreatefromjpeg($file);
                                      } elseif (
                          $ext == "gif") {
                                          
                          $img imagecreatefromgif($file);
                                      } elseif (
                          $ext == "png") {
                                          
                          $img imagecreatefrompng($file);
                                      } elseif (
                          $ext == "wbmp") {
                                          
                          $img imagecreatefromwbmp($file);
                                      } else {
                                          return 
                          false;
                                      }
                                      
                          #### Größen ablesen
                                      
                          $old_w imagesx($img);
                                      
                          $old_h imagesy($img);
                                      
                          #### neue Größen bestimmen
                                      
                          if ($old_w $old_h) {
                                          
                          $thumb_w $newwitdh;
                                          
                          $thumb_h $old_h*($newwitdh/$old_w);
                                      }
                                      if (
                          $old_w $old_h) {
                                          
                          $thumb_w $old_w*($newheight/$old_h);
                                          
                          $thumb_h $newheight;
                                      }
                                      if (
                          $old_w == $old_h) {
                                          
                          $thumb_w $newwitdh;
                                          
                          $thumb_h $newheight;
                                      }
                                       
                          #### Bild erzeugen in korrekter Größe
                                      
                          $new_img = @imagecreatetruecolor($thumb_w,$thumb_h);
                                      if (!
                          $new_img) {
                                          
                          $new_img imagecreate($thumb_w,$thumb_h);
                                          
                          imagecopyresized($new_img,$img,0,0,0,0,$thumb_w,$thumb_h,$old_w,$old_h);
                                      } else {
                                          
                          imagecopyresampled($new_img,$img,0,0,0,0,$thumb_w,$thumb_h,$old_w,$old_h);
                                      }
                                      
                          #### Bild speichern; Bildtypen müssen unterschieden werden
                                      
                          if ($ext == "jpg" || $ext == "jpeg") {
                                          
                          imagejpeg($new_img,$output);
                                      } elseif (
                          $ext == "gif") {
                                          
                          //imagegif($new_img,$output);
                                          
                          echo "sorry, gif können noch nicht verkleinert werden<br>";
                                          return 
                          false;
                                      } elseif (
                          $ext == "png") {
                                          
                          imagepng($new_img,$output);
                                      } elseif (
                          $ext == "wbmp") {
                                          
                          imagewbmp($new_img,$output);
                                      } else {
                                          return 
                          false;
                                      }
                                      
                          #### Cache leeren

                                      
                          imagedestroy($new_img);
                                      
                          imagedestroy($img);

                                      return 
                          true;

                          Kann mir jemand sagen, wann man wieder gif verkleinern kann? Das hat doch "Lizenliche" Gründe?!
                          Blog: busyboy.ch
                          Portfolio: flinkthink.ch

                          Kommentar


                          • #14
                            Und? Wo ist jetzt der Fehler?
                            Blog: busyboy.ch
                            Portfolio: flinkthink.ch

                            Kommentar


                            • #15
                              Und wo ist deine Fehlermeldung?

                              Kommt eine? Oder passiert einfach gar nix? Was hast du schon unternommen um den Fehler zu lokalisieren? Wenn ja, in welchen Zeilen befindet er sich? Hat die Funktion die richtigen Wert übergeben bekommen? etc.

                              Ich glaube nicht, dass hier irgendjemand Lust hat für dich den Code zu debuggen. Die meisten hier sind gerne bereit dir bei konkreten Problemen zu helfen ... aber einfach nur zu sagen "geht nicht" und dann noch zu drängeln ist nicht wirklich gern gesehen ...
                              [color=red]Geht nicht[/color] ist keine Fehlermeldung

                              Kommentar

                              Lädt...
                              X