[PHP/SWF] Genereer Images van SWF files on server

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Toink
  • Registratie: Januari 2000
  • Niet online
We hebben een applicatie waarin gebruikers op frequente basis gegevens moeten invoeren. bijvoorbeeld winst in euro's (iedere maand). Op basis van deze gegevens genereren we SWF charts (grafieken met mouseovers etc.).

We gebruiken hiervoor AnyCharts. Deze bevatten een functie om van de SWF een image te genereren en deze te 'posten' naar de webserver. Middels PHP GD Lib kan er dan een image van worden gemaakt. Deze images worden op de server opgeslagen. Echter om deze images te genereren moet een gebruiker op een client PC de SWF tonen (het uploaden van de image gaat automatisch).

De images hebben we nodig omdat deze onderdeel worden van overzichtspagina's en PDF's waarin er een 20-tal grafieken tegelijk te zien is.

Nu de vraag: Iedere maand worden nieuwe gegevens ingevoerd via enquetes. We willen dat op basis van deze invoer momenten automatisch al alle images worden pre-generated. Een mogelijkheid zou zijn om een pagina te maken met daarop ALLE grafieken en deze via ajax de images naar de server te posten en dit dagelijks te draaien (mochten er nieuwe gegevens zijn) om de grafieken bij te werken. Echter dat vraagt actie van een gebruiker op een client PC (om de swf-s te tonen).

Is er een mogelijkheid om dit door de server te laten doen? Meest handige is door een nachtelijke Crontab. Echter, zal de pagina fysiek moeten worden geopend met Flash wil je de images kunnen posten.

Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Aangenomen dat de data ook beschikbaar is op de server, kun je dan niet gewoon zelf een php scriptje schrijven dat grafiekjes maakt? PHP heeft daarvoor redelijk wat teken functies.

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ff tikkie over de schutting naar /14

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

In principe zouden we GD lib kunnen gebruiken voor de graphing. Echter, de swf charts die wij gebruiken hebben een mooie opmaak en we willen deze graag hetzelfde houden voor de JPG/PDF files.

Acties:
  • 0 Henk 'm!

Verwijderd

** schop **

Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Je hebt dan op de server of een window manager (Linux) of een browser (Windows) nodig. Heb je dat niet dan zou ik op een client met scheduler een browser openen om de klus te klaren.

Acties:
  • 0 Henk 'm!

Verwijderd

Het is mogelijk om gnome, kde of alleen een X-server met Firefox te installeren op die machine. Betekend dat dan, dat ik via een crontab een dergelijke sessie kan starten met firefox en de page-load kan laten uitvoeren?

Ik ben bekend met cron-tabs, maar hoe kan ik in een x-server direct firefox opstarten en naar een bepaalde pagina laten gaan?

Acties:
  • 0 Henk 'm!

  • Atari Paul
  • Registratie: November 2002
  • Laatst online: 13:04
Onder Ubuntu kun je het als volgt doen:

Om een op Linux een virtueel scherm te starten heb je xvfb nodig (of je start X gewoon op als het niet uitmaakt dat je een scherm opent). Na het export commando kun je firefox in het virtuele scherm starten.

code:
1
2
Xvfb :1 -screen 0 1280x1024x24 &
export DISPLAY=:1



Firefox:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Usage: /usr/lib/firefox/firefox-bin [ options ... ] [URL]
       where options include:

X11 options
        --display=DISPLAY               X display to use
        --sync          Make X calls synchronous
        --no-xshm               Don't use X shared memory extension
        --xim-preedit=STYLE
        --xim-status=STYLE
        --g-fatal-warnings              Make all warnings fatal

Mozilla options
        -height <value>         Set height of startup window to <value>.
        -h or -help             Print this message.
        -width <value>          Set width of startup window to <value>.
        -v or -version          Print Firefox version.
        -P <profile>            Start with <profile>.
        -ProfileManager         Start with Profile Manager.
        -UILocale <locale>              Start with <locale> resources as UI Locale.
        -contentLocale <locale>         Start with <locale> resources as content Locale.
        -safe-mode              Disables extensions and themes for this session.
        -jsconsole           Open the Error console.
        -browser            Open a browser window.
        -inspector <url>     Open the DOM inspector.
Usage: firefox [-flags] [<url>]

Stability ?? My Atari still has it :)


Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
root@x:~# Xvfb :1 -screen 0 1280x1024x24 &
[1] 31960
root@x:~# error opening security policy file /etc/X11/xserver/SecurityPolicy
Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
Could not init font path element /usr/share/fonts/X11/Type1, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
Could not init font path element /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, removing from list!

root@x:~# export DISPLAY=:1
root@x:~#


Daarna doet hij niet zoveel. Er komt geen X scherm op. Ik maak vanuit de shell op mijn Kubuntu machine een ssh verbinding naar de webserver (Ubuntu zonder desktop). Daarop het ik zojuist xvfb geinstalleerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Hij doet het nu. Middels het script:

code:
1
2
3
4
5
6
7
8
9
10
11
 killall firefox Xvfb
 Xvfb :2 -screen 0 1024x768x24 -fbdir /tmp -nolisten inet6 &
 sleep 10
 DISPLAY=:2.0 firefox -width 1024 -height 768 http://www.tweakers.net &
 sleep 10
 xwd -display :2.0 -root -out shot.xwd
 xwdtopnm shot.xwd > shot.pnm
 pnmscale -xysize 200 150 shot.pnm > shotsmall.pnm
 pnmtojpeg shotsmall.pnm > shot_thumb.jpg
 pnmtojpeg shot.pnm > shot.jpg
 rm shot.pnm shot.xwd shotsmall.pnm


Kan ik zien dat idd een firefox session word gestart. De grafieken genereren de JPG en posten deze met AJAX naar de server. Ik ga nu aan de slag om te bepalen of dit ook gaat werken in de 'virtuele firefox sessie'. Thanks.

Acties:
  • 0 Henk 'm!

Verwijderd

Het volgende probleem heeft zich voorgedaan. Zie:
http://www.anychart.com/products/anychart/docs/users-guide/livesamples/autosave/

Op het moment dat de flash klaar is met laden word er een 'draw' event afgevangen door een addEventHandler:
code:
1
2
3
chart.addEventListener("draw", function() {
  saveChartAsImage(chart);
});


Deze roept de functie saveChartAsImage aan en deze voert een functie GetJpeg uit op de chart. Deze maakt een ajaxrequest aan en stuurt de gegenereerde jpeg naar de server.

Dit werkt op IE/firefox op windows, maar niet in firefox op ubuntu. De eventhandler wordt nooit afgetrapt. Als ik een link aanmaak die direct saveChartAsImage aanroept doet hij het wel. Hoe dit op te lossen?

'draw' is een standaard event handler van adobe.
Pagina: 1