Christian1: Grafik erzeugen

Hallo,

ich möchte eine Grafik erzeugen, ein einfaches Network, bestehend aus Knoten (Textboxen) und Kanten (um genau zu sein, Pfeile, immer in eine Richtung - nach unten). Optimal wäre es, wenn die Kanten von keiner Box verdeckt sind, d.h. nicht unbedingt grade Linien, sondern sich auch "biegen" (lassen). Die Textboxen dienen als Links zu "Content".

Beispiel (Achtung, ugly Paint incoming): http://s3.directupload.net/file/d/1996/u37tv6sc\_png.htm

Ursprünglich hätte ich solche Grafiken in Omnigraffle erzeugt, eine AreaMap drübergelegt und das genommen. Nun soll der Content aber dynamisch sein, d.h. User können das Netzwerk ändern (neue Knoten hinzufügen, alte löschen, Posititionen tauschen, Pfeile hinzufügen/löschen).

Ich dachte zuerst an SVG. Damit lässt sich so etwas ja schön erzeugen. Allerdings wird so ein SVG Beispiel im Internet Explorer nicht angezeigt (die Seite sollte auf allen gängigen Browsern funktionieren).

Dann habe ich mir PHP und GD angeschaut, das sieht momentan am vielversprechendsten aus. Irgendwo fand ich den Hinweis auf "phpflow", das ist mir aber viel zu simpel, da schreibe ich lieber selbst eine Library mit den einfachen Funktionalitäten. Mit "simpel" meine ich, nur eckige Pfeile, nicht mal diagonal, nur so dünne Pfeile und generell nicht wirklich "schön"... vielleicht muss ich es aber auch mal genauer anschauen.

Gibt es so etwas vielleicht bereits? Gibt es etwas besseres als PHP+GD? Gibt es einen einfachen Weg, oder muss ich das alles selbst schreiben (kein Beinbruch, bin grade nur etwas knapp bei Zeit) oder geht das gar nicht, was ich vorhabe?

Für Hinweise jeglicher Art wäre ich sehr dankbar.

