Bilder skalieren

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

  • Bilder skalieren

    Hallo!

    Ich stehe vor einem Dicken Prob! Forum habe ich durchsucht und auch was gefunden doch nicht das, was ich für meinen Zweck benötige! Habe zwar probiert es umzusetzten so das es für mich funktionert habe es aber nicht hinbekommen!

    Also ich habe ein Bilderalbum in php mit mysql geschrieben. möchte jetzt das die Bilder die es anzeigt im verhältnis verkleinert richtig darstellt ohne eine neue Bilddatei erzeugen zu müssen.

    Wer kann mir helfen oder wo gibts es was das mir weiter helfen könnte!

    Bin für jede Hilfe dankbar!

    Gruß
    Sein oder nicht sein ...

  • #2
    Nehmen wir an, dein Bild hat eine Auflösung von 640(width) x 480(height) und dein kleines Bild soll eine maximale Auflösung von 150(width) x 100(height) haben.
    Dann nimmt du von deinem original die kleinste Kante, z. B. 480.
    Diese dividierst du dann duch die 100, die max Höhe deines thumbs.

    480 / 100 = 4,8

    Jetzt hast du einen Faktor.

    Round(640 / 4,8) = 133
    Round(480 / 4,8) = 100

    Richtig so?
    Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

    Kommentar


    • #3
      Ich würde davon abraten, so etwas ohne ein eigenständiges Thumbnail zu machen. Dein Server wird sich bedanken, wenn er jedes Bild beim Seitenaufruf einlesen, verarbeiten und wieder ausgeben muss. Das mag ja bei vielleicht 5 Bildern pro Seite noch gehen, aber bei 20?

      Kommentar


      • #4
        Ich schätze mal, du hast $h_max und $w_max ...

        dann reicht es, getimagesize mit einem Dreisatz zu verbinden und fertig:

        PHP-Code:
        list($w$h) = getimagesize($dateiname);
        $attrib = ($w>$h 'width="'$w_max'"' 'height="'$h_max'"');
        echo 
        '<img src="'$dateiname'" '$attrib'">'
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Ah ja!

          Also ich werde das mal ausprobieren! Ja Du hast recht wenn es 20 Bilder sind pro Seite aber es werden maximal 8 pro Seite angezeigt!

          Frage wenn ich das Thumbnail Script von dem Tutorial von PHP-Resource nehme das muß ich ja ausführen wenn ich das Bild mit einem Upload script hochlade oder?

          Gruß
          Sein oder nicht sein ...

          Kommentar


          • #6
            Wenn ich das Tutorial richtig deute, wird immer dann, wenn die Seite aufgerufen wird, das Bild im Ordner "PicPathIn" als Thumbnail in den Ordner "PicPathOut" gesichert. Du kannst das natürlich mit einem Upload verknüpfen.

            Kommentar


            • #7
              Original geschrieben von Innuendo
              Ich würde davon abraten, so etwas ohne ein eigenständiges Thumbnail zu machen. Dein Server wird sich bedanken, wenn er jedes Bild beim Seitenaufruf einlesen, verarbeiten und wieder ausgeben muss. Das mag ja bei vielleicht 5 Bildern pro Seite noch gehen, aber bei 20?
              OK, das Erzeugen eines Thumbnails ist natürlich von Vorteil, geht ja viel schneller. Aber ich denke die Zeiten, wo der Server bei 30 Bilder in die Knie geht sind vorbei. Deswegen finde ich, das Titus seine Lösung sehr passabel ist.
              Wenn du die Thumbs zur Laufzeit generierst, dann musst du prüfen ob es bereits vorhanden ist, oder du es neu generieren musst. Desweiteren musst du prüfen ob das Thumb überhaupt noch aktuell ist, oder ob sich das Original bereits verändert hat. In diesem Fall musst du erneut ein Thumb erzeugen.

              Wobei ich mir den Aufwand machen würde. Deine Benutzer werden sich freuen! Denn wenn du dein Thumb über die Parameter des <img> machen würdest, muss der Client trotzdem das original laden und das ist natürlich um ein Vielfaches größer als es sein muss.
              Ist dann natürlich auch eine Frage des Traffics.
              Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

              Kommentar


              • #8
                @titus,
                habe das skript probiert und er klappt wunderbar bei bildern die grösser sind als meine vorgabe ($h_max = 400 und $w_max = 400)

                aber wenn die bilder kleiner sind, werden sie auf 400 vergrössert, wie kann ich das abschalten?

                habe mich an einer if abfrage probiert, bin aber gescheitert.

                bitte helfe mir.

                PHP-Code:
                list($w$h) = getimagesize($dateiname);
                $attrib = ($w>$h 'width="'$w_max'"' 'height="'$h_max'"');
                echo 
                '<img src="'$dateiname'" '$attrib'">'
                http://www.nanc-angel.de

                Kommentar


                • #9
                  na was wohl!?! einfach noch eine Bedingung dazu packen:
                  PHP-Code:
                  list($w$h) = getimagesize($dateiname);
                  $attrib ($w>$w_max || $h>$h_max
                    
                  ? ($w>$h ' width="'$w_max ' height="'$h_max). '"'
                    
                  ''
                  );
                  echo 
                  '<img src="'$dateiname'"'$attrib'>'
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar

                  Lädt...
                  X