PHP dynamische Bildgröße

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Jaw
Beiträge: 54
Registriert: 14.07.2004, 01:00
Wohnort: Raum Düsseldorf

PHP dynamische Bildgröße

Beitrag von Jaw »

Hallo

Ich überlege gerade diverse Dinge für die Programmierung einer Webanwendung in PHP. Ein Teil davon wäre die Anzeige von Diagrammen. Wir überlegen momentan, ob wir eher mit Java Applet oder Webstart arbeiten oder mit PHP, JS und den gängigen Webdingen. Bisher tendiere ich zu Web. Aber auf ein Problem weiß ich keine Lösung:

In Java wäre es kein großes Problem ein Diagramm in dynamischer Größe zu zeichnen, abhängig von der Größe des Bildschirms bzw des Fensters und des verfügbaren Bereichs im Layout.

In HTML + CSS kann ich zwar auch sehr gut relativ arbeiten, z.B. mit % Angaben für Maße, aber bei Grafiken stoße ich da an ein Problem. Wenn ich eben ein besagtes Diagramm, oder eine andere, dynamisch mit PHP generierte Grafik, auf einer Seite einbinden will, soll sie eigentlich einen bestimmten Platz der Oberfläche einnehmen. Beim Aufbau der Seite ist dieser Platz aber nicht bekannt, nur mit JS könnte ich die Fenstergröße abfragen.

Nunja die Frage ist eben, wie könnte man es regeln, eine Grafik mit einer dynamischen Größe einzubinden, z.B. 50% der Seitenbreite? Kann man die Größe irgendwie vorher ermitteln und im img src dann als Parameter mitgeben, so wie <img src="getImage.php?width=xxx">? Oder kann man im PHP Script direkt den verfügbaren Raum für das Bild ermitteln? Oder gibts andere Ideen?

Die Funktion des Browsers ein Bild in der Größe anzupassen mit <img width height> ist leider keine gute Lösung.

Grüße
-JAW
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: PHP dynamische Bildgröße

Beitrag von Aramis »

Ich wuerde zuerst das Seitentemplate ausliefern, dann ein Javascript die benoetigten Werte auslesen lassen und via Ajax den eigentlichen Inhalt in den richtigen Ausmassen vom Server nachladen.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4263
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: PHP dynamische Bildgröße

Beitrag von Chromanoid »

Also wenn ihr es richtig anpacken wollt :), würde ich java serverseitig benutzen. Z.B. Spring oder ein ähnliches Framework zusammen mit einem J2EE-Server- evt. ist auch JasperReports was für euch. Alle J2EE Frameworks haben sicherlich viele Methoden, wie man Grafiken erstellen kann - die meisten benutzen für die skalierenden Charts wahrscheinlich Flex/Flash. Für Bild-Diagramme die mit skalieren muss man aber sicherlich auch dort so etwas wie Alexander vorgeschlagen hat einbauen.

Open Flash Chart könnte auch was für euch sein. Hier ein einfaches Beispiel für php + ofc http://teethgrinder.co.uk/open-flash-ch ... -chart.php

Ihr könntet auch zusätzlich GWT benutzen. (Hat glaube ich auch eine Schnittstelle für Open Flash Chart).

Falls eure Anwendung noch ein bisschen braucht wäre SVG als Ausgabe für die Grafiken sicherlich auch eine Alternative. IE9 soll ja schließlich SVG unterstützen. Aber ist es erst mal soweit könntet ihr dann auch gleich nur den HTML5 Canvas benutzen.

ps: falls es irgendwer mitbekommen hat :D sorry für den edit amok
Jaw
Beiträge: 54
Registriert: 14.07.2004, 01:00
Wohnort: Raum Düsseldorf

Re: PHP dynamische Bildgröße

Beitrag von Jaw »

Danke, das sind schon mal hilfreiche Antworten. AJAX ist eine Sache, die ich mir durchaus mal anschauen wollte, die werde ich voraussichtlich eh für lebendige Inhalte brauchen. Und was J2EE und das ganze drumherum angeht: Ja, ich denke auch, das wäre klug und sinnvoll. Leider kenn ich mich damit kaum aus und auch sonst keiner hier. Wir sind ein kleiner Laden und die Software ist nur eher ein Randbereich, den ich eben abdecke. Und ich habe arge Bedenken ein größeres Projekt in einer Technologie anzufangen, in der ich 0 Erfahrung habe. Vermutlich will ich alles wegwerfen, kaum dass es halb fertig ist :) So wars bisher immer mit neuen Gebieten. Erst im dritten Anlauf wirds was halbwegs brauchbares, nachdem man erst mal aus Fehlern gelernt hat.

