2010-01-30 13 views
7

C'è qualche libreria là fuori per creare grafica senza usare AWT?
Quello che mi serve sono le semplici funzioni di disegno (come disegnare una linea) e le funzioni di disegno del testo per creare grafica in memoria per un'applicazione di Google App Engine. Il motore delle app non supporta AWT.Java: crea grafica senza awt?

Grazie!

+0

Il client supporta SVG? In tal caso, è possibile consultare http://java.sun.com/javame/technology/msa/jsr226.jsp – rleir

+0

nello stesso spirito del commento di rleir, il batik potrebbe essere un'opzione? http://xmlgraphics.apache.org/batik/ – Hubert

+0

È il sito Web che chiunque può utilizzare, quindi il client potrebbe non supportare SVG. AlBlue: non è vero. – Damian

risposta

4

A meno che non si desideri implementare la propria classe di immagine (ad esempio, una bitmap) e algoritmi di rendering per linee, forme, immagini.

Se hai esperienza con computer grafica e rasterizzazione, questo potrebbe non essere molto difficile, ma in caso contrario sarà più di quanto tu voglia mordere.

+0

Questo è quello che ho fatto e funziona benissimo, ma il problema è il rendering del testo. È qualcosa che penso di non riuscire a scrivere il mio codice. Almeno non così facilmente come disegnare linee o cerchi. – Damian

+0

@Damian: il rendering del testo è complesso e non sono sicuro che troverai una soluzione facile. Potresti * provare a utilizzare le parti non native di AWT come pacchetto standard - Ricordo di aver visto un'implementazione completamente software (senza GPU) di molte delle funzionalità di disegno da qualche parte. Lo stavano usando per il benchmarking e dimostrando un approccio parallelo. – BobMcGee

+0

Beh, ho trovato questo: http://fonteditor.org/ ... lo proverò appena possibile. – Damian

-1

Google Web Toolkit contiene una bella libreria grafica progettata per l'interfaccia con il motore dell'app Google.

modifica per chiarire: Google App Engine è progettato per ospitare applicazioni sul Web. È necessario progettare elementi grafici che possono essere eseguiti nel browser. Per fare ciò, è necessario scrivere codice in un linguaggio Web, ad esempio Javascript. Google Web Toolkit contiene una libreria grafica Java che si compila su Javascript, risparmiando lo sforzo di scrivere tu stesso il Javascript.

+0

Cosa? Google Web Toolkit non è una libreria grafica ... – Damian

+0

Ma ho bisogno di creare immagini sul server. – Damian

1

Si potrebbe provare a utilizzare SenseLan. Nello requirements section, dice che non usano awt o ImageIO. Naturalmente, c'è lo Images api ma sembra abbastanza limitato in ciò che offre.

Edit:

Sembra che ci sono un paio di possibilità Python che potrebbe offrire alcune funzionalità di disegno limitato. Si potrebbe forse scrivere funzionalità immagine appropriata come i servizi di pitone web, e mantenere il resto della app in Java:

  1. Replacing Functionality of PIL (ImageDraw) in Google App Engine (GAE)
  2. http://denislaprise.com/2008/08/21/drawing-images-on-google-app-engine/
+0

Beh, senselan è ottimo ma converte solo le immagini da un formato all'altro. Ciò di cui ho bisogno sono funzioni grafiche semplici (come disegnare linee) e disegnare testo. – Damian

+0

Come dice il titolo, deve essere una libreria Java. La mia app è già sviluppata in java. – Damian

+0

@Damian: Jhython - esegue il codice Python in Java e ti consente di colmare il divario. – BobMcGee

0

'L'API Java 2D è un insieme di classi per grafica 2D avanzata e imaging, che comprende line art, testo e immagini http://java.sun.com/products/java-media/2D/index.jsp

Ecco un'altra possibilità: org.eclipse.draw2d Probabilmente si basa su SWT di eclissi.

+0

Guarda il javadoc: http://java.sun.com/j2se/1.4.2/docs/guide/2d/spec.html Non posso usare AWT. – Damian

1

Utilizzare Batik for GAE che è disponibile come dipendenza FOP su GAE.

Puoi anche rintracciare ulteriormente il problema sul motore di app Google bug tracker dove altri hanno condiviso altre idee nei commenti.

-1

Esito a menzionare PJA, che sembra funzionare se sono presenti le classi AWT, ma il gestore della sicurezza impedisce di utilizzarle.

2

Si potrebbe anche provare il progetto appengine-awt, anche se è un po 'sperimentale.

-1

Se è possibile utilizzare Python su GAE anziché su Java, allora c'è pybmp.