imagecopyresampled() in db speichern

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

  • imagecopyresampled() in db speichern

    Hallo,

    schein gerade ziemlich auf der Leitung zu stehen.

    Würd gerne das Resultat von imagecopyresampled() in einer Datenbank ablegen (bitte mir jetzt nicht damit kommen dass und warum das im Dateisystem besser is, danke ).

    Das Resultat selbst scheint irgendwie ein Zeiger auf ein GD-Objekt zu sein oder so ähnlich, hat jedenfalls immer 15 Byte und is sicherlich kein Bild

    Lange Rede kurzer Sinn: würde den Bytestream des Bildes in der gd-resource auslesen müssen, und hab grade keine Ahnung wie.

    Direktes Anzeigen / Ablegen in einer Datei ist mir klar (imagegif() etc.). Kam schon auf die Idee die Ausgabe von imagegif zu buffern und das dann als Blob abzulegen, mach ich aber aus Performancegründen relatic ungern.

    DAnke schonmal

  • #2
    Ausgabe von imagegif zu buffern und das dann als Blob abzulegen, mach ich aber aus Performancegründen relatic ungern.
    Ungern?
    ob_start() und seine Brüder werden dir helfen können.
    Wir werden alle sterben

    Kommentar


    • #3
      ja

      ist mir klar, wollte aber gerne wissen obs ne andere alternative gibt.

      muss doch mit der resource mehr anfangen können als sie nur direkt auszugeben oder in einer datei zu speichern.

      Kommentar


      • #4
        Mit GD9 oder PHP9 evtl. mal irgendwann.....
        Wir werden alle sterben

        Kommentar


        • #5
          ok danke,

          habs jetzt mit output buffer gelöst.

          hab mir nur eingebildet ich hätt irgendwo mal gelesen dass die Verwendung von ob_start etc. nach Möglichkeit aus Performancegründen vermieden werden sollte.

          Vielleicht weiss ja jemand warum?

          OT: Sollen das hier 2 Loginebenen oder sowas sein oder is das ein Bug?

          Kommentar


          • #6
            dass die Verwendung von ob_start etc. nach Möglichkeit aus Performancegründen vermieden werden sollte.
            Erst in zweiter Linie aus "Performancegründen".
            In erster Linie ist es meist ein Konzeptfehler die ob_*() überhaupt zu verwenden.

            In deinem Fall gibts allerdings keine Alternative.
            Wir werden alle sterben

            Kommentar


            • #7
              Zitat von ThemBones Beitrag anzeigen
              hab mir nur eingebildet ich hätt irgendwo mal gelesen dass die Verwendung von ob_start etc. nach Möglichkeit aus Performancegründen vermieden werden sollte.
              Möglich - aber wenn du schon das Ablegen von Bilddaten in der DB für nicht diskutabel hinstellst, dann braucht man sich an dem Punkt über Performance ja wohl auch nicht mehr unterhalten.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                jaja

                Zitat von wahsaga Beitrag anzeigen
                Möglich - aber wenn du schon das Ablegen von Bilddaten in der DB für nicht diskutabel hinstellst, dann braucht man sich an dem Punkt über Performance ja wohl auch nicht mehr unterhalten.
                Aus bestimmten Gründen (Anbindung an externes System), ist ein Blob einfach die bessere Lösung. Meinte nicht generell indiskutabel.

                Nur weil ich das so machen muss in dem Fall, muss ich ja nicht auch an anderen Stellen mit Ressourcen prassen.

                so long,

                Kommentar


                • #9
                  Es gäbe noch die Möglichkeit das Bild per imagegif() auf die Ramdisk (/dev/shm/) zu kratzen und dann per file_get_contents() wieder in eine Variable zu holen aber ob das schneller ist als ob_start(), ob_get_contents(), ob_end_clean() wage ich zu bezweifeln

                  Kommentar


                  • #10
                    Ach, dann könnte man auch einen Fopen-MySQL-URL-Wrapper verwenden...
                    PmWiki | Php / MysqlUrlWrapper
                    Wir werden alle sterben

                    Kommentar

                    Lädt...
                    X