frage zu Gallery tutorial

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

  • frage zu Gallery tutorial

    Hi,
    da ich ne Galleryphp coden möchte, habe ich mir für ein paar anregungen mal das Tutorial hier auf euren Seiten angeschaut....
    Nun habe ich ein paar fragen zu manchen Codezeilen.
    1. Frage:

    PHP-Code:
    $neueBreite=100
    $neueHoehe=intval($hoehe*$neueBreite/$breite); 
    Die neue Breite beträgt immer 100px. Ich raff das jetzt net warum ich die Höhe des Ursprungsbildes mit 100 ($neueBreite) multiplizieren muss und dann durch die Ursprungsbreite teilen muss. Um wieviel wird das Bild zu einem Thumbnail verkleinert? Irgendwas hat das mit dem Verhältnis der Seiten zu tun. Es muss ja immer 4:3 rauskommen oder?


    2.Frage:
    Und dann habe ich in der Beschreibung noch folgendes gelesen:

    "Das Herzstück ist die Funktion "ImageCopyResized()". Damit wird das neue Bild erzeugt. Allerdings benötigt die Funktion nicht die Dateinamen des Orginalbildes bzw. der Zieldatei, sondern den Identifier dieser Dateien."

    Was ist ein Identifier und warum kann man nicht Dateien direkt über imagecopyresized bearbeiten und resizen?

    3. Frage:
    Warum muss (siehe Code oben) das Ergebnis von der Rechenoperation in ein Integer umgewandelt werden. Normalerweise wandelt doch PHP selbst die Vars in die benötigten Vartypen um?!


    Tschau und vielen Dank für eure Erklärungen!
    trekkie2003
    www.hsv-hockenheim.com
    www.carl-theodor-schule.de
    www.hockenheimring.de
    www.uni-heidelberg.de

  • #2
    zu 1.) Das ist ein gewöhnlicher Dreisatz. Die Breite wird festgelegt (fürs Layout) und die Höhe dementsprechend angepasst, damit man das Bild nicht verzerrt!

    zu 2.) a - Identifier sind "Handle". Man muss erst das Bild einem Handle zuweisen und kann ihn dann mit diesem Befehl bearbeiten
    b - Darum!

    zu 3.) http://de.php.net/intval


    Gruß,
    Chris

    Kommentar


    • #3
      intval

      Das habe ich auch schon nachgelesen...was ich nur wissen wollte ist der Grund warum man das nach Integer umwandelt. das man es umwandelt seh ich ja anhand dem code...


      Zum meiner Frage 2 mit dem Identifier: Irgendwas müssen sich doch die Entwickler dieser Sprache gedacht haben...

      Tschau und many thx harakiri
      www.hsv-hockenheim.com
      www.carl-theodor-schule.de
      www.hockenheimring.de
      www.uni-heidelberg.de

      Kommentar


      • #4
        Na die Lösung hättest auf der angegeben Seite gefunden .

        intval() wandelt u.a. auch Gleitkommazahlen um zu INTEGER Zahlen...

        PHP-Code:
        echo intval(5,5); 
        gibt also "5" aus.

        Und warum man das benötigt?

        int imagecopyresized ( resource dst_im, resource src_im, [color=red]int[/color] dstX, [color=red]int[/color] dstY, [color=red]int[/color] srcX, [color=red]int[/color] srcY, [color=red]int[/color] dstW, [color=red]int[/color] dstH, [color=red]int[/color] srcW, [color=red]int[/color] srcH)



        Zur anderen Frage: muss ich mal rechergieren .

        €dit: Ich denke diese Identifier/Handles sind eben interne Pointer auf Dateien/Bilder womit PHP eben arbeitet. Erst bei der Ausgabe wird das Bild ja auf den Monitor/die Festplatte projeziert und bekommt seinen "richtigen" Namen... naja so erklär ich mir das zumindest ...

        Gruß,
        Christian
        Zuletzt geändert von harakiri; 22.08.2004, 21:24.

        Kommentar


        • #5
          Ja das ist schon klar mit dem Integer...aber normalerweise macht das PHP doch automatisch. Das wurde ja auch immer so als vorteil von PHP gegenüber anderen Sprachen andgepriesen...
          Deshalb verstehe ich das nicht, da das normalerweise doch von PH selbst angepasst....d.h. automatisch in Vartyp Integer umgewandelt...

          tschau
          trekkie2003
          www.hsv-hockenheim.com
          www.carl-theodor-schule.de
          www.hockenheimring.de
          www.uni-heidelberg.de

          Kommentar


          • #6
            Was hattest du denn in Mathe?

            $hoehe*$neueBreite/$breite;

            Da kann logischerweise eine Dezimalzahl rauskommen, damit wäre der Wert kein integerwert mehr!

            Achja und zu deiner 1. Frage:
            Damit das Bild nicht gestaucht wird muss gelten:

            NeueHöhe/NeueBreite=AlteHöhe/AlteBreite

            (Relation muss gleich sein)

            Jetzt lös' das mal nach NeueHöhe auf!
            Zuletzt geändert von em-!x; 22.08.2004, 22:46.

            Kommentar


            • #7
              Tutorialfragen gehören ins Tutorialforum *verschieb*

              Kommentar


              • #8
                Das ist mir auch klar das das kein INtegerwert ist. Nur wandelt PHP normalerweise vor der Rechenop die Var dann in den entspr. Variablentyp um.
                Übrigens habe grad Abi gemacht. Von daher gehe ich einfach mal davon aus das ich Mathe kann und auch umstellen

                Ausgangspunkt:
                NeueHöhe/NeueBreite=AlteHöhe/AlteBreite


                Ergebnis:

                NeueHöhe=AlteHöhe*NeueBreite/AlteBreite


                Also tschau bis denne
                trekkie2003
                www.hsv-hockenheim.com
                www.carl-theodor-schule.de
                www.hockenheimring.de
                www.uni-heidelberg.de

                Kommentar

                Lädt...
                X