Grüße,
Christian

  1. Hi,

    Ich dachte zuerst an SVG. Damit lässt sich so etwas ja schön erzeugen. Allerdings wird so ein SVG Beispiel im Internet Explorer nicht angezeigt (die Seite sollte auf allen gängigen Browsern funktionieren).

    Dann würde ich mich nach einer serverseitigen Lösung umsehen, die aus einem SVG als Fallback eine Bitmap-Grafik in einem gängigen Format erzeugen kann - in der Wikipedia bspw. wird dies auch gemacht.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. [...] die aus einem SVG als Fallback eine Bitmap-Grafik in einem gängigen Format erzeugen kann [...]

      Streiche "gängig", ersetze durch "geeignet" :)

      JPEG ist sicher ein gängiges Format, aber für die Darstellung von Vektorgrafiken als Rastergrafik meistens wenig geeignet - hierfür ist PNG imho wesentlich besser geeignet.

      Im SVG-Format liegen oft Grafiken vor, die sich sehr gut mathematisch beschreiben lassen (Logos z.B.) - hier sollte die Darstellung möglichst 1:1 erfolgen und nicht durch den dafür eher ungeeigneten JPEG-Algorithmus verfälscht werden.

      1. [...]

        Interessant, dass so ein nutzloses, "am-Thema-vorbei"-Posting als hilfreich bewertet wird -- manchmal ist das Internet und seine Netiquette unbegreiflich.

        Ich wollte jedenfalls meine persönliche Lösung eventuellen Nachfolgern nicht vorenthalten:

        Das Paket "graphviz" [1] macht genau das, was ich gesucht habe, zusammen mit "webdot" [2]. Exportiert bei Bedarf das SVG dann in Formate, die auch von älteren Browsern akzeptiert werden.

        Grüße,
        Christian

        [1] http://graphviz.org/
        [2] http://www.graphviz.org/webdot/

        1. Interessant, dass so ein nutzloses, "am-Thema-vorbei"-Posting als hilfreich bewertet wird [...]

          Wieso am Thema vorbei? SVG wäre bestens geeignet, daran hast du selbst gedacht, hattest aber Bedenken wegen dem IE. ChrisB hat deinen Einwand entschärft: wenn ein IE daherkommt und im Accept nichts von SVG erzählt, bekommt er ein anderes Format verpasst.

          -- manchmal ist das Internet und seine Netiquette unbegreiflich.

          Ja - für mich auch, für einen sinnvollen Hinweis wird man auch noch blöd angequatscht.

          Das Paket "graphviz" [1] macht genau das, was ich gesucht habe, zusammen mit "webdot" [2]. Exportiert bei Bedarf das SVG dann in Formate, die auch von älteren Browsern akzeptiert werden.

          Hatte nicht genau das ChrisB bereits gesagt? Er hat zwar keine konkrete Software genannt, danach hast du aber auch nicht explizit gefragt.

          1. -- manchmal ist das Internet und seine Netiquette unbegreiflich.

            Ja - für mich auch, für einen sinnvollen Hinweis wird man auch noch blöd angequatscht.

            Dieser Teil meine Antwort bezog sich keineswegs auf den Beitrag von ChrisB, den ich durchaus als hilfreich empfand, sondern auf deinen Beitrag.

            1. Hi,

              Dieser Teil meine Antwort bezog sich keineswegs auf den Beitrag von ChrisB, den ich durchaus als hilfreich empfand, sondern auf deinen Beitrag.

              suits Antwort war auch hilfreich - dass man beim Umwandeln einer Vektor- in eine Pixelgrafik sich auch bzgl. letzterer Gedanken darüber machen sollte, welches Format man wählt, das ist durchaus ein angebrachter Hinweis.

              Wieso man sich für solche hier immer wieder von Fragern ankacken lassen muss, braucht wohl kein vernünftiger Mensch verstehen.

              MfG ChrisB

              --
              “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
            2. [...]  sondern auf deinen Beitrag.

              Auch wenn ChrisB schon geantwortet hat - sieh dir als Beispiel diese Logos an:

              http://www.iacbe.org/assets/images/Seton_Hill_logo_JPG.JPG
              http://www.iqunlimited.biz/iq/images/stories/avolites/avo-logo-jpg.gif
              (Zufällige Suche nach "logo jpeg" in der Suchmaschine meiner Wahl)

              Wenn mein Hinweis nicht fachlich hilfreich war, was war er dann? Grob fahrlässig? Hat er dich auf eine falsche Fährte gelenkt? Habe ich unrecht?

              Ich wage immer noch zu behaupten, dass es nur wenige Grafiken im SVG-Format gibt, die sich weitestgehend verlustfrei[1] mit JPEG darstellen lassen, wohlaber mit PNG ein perfektes, verlustfreies[1] Ergebnis mit unwesentlich abweichender Dateigröße liefern.

              Sollte ich mich tatsächlich irren, kläre mich bitte auf - ich lerne gerne dazu.

              [1] davon abgesehen, dass durch die Konvertierung eines Vektorformats in ein Rasterformat zwangsläufig Informationen vernichtet werden.

              1. Puh, da hab ich ja was ausgelöst :-(

                Erstmal sorry für die unbedachte Äußerung gestern, ich nehme das zurück.

                Als ich ins Forum geschaut habe, dachte ich "juchu, eine Antwort" und las dann ein Plädoyer über PNG vs JPEG. Weder ChrisB noch ich hatten JPEG erwähnt, sein Beispiel (Wikipedia) konvertiert SVG ja ebenfalls in PNG und nicht in JPEG. Ich behaupte auch mal, wer SVG überhaupt mal benutzt hat (es ist ja nun doch leider immer noch ziemlich unbekannt), weiß auch um die Artefaktbildung im JPEG-Format. Darum war ich etwas verdutzt, dass nicht ChrisB's hilfreicher Beitrag eine positive Bewertung bekam, sondern der Nachfolgende, welcher für mich keine neue Information darstellte; natürlich war nichts an dem falsch, aber halt für mich eben nicht hilfreich, da nicht neu. Die Aussage "am Thema vorbei" war wohl auch übertrieben - was ich halt gesucht habe war so ein Toolkit wie Graphviz. Selbstverständlich sollte man sich auch Gedanken über das Grafikformat machen - bei mir jedoch stand ohnehin nur SVG vs. PNG und evtl. noch GIF zur Auswahl. Zusammen mit Stress auf der Arbeit ließ ich mich dann zu dem kleinen Satz hinreißen, der nun diese Diskussion nach sich zieht.

                Ich bitte darum um Entschuldigung für diesen einen Satz, er war nicht so böse gemeint wie er interpretiert wurde.

                Wer auch immer für "hilfreich" gevotet hat, wurde ja nun wieder ein wenig aufgeklärt zum Thema Grafikformate, und ich hoffe, dass auch irgendwann mal jemand diesen Thread liest und mit "Graphviz" die Antwort auf seine Frage findet.

                Ein schönes Wochenende euch Beiden.

                1. Hi,

                  Darum war ich etwas verdutzt, dass nicht ChrisB's hilfreicher Beitrag eine positive Bewertung bekam, sondern der Nachfolgende, welcher für mich keine neue Information darstellte; natürlich war nichts an dem falsch, aber halt für mich eben nicht hilfreich, da nicht neu.

                  Zur Klarstellung - das erste „fachlich hilfreich” für suits Beitrag kam von mir. Schlicht und einfach deshalb, weil ich selbst beim Schreiben meiner Antwort noch überlegt hatte, ob ich noch genauer darauf eingehen sollte. Ich hatte mich dann zwar dagegen entschieden, finde den Hinweis aber trotzdem berechtigt.

                  Selbstverständlich sollte man sich auch Gedanken über das Grafikformat machen - bei mir jedoch stand ohnehin nur SVG vs. PNG und evtl. noch GIF zur Auswahl.

                  Das konnten wir nicht wissen.
                  Und ebenso gut, wie sich jetzt herausgestellt hat, dass suit dir damit nichts neues gesagt hat, hätte es ja andersherum auch sein können, dass mein Verzicht auf diesen zusätzlichen Hinweis die eigentlich falsche Entscheidung gewesen wäre, wenn du dir darüber noch keine Gedanken gemacht oder allgemein im Umgang mit Grafikformaten weniger Erfahrung gehabt hättest.

                  Wer auch immer für "hilfreich" gevotet hat, wurde ja nun wieder ein wenig aufgeklärt zum Thema Grafikformate

                  Das war, zumindest für mich, nicht wirklich nötig.
                  Aber auch wenn du diesen Hinweis auch nicht noch zusätzlich brauchtest - es kann ja sein, dass er für jemand anderen, der diese Diskussion später mal im Archiv liest, sich dann doch wieder als wertvoll herausstellt.

                  Und da kann man eben durchaus „fachlich hilfreich” voten, auch wenn das für einen persönlich nun nichts wirklich etwas „neues” ist.

                  Ich bitte darum um Entschuldigung für diesen einen Satz, er war nicht so böse gemeint wie er interpretiert wurde.

                  Klar, Schwamm drüber.

                  MfG ChrisB

                  --
                  “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                  1. Klar, Schwamm drüber.

                    dito