Header Manipulation für Bild-Ausgabe und danach echo

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

  • Header Manipulation für Bild-Ausgabe und danach echo

    Hi!

    Ich möchte mit PHP eine Grafik ausgeben und danach wieder Text. Aber, sobald man den Header dahingehend manipuliert, dass er eine Grafik ausgibt, kann man mit echo nichts mehr auf den Bildschrim ausgeben. Und ein neuerliches manipulieren des HEaders ist danach ja auch nicht mehr möglich!


    $file=$_FILES['image']['tmp_name'];
    $image = ImageCreateFromJpeg($file);
    header("Content-Type: image/jpeg");
    ImageJpeg($im,'',100);
    echo "x: " . imagesx($image) . '<br>' . "y: " . imagesy($image);

    Wie realisiert man das?

    Wieso kann man den Header nur einmal innerhalb einer Datei maipulieren?

    Liebe Grüsse.

  • #2
    Wieso kann man den Header nur einmal innerhalb einer Datei maipulieren?
    Du hast doch auch nur einen Kopf, oder?

    Du musst mit zwei Scripten arbeiten: eines, das das Bild liefert, und das andere ruft dieses Script in einem Image-Tag auf.

    Kommentar


    • #3
      Hi!

      Naja, ich möchte meine Bilder pixelweise ausgeben, damit sie niemand speichern kann.

      Habe schon daran gedacht, kleine Frames mit 1x1 Pixel zu generieren (also alles mit Tabellen), aber dann bin ich auf die PHP GD Libary gestossen.

      Hast du ein Beispiel?

      Liebe Grüsse.

      Kommentar


      • #4
        Original geschrieben von onlineuser
        Naja, ich möchte meine Bilder pixelweise ausgeben, damit sie niemand speichern kann.
        Das würde ja heißen, dass du auch für jeden Pixel ein <img> in den HTMl-Quellcode ausgeben müsstest?

        Klingt absolut idiotisch.
        Ist absolut unperformanter, den Traffic massiv erhöhender Schwachsinn.
        Verzichte auf so einen Unfug, es kann nicht klappen.

        Zur Not mache ich als User einfach einen Screenshot, und habe trotzdem das Bild.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi!

          Ja mit einem Screenshot hat man das Bild.

          Den Traffic erhöht es nicht, weil das PHP-File ja einen jpg-Stream ausgibt und somit ist der Verkehr gleich gross, wie wenn man ein Bild mit [img ...] ausgeben würde.

          Die Frage ist nur, wie ich das mit den 2 Scripten innerhalb einer Datei lösen kann. Der Header muss für jede GD-Libary Ausgabe auf jeden Fall manipuliert werden, damit der Browser weiss, dass jetzt eine Grafik kommt.

          Liebe Grüsse.

          Kommentar


          • #6
            Das, was du da vorhast, verhindert eigentlich nur das direkte Verlinken auf Bilder in deinem Webspace (btw. geht das auch mit mod_rewrite)

            Ansonsten schließe ich mich wahsaga an...

            Kommentar


            • #7
              Hi!

              Ja, aber ich möchte gleichzeitig noch ein Copyright in jedes Bild schreiben.

              Liebe Grüsse.

              Kommentar


              • #8
                Du musst mit zwei Scripten arbeiten: eines, das das Bild liefert, und das andere ruft dieses Script in einem Image-Tag auf.
                Wie relaisiere ich das mit den 2 Scripts? Eines für die Grafikausgabe und eines für die Textausgabe.

                Weiters ist es ja ein Problem 2 Grafiken hintereinander mit ImageJpeg auszugeben. Wie realisiert man das? Nach der Ausgabe des ersten Bildes kann man den Header nicht erneut setzen, dass der Browser weiss, dass noch ein Bild kommt!

                Liebe Grüsse.

                Kommentar


                • #9
                  Original geschrieben von onlineuser
                  Hi!

                  Ja mit einem Screenshot hat man das Bild.

                  Den Traffic erhöht es nicht, weil das PHP-File ja einen jpg-Stream ausgibt und somit ist der Verkehr gleich gross, wie wenn man ein Bild mit [img ...] ausgeben würde.
                  Wir haben das eben so verstanden, dass du für jeden Pixel ein img-Tag machen willst, und das vergrößert den Traffic auf jeden Fall.


                  Die Frage ist nur, wie ich das mit den 2 Scripten innerhalb einer Datei lösen kann. Der Header muss für jede GD-Libary Ausgabe auf jeden Fall manipuliert werden, damit der Browser weiss, dass jetzt eine Grafik kommt.

                  Liebe Grüsse.
                  Die sollen nicht in einer Datei sein! Bsp.:

                  Script1: bild.php -> liefert die Bilddaten.

                  Script 2: index.php -> macht per <img src="bild.php"> die Bilder rein...

                  Das musst du dann noch insofern anpassen, dass das Script bild.php weiß, welches Bild gesendet werden soll...

                  Aber was genau willst du denn erreichen?

                  Kommentar


                  • #10
                    Hi!

                    Achso, mit mehreren Dateien arbeiten. Oder in einer Datei und dann mit Parametern verschiedene Teile aufrufen.

                    Wollte eigentlich nur wissen, ob man den Header irgendwie resetten kann, aber das geht ja leider nicht!

                    Werde es also mit mehreren Dateien lösen müssen.

                    Liebe Grüsse.

                    Kommentar


                    • #11
                      Nein, jedes Script kann nur einen Header schicken. Du musst dann halt für jedes Bild die bild.php mit einem Parameter aufrufen.

                      Kommentar


                      • #12
                        Original geschrieben von onlineuser
                        Weiters ist es ja ein Problem 2 Grafiken hintereinander mit ImageJpeg auszugeben. Wie realisiert man das?
                        Gar nicht.
                        Du kannst nicht zwei Ressourcen mit einem Response ausliefern.
                        Nach der Ausgabe des ersten Bildes kann man den Header nicht erneut setzen, dass der Browser weiss, dass noch ein Bild kommt!
                        Es kann überhaupt nicht "noch ein Bild kommen".
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Hi!

                          Ok, danke! Also dann ist eh klar, wie und was ich machen muss! *gg*

                          Liebe Grüsse.

                          Kommentar


                          • #14
                            Original geschrieben von onlineuser
                            aber ich möchte gleichzeitig noch ein Copyright in jedes Bild schreiben.
                            sowas macht man mit imagettftext - aber nicht indem man nach den Bilddaten mit echo noch irgendwelchen Text hinterherschickt
                            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                            Schön - etwas Geschichte kann ja nicht schaden.
                            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                            Kommentar


                            • #15
                              Hi!

                              Ja, das ist klar, aber ich wollte unterm Bild noch Sachen ausgeben bzw. HTML-Code generieren.

                              Liebe Grüsse.

                              Kommentar

                              Lädt...
                              X