Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie Grafik aus GDLib Persistieren ¿

Einklappen

Neue Werbung 2019

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

  • Wie Grafik aus GDLib Persistieren ¿

    Yo,

    Ich wüsste gerne wie man in PHP ne Grafik so persistiert dass man das Ergebnis in eine Variable bekommt und nicht über Umwege gehen muss um das Ergebnis zu bekommen.


  • #2

    Kommentar


    • #3
      Zitat von Chr!s
      Also eigentlich hatte ich mir von Nutzern dieses Forums etwas aufschlussreichere Antworten erwartet.

      Ich hoffe das es hier jemanden gibt der sich mit grafiken in PHP auskennt.

      Kommentar


      • #4
        Also eigentlich hatte ich mir von Nutzern dieses Forums etwas aufschlussreichere Antworten erwartet.
        Das liegt vermutlich an deiner Fragestellung.
        Keine Ahnung was du machen willst, und welche Umwege du meinst.

        Kommentar


        • #5
          Hmm.

          Also ich hab eine Grafik.
          Und die möchte ich speichern und später wieder laden können.
          Ich möchte die Grafik in eine Variable speichern und aus einer Variable laden.
          Das Laden kann ja vieleicht mit imagecreatefromstring erledigt werden - falls die Grafik nen bestimmtes format hat.

          Aber ich hab keine Ahnung wie ich die Grafik speichern soll.

          Kommentar


          • #6
            Persistent über mehr als einen Skriptdurchlauf?
            Dann speicher die Grafik einfach als Datei per http://de3.php.net/manual/de/function.imagegd2.php ab und lade sie bei Bedarf wieder mit http://de3.php.net/manual/de/functio...atefromgd2.php

            Kommentar


            • #7
              Zitat von Bruchpilot
              Persistent über mehr als einen Skriptdurchlauf?
              Dann speicher die Grafik einfach als Datei per http://de3.php.net/manual/de/function.imagegd2.php ab und lade sie bei Bedarf wieder mit http://de3.php.net/manual/de/functio...atefromgd2.php
              Erstmal danke für die Mühe.

              Die Funktion die du nennst kann ich nicht benutzen weil :

              Zitat von php.net
              imagegd2
              (PHP 4 >= 4.1.0, PHP 5)

              imagegd2 -- Output GD2 image to browser or file
              Laut Doku wird die Ausgabe zum Klient umgeleitet oder ins Dateisystem umgeleitet.
              Diesen Umweg würde ich gerne vermeiden, daher hab ich geschrieben das ich die Grafik in eine Variable speichern lassen will.

              Kommentar


              • #8
                Mhm.. Keine Ahnung ob das geht, aber versuch mal vielleicht soetwas:
                PHP-Code:
                <?php
                $img 
                ImageCreate(..);

                // Dann wird dein Bild aufgebaut
                ob_start();

                ImagePNG($img);
                $imgData ob_get_contents();

                ImageDestroy($img);
                ?>

                Kommentar


                • #9
                  Zitat von Chr!s
                  Mhm.. Keine Ahnung ob das geht, aber versuch mal vielleicht soetwas:
                  PHP-Code:
                  <?php
                  $img 
                  ImageCreate(..);

                  // Dann wird dein Bild aufgebaut
                  ob_start();

                  ImagePNG($img);
                  $imgData ob_get_contents();

                  ImageDestroy($img);
                  ?>

                  Danke das funktioniert.

                  Ich glaub das ist die wichtigste Funktion von PHP weil viele Funktionen ihre Ausgabe zum Klient oder in eine Datei umleiten. Die machen das viel zu umständlich.

                  Kommentar


                  • #10
                    So, wo das jetzt gelöst ist, bin ich aber doch neugierig, für was diese Form benötigt wird

                    Kommentar


                    • #11
                      Ist das nicht Speicherverschwendung ?
                      Was spricht dagegen temporär ein Bild zu speichern, und bei Bedarf einfach zu laden ?
                      Dann kann es überall eingesetzt werden.

                      bin ich aber doch neugierig
                      Jo ich auch.

                      Kommentar


                      • #12
                        Zitat von Bruchpilot
                        So, wo das jetzt gelöst ist, bin ich aber doch neugierig, für was diese Form benötigt wird
                        Im moment verwende ich das nur um die Grafik in ner Datenbank zu speichern.

                        Kommentar


                        • #13
                          Zitat von CIX88
                          Ist das nicht Speicherverschwendung ?
                          Also ich sehe nicht wo da Speicher verschwendet wird.

                          Zitat von CIX88
                          Was spricht dagegen temporär ein Bild zu speichern, und bei Bedarf einfach zu laden ?
                          Dann kann es überall eingesetzt werden.

                          bin ich aber doch neugierig
                          Jo ich auch.
                          Ich denke mal mit Temporär speichern meinst du das speichern im Dateisystem.
                          Der Grund warum ich diesen Umweg vermeiden ist ganz einfach das da ne Menge Probleme mit kommen können.

                          - Als erstes braucht man sowiso nen Dateisystem
                          - Berechtigungen auf Verzeichnis müssen gesetzt werden
                          - Wenn das Dateisystem mal den Zugriff verweigert weil nen anderes Programm die Datei exklusiv geöffnet hat geht sowiso nix mehr

                          Der Umweg übers Dateisystem zieht also ein Problem mit sich das ich mir natürlich ersparen will.

                          Kommentar


                          • #14
                            - Als erstes braucht man sowiso nen Dateisystem
                            Stimmt, schon für die php Skriptdateien. Oder wo liegen die rum?

                            - Berechtigungen auf Verzeichnis müssen gesetzt werden
                            s.o.
                            Bei Datenbanken müssen idR auch Benutzerrechte beachtet werden.

                            - Wenn das Dateisystem mal den Zugriff verweigert weil nen anderes Programm die Datei exklusiv geöffnet hat geht sowiso nix mehr
                            Das gilt auch für Datenbanken, Tabellen und bei einigen Systeme sogar für einzelne Datensätze.

                            ich sehe da im Skript nur einen unnötigen Zwischenschritt, der Zeit und Speicher kostet (die Zeichenkettenrepräsentation) und eine Belastung für die DB (die ihre Daten dann vermutlich auch nur irgendwie im Dateisystem ablegt).
                            Von mir aus pack die Daten in die Datenbank. Den link auf http://www.php-faq.de/q/q-db-blob.html will ich Dir trotzdem nicht ersparen.

                            Kommentar


                            • #15
                              Zitat von Bruchpilot
                              - Als erstes braucht man sowiso nen Dateisystem
                              Stimmt, schon für die php Skriptdateien. Oder wo liegen die rum?
                              Ich weiß nicht ob das immer so sein muss, da kenn ich mich nicht so aus.

                              Das hätte ich vieleicht etwas ausführlicher schreiben sollen. Ich meine man brauch ja dann auch bestimmte Rechte im Dateisystem die man unter umständen vom Hoster gar nicht hat.

                              Zitat von Bruchpilot
                              - Berechtigungen auf Verzeichnis müssen gesetzt werden
                              s.o.
                              Bei Datenbanken müssen idR auch Benutzerrechte beachtet werden.
                              Die Rechteverwaltung in der DB ist für mich einfacher als die im Dateisystem. Wenn ich mir ne neue DB anlege dann hab ich auch alle Rechte drauf. Mit den Berechtigungen die man im FTP setzen kann ken ich mich nicht so aus. Vieleicht is das der Grund warum ichs in der DB einfacher hab.

                              Zitat von Bruchpilot
                              - Wenn das Dateisystem mal den Zugriff verweigert weil nen anderes Programm die Datei exklusiv geöffnet hat geht sowiso nix mehr
                              Das gilt auch für Datenbanken, Tabellen und bei einigen Systeme sogar für einzelne Datensätze.
                              Klar kann ich auch Datensätze sperren.
                              Um eine Datei zu ändern muss ich diese sperren. Einen Datensatz kann ich aber verändern ohne ihn vorher zu sperren.
                              Daraus folgt -> Das sperren von Datensätzen kommt seltener vor und lässt sich bei manchen Anwendungen sogar vermeiden.

                              Zitat von Bruchpilot
                              ich sehe da im Skript nur einen unnötigen Zwischenschritt, der Zeit und Speicher kostet (die Zeichenkettenrepräsentation) und eine Belastung für die DB (die ihre Daten dann vermutlich auch nur irgendwie im Dateisystem ablegt).
                              Von mir aus pack die Daten in die Datenbank. Den link auf http://www.php-faq.de/q/q-db-blob.html will ich Dir trotzdem nicht ersparen.
                              Man könnte Grafiken natürlich auch im Dateisystem speichern.

                              Interessanter Artikel, interessante Seite.

                              Der Artikel nennt ja schon einen Grund warum man die Grafiken nicht im Dateisystem ablegen sollte.
                              Für das ablegen im Dateisystem nennt der Artikel folgende Vorteile :
                              0. Es müssen weniger Skripte gestartet werden. -> bessere Performanz auf dem WWW Server. Die behauptung das es "um ca. den Faktor 10 effizienter" ist kann man glauben, einen Beweis dafür habe ich nicht gesehen.
                              1. Die Grafik kann in Teilen verändert werden. -> Für mich nicht relevant, ich wüsste gar nicht was ich mit einem Teil der Datei anfange sollte.
                              2. Das Dateisystem kann schneller sein. -> Bessere Performanz

                              Als Vorteil der Variante mit Dateisystem bleibt für mich somit nur eine bessere Performanz.
                              Die Nachteile der Variante mit Dateisystem sind die mögliche Inkonsistenz und die Höhere Komplexität der Anwendung.

                              Die Performanz spielt in diesem Fall eine untergeordnete Rolle, deshalb bleibe ich bei der Datenbank.

                              Kommentar

                              Lädt...
                              X