Hm also ich werde mal zum Spaß probieren, was passiert, wenn man mit Javascript den img src ändert. Wobei dann halt jeweils ein neues Bild generiert wird und die Performance wäre sicher nicht optimal.

Andererseits ist es dann sehr wahrscheinlich, dass es darauf hinaus läuft, dass ich die Dynamik eher weg lasse oder stark einschränke. Wenn man mal ehrlich sind, die meisten Masken sind eh unbrauchbar wenn man das Fenster zu sehr verformt. Dann würd ich vielleicht einmalig hingehen und z.B. beim Login oder Aufruf die Bildschirmgröße erfassen und dann alles immer darauf auslegen, aber Vollbild wäre dann nötig.

Wichtig ist eigentlich auch nicht, dass es super flüssig mitskaliert. So High Level muss es denn nun doch nicht sein. Wichtig ist primär, dass es nicht zu groß oder zu klein wird, wenn einer mit 1024 ran geht und ein anderer mit 1600 oder so Dinge.

Ich bin weiter offen für Ideen.

Eine weitere Anmerkung: Es wäre praktisch, wenn man dann in einem Diagramm z.B. auf einzelne Balken klicken könnte um dazu was aufzurufen. Im primitiven Fall hätte ich mich da mit einer Image Map ran gemacht. Würde sich die Bildgröße ändern müsste sich dann aber auch die Map ändern. Flash schließe ich jetzt einfach mal aus, will ich nicht. Was könnte man dann noch machen, um zu ermitteln, über welchen Teil einer Grafik die Maus ist, um einen entsprechenden Link, Hover, Javascript onmouseover oder was auch immer zu machen?

-JAW
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4263
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: PHP dynamische Bildgröße

Beitrag von Chromanoid »

Open Flash Chart macht genau das was du brauchst :D das ist doch viel besser als irgendwas mitskalierendes, das mit ajax gebaut ist. Flash hat doch praktisch jeder ^^ Was hast du gegen Flash?
Wie oben schon angedeutet, setzen viele Enterprise Lösungen ihre Charts auch mit Flash um. Z.B. die Leute von JasperReports sind da auch ganz stolz drauf ^^
Jaw
Beiträge: 54
Registriert: 14.07.2004, 01:00
Wohnort: Raum Düsseldorf

Re: PHP dynamische Bildgröße

Beitrag von Jaw »

Ach das mit Flash ist was subjektives, ich habe vor Äonen mal mit Flash gearbeitet, als Anfänger, ohne richtiges Training, und bin nicht so recht zurecht gekommen. Hab eine Navigation mit Animation gemacht und musste dann später einen Menupunkt dazu fummeln und es war der Horror. Gäbe aber auch sicher elegantere Wege dafür. Mit ActionScript habe ich daher nie angefangen.

Die andere Hälfte meiner persönlichen Flash Abneigung machen Flash Werbung und Flash Webseiten. Zu oft wird Flash einfach mistig eingesetzt, meinem Empfinden nach. Z.B. bei Webseiten zu filmen. Heue bei DSL net mehr so schlimm, damals riesig nerive Ladezeiten für Sound oder Video, wo ich nur ne Info wollte. Navigationen mit langwierigen Animationen und Ladezeiten wo es viele Sekunden dauerte bis man seine Seite bekam. Selbstgebastelte Scroll Lösungen die alle anders waren und fast nie mit Mausrad funktionierten. Und keine Unterstützung für mittlere Maustaste als "in neuem Tab öffnen".

Und die Summe aus mit Flash nicht zurecht kommen und die meisten Flash Seiten eher schlimm als gut zu empfinden ergab dann eine ordentliche Abneigung gegen diese ganze Technologie.

Ich respektiere Flash allerdings vollkommen für Browser Spiele und für interaktive und selbstlaufende Animationen die quasi anstelle eines Bildes benutzt werden. Also als mediale Teile einer Seite. Aber komplette Flash Seiten oder Flash Navis sind meistens Aua.


Lange Rede, kaum ein Sinn: Flash mit seiner vektoriellen Arbeitsweise ist natürlich sehr gut dafür geeignet und ich sollte es mir mal ansehen.

Weitere Meldung: Ich habe CSS basierte Diagramme gefunden, die rein mit CSS und Markup arbeiten, natürlich mal ne Grafik als Hintergrundbild, um diverse Diagrammtypen darzustellen. Wobei CSS nicht jede Art von Diagramm gut kann. Balken sind eher leicht, Linien oder Torten eher nicht. Und geschickt gemacht mit relativen Prozentwerten können auch CSS Inhalte sauber skalieren.

Grüße
-JAW
Antworten