thumbs erzeugen, code falsch?

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

  • thumbs erzeugen, code falsch?

    hallo zusammen.

    bräuchte bitte mal wieder eure hilfe.

    ich möchte mir (vielleicht mit eurer hilfe) ein fotoalbum zusammen bauen bzw mir von den großen bildern halt
    "thumbs" erzeugen.
    (ja ich weiß das gabs hier schon 10000x, sorry)

    hab mich mal ein klein wenig umgesehen gehabt und hab mir
    nun diesen code zusammen gebaut.

    hab mir das beispiel von diesen beiden links mal etwas zu herzen genommen und wollte anhand dieser mal meine
    anfänge machen.
    imagecopyresampled
    und
    imagecopyresized

    nun sieht mein script so aus.

    PHP-Code:

    //$filename2 = 'test.jpg';
    $percent 0.1;
    $verz opendir('pics');

    $filename = array();

    while (
    $file readdir ($verz))
    {
        if(
    $file != "." && $file != "..")
        {
           
    array_push($filename,$file);
        }
        else {}    
    }
    closedir($verz);


    header('Content-type: image/jpeg');


    for(
    $x=0;$x<count($filename);$x++){

    $hilfs_filename $filename[$x];

    list(
    $width$height) = getimagesize($hilfs_filename);
    $new_width $width $percent;
    $new_height $height $percent;

    // Resample
    $image_p imagecreatetruecolor($new_width$new_height);
    $image imagecreatefromjpeg($hilfs_filename);
    imagecopyresampled($image_p$image0000$new_width$new_height$width$height);

    // Output
    imagejpeg($image_pnull100);

    nun bekomme ich immer diese fehlermeldung:
    Die Grafik "http://localhost/all/bilder_erstellen/bilder.php" kann nicht angezeigt werden, weil sie Fehler enthält.
    ich kann nun leider nichts damit anfangen, vielleicht könntet
    ihr mir bitte helfen was ich in meinen script ändern sollte oder
    was ich vielleicht noch brauche damit das ganze vielleicht
    lauffähig wird.

    Danke für eure Hilfe.

    P.S: sorry falls ich die Suche nicht gründlich genug benutzt habe.
    Zuletzt geändert von Magic11; 14.12.2004, 21:04.
    shit happens

  • #2
    Haste Testausgaben gemacht? Wie groß ist die Datei?

    Kommentar


    • #3
      wow das ging ja wieder schnell.

      also die 5 dateien die in dem ordner drinen sind.
      sind zw. 20 und 90kb groß und haben alle eine
      auflösung von 800*600.

      mit dem beispiel wie es hier bei imagecopyresampled
      kann ich zumindest 1 datei verkleinern nun wollte ich das halt damit
      verbinden dass ich mehrere fotos hintereinander verkleinern lasse,
      nur so wie ich es geschrieben habe, merkert er rum.
      shit happens

      Kommentar


      • #4
        also die 5 dateien die in dem ordner drinen sind.
        sind zw. 20 und 90kb groß und haben alle eine
        auflösung von 800*600.
        ich meinte die enddateien (thumbs)

        mit dem beispiel wie es hier bei imagecopyresampled
        kann ich zumindest 1 datei verkleinern nun wollte ich das halt damit
        verbinden dass ich mehrere fotos hintereinander verkleinern lasse,
        schleife drum und gut...

        nur so wie ich es geschrieben habe, merkert er rum.
        Drum habe ich nach testausgaben gefragt. wieso ignorierst du mich?

        Kommentar


        • #5
          So hast du doch alle Bilder in einer Datei ausgegeben, also
          header-Bilddaten-header-Bilddaten-header-Bilddaten usw.,
          willst du die Bilder nicht jeweils speichern und dann mit ner schleife
          öffnen? (Ich mein nur wenn du sowieso n album basteln willst...)
          Der Mensch ist ein Tier das zuviel denkt!

          Kommentar


          • #6
            kommentier die Zeile mit dem Header aus, vielleicht wird ne Fehlermeldung ausgegeben!

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              kommentier die Zeile mit dem Header aus, vielleicht wird ne Fehlermeldung ausgegeben!
              header ist überflüssig, vermute aber nicht, dass da ne fehlermeldung kommt, da der code ansich richtig ist. problem ist nur, dass man schlecht 5 bilder auf einmal ausgeben kann. das ist so als ob 5 bilder in einer datei gespeichert sind, was natürlich so nicht geht.

              stichwort speichern wurde bereits gegeben.

              Kommentar


              • #8
                hab ich doch gesagt...
                Der Mensch ist ein Tier das zuviel denkt!

                Kommentar


                • #9
                  [...]wurde bereits gegeben.

                  Kommentar


                  • #10
                    also wenn ich den header auskommentiere
                    dann bekomme ich für jede der dateien diese meldungen:

                    EDIT:
                    Warning: getimagesize(BlaueBerge.jpg): failed to open stream: No such file or directory in C:\Programme\Apache Group\Apache2\htdocs\all\bilder_erstellen\bilder.php on line 28


                    EDIT:
                    Warning: imagecreatetruecolor(): Invalid image dimensions in C:\Programme\Apache Group\Apache2\htdocs\all\bilder_erstellen\bilder.php on line 33


                    EDIT:
                    Warning: imagecreatefromjpeg(BlaueBerge.jpg): failed to open stream: No such file or directory in C:\Programme\Apache Group\Apache2\htdocs\all\bilder_erstellen\bilder.php on line 34


                    EDIT:
                    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\Programme\Apache Group\Apache2\htdocs\all\bilder_erstellen\bilder.php on line 35


                    EDIT:
                    Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\Programme\Apache Group\Apache2\htdocs\all\bilder_erstellen\bilder.php on line 38


                    @TobiaZ: sorry dann hab ich mich falsch ausgedrückt, die thumbs sollten ja so wie ich das verstanden habe bei jedem schleifendurchlauf, am ende, in dieser
                    zeile ausgegeben werden

                    PHP-Code:
                    imagejpeg($image_pnull100
                    aber das passiert eben nicht und ich bekomme eben nur diese fehlermeldung
                    EDIT:
                    Die Grafik "http://localhost/all/bilder_erstellen/bilder.php" kann nicht angezeigt werden, weil sie Fehler enthält.


                    ich hoff ich hab mich nun besser ausgedrückt.

                    @haSta: ich hätte ja vor dass die thumbs immer wieder neu berechnet werden wenn auf die Seite zugegriffen wird.
                    die großen bilder sind ja schon in einem ordner gespeichert
                    ich möchte mir ja nur für jedes bild ein thumb errechnen lassen.

                    also vielleicht nochmal zum verständnis.
                    in dem angegeben ordner "pics" sind 5 .jpg dateien drin die jeweils zw. 20 und 80kb groß sind. und nun
                    möchte ich mir auf einer seite einfach die 5 kleinansichten für die jeweiligen fotos ausgeben lassen.
                    Zuletzt geändert von Magic11; 14.12.2004, 21:05.
                    shit happens

                    Kommentar


                    • #11
                      Original geschrieben von Magic11
                      in dem angegeben ordner "pics" sind 5 .jpg dateien drin
                      diesen ordner hast du beim versuch, die bilder per image-funktion zu öffnen, aber nicht angegeben.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Wenn du aber jedesmal die thumbs neu berechnest schnellt der
                        Server Load aber voll in die höhe ( falls die Anwendung größer
                        wird). Was spricht dagegen die Thumbs einfach zu speichern?

                        Wenn dus wirklich jedesmal neu berechnen lassen willst musst du
                        dir ne "bilder.php" machen und da inner schleife die "bild.php"
                        innem <img> Tag aufrufen, so oft wie viel bilder halt in dem
                        Ordner sind.
                        Der Mensch ist ein Tier das zuviel denkt!

                        Kommentar


                        • #13
                          @TobiaZ: sorry dann hab ich mich falsch ausgedrückt, die thumbs sollten ja so wie ich das verstanden habe bei jedem schleifendurchlauf, am ende, in dieser
                          das geht so nicht. warum habe ich oben geschrieben

                          Kommentar


                          • #14
                            Ungefähr so...

                            Die Bilder.php (bzw. die Seite auf der die Thumbs angezeigt werden):

                            PHP-Code:
                            <?php

                            $verz 
                            opendir('pics');

                            $filename = array();

                            while (
                            $file readdir ($verz))
                            {
                                if(
                            $file != "." && $file != "..")
                                {
                                   
                            array_push($filename,$file);
                                }
                                else {}    
                            }
                            closedir($verz);

                            for(
                            $x=0;$x<count($filename);$x++){

                            echo 
                            "<img src="bild.php?filename=$filename[$x]">";

                            }

                            ?>

                            ...und die bild.php:


                            PHP-Code:
                            <?php

                            header
                            ('Content-type: image/jpeg');

                            $filename $_GET[filename]

                            $file fopen("pics/$filename","rb");
                            $hilfs_filename fread($file,filesize($file));
                            fclose($file);

                            list(
                            $width$height) = getimagesize($hilfs_filename);
                            $new_width $width $percent;
                            $new_height $height $percent;

                            // Resample
                            $image_p imagecreatetruecolor($new_width$new_height);
                            $image imagecreatefromjpeg($hilfs_filename);
                            imagecopyresampled($image_p$image0000$new_width$new_height$width$height);

                            // Output
                            imagejpeg($image_pnull100);

                            ?>
                            müsst eigentlich so ungefähr hinhauen..
                            Der Mensch ist ein Tier das zuviel denkt!

                            Kommentar


                            • #15
                              @haSta:

                              also deine idee klappt noch net ganz,
                              es werden zwar anscheinend die thumbs erzeugt aber das bild an sich wird nicht angezeigt.

                              die beiden dateien sollten nicht zufällig in dem "pics" ordner liegen oder?

                              hatte 2 änderungen vorgenommen:

                              in der bilder.php hab ich diese zeile geändert:
                              PHP-Code:
                              echo "<img src=bild.php?filename=".$filename[$x].">"
                              und in der bild.php hat nur ein ";" gefehlt.


                              @TobiaZ: ich hatte einen kleinen Fehler gefunden, ich hab etwas rumgespielt und die bilder.php einfach mal in den ordner "pics" reingeworfen und in der bilder.php den opendir wie folgt abgeändert:
                              opendir('.')
                              so hatte er mir zumindest ein einziges thumb erzeugt aber sonst
                              nichts.


                              Thema speicherung: dies hört sich gut an, nur wie ist dies für mich zu realisieren?
                              hat hier der haSta etwa schon vorarbeit geleistet??

                              Danke nochmals für eure Hilfe.
                              shit happens

                              Kommentar

                              Lädt...
                              X