2010-01-30 25 views
7

¿Hay alguna biblioteca para crear gráficos sin usar AWT?
Lo que necesito son simples funciones de dibujo (como dibujar una línea) y funciones de dibujo de texto para crear gráficos en la memoria para una aplicación de motor de aplicación de Google. El motor de aplicaciones no es compatible con AWT.Java: crea gráficos sin awt?

Gracias!

+0

¿El cliente admite SVG? Si es así, puedes mirar http://java.sun.com/javame/technology/msa/jsr226.jsp – rleir

+0

En el mismo espíritu que rleir comment, ¿podría Batik ser una opción? http://xmlgraphics.apache.org/batik/ – Hubert

+0

Es un sitio web que cualquiera puede usar, por lo que es posible que el cliente no admita SVG. AlBlue: eso no es verdad. – Damian

Respuesta

4

No, a menos que desee implementar su propia clase de imagen (por ejemplo, un mapa de bits) y algoritmos de representación para líneas, formas, imágenes.

Si tiene experiencia con gráficos de computadora y rasterización, esto puede no ser muy difícil, pero de lo contrario será más de lo que quiere morder.

+0

Eso es lo que hice y funciona muy bien, pero el problema es la representación de texto. Eso es algo que creo que no puedo resolver escribiendo mi propio código. Al menos no tan fácil como dibujar líneas o círculos. – Damian

+0

@Damian: la representación de texto es compleja, y no estoy seguro de que encuentre una solución fácil. * Podrías * tratar de usar las partes no nativas de AWT como un paquete estándar. Recuerdo haber visto una implementación totalmente de software (sin GPU) de una gran parte de la funcionalidad de dibujo en alguna parte. Lo estaban usando para evaluar comparaciones y demostrar un enfoque paralelo. – BobMcGee

+0

Bueno, encontré esto: http://fonteditor.org/ ... Lo probaré tan pronto como pueda. – Damian

-1

Google Web Toolkit contiene una buena biblioteca de gráficos diseñada para interactuar con el motor de la aplicación de Google.

edición para aclarar: Google App Engine está diseñado para aplicaciones de alojamiento en la web. Necesita diseñar gráficos que puedan ejecutarse en el navegador. Para hacer esto, necesita escribir código en un lenguaje web, Javascript, por ejemplo. Google Web Toolkit contiene una biblioteca de gráficos Java que se compila en JavaScript, ahorrándole el esfuerzo de escribir el Javascript usted mismo.

+0

¿Qué? Google Web Toolkit no es una biblioteca de gráficos ... – Damian

+0

Pero necesito crear imágenes en el servidor. – Damian

1

Puede intentar con SenseLan. En el requirements section, dice que no usan awt o ImageIO. Por supuesto, está el Images api, pero parece bastante limitado en lo que ofrece.

Editar:

Parece que hay un par de posibilidades de Python que podrían ofrecer algunas capacidades de dibujo limitados. Probablemente podría escribir la funcionalidad de la imagen apropiado como servicios pitón web, y mantener el resto de la aplicación en 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

Bueno, senselan es genial, pero solo convierte imágenes de formato a formato. Lo que necesito son simples funciones gráficas (como dibujar líneas) y dibujar texto. – Damian

+0

Como dice el título, debe ser una biblioteca de Java. Mi aplicación ya está desarrollada en Java. – Damian

+0

@Damian: Jhython: ejecuta el código de Python en Java y te permitirá cerrar la brecha. – BobMcGee

0

'El API Java 2D es un conjunto de clases de gráficos 2D avanzados e imágenes, que abarcan arte lineal, texto e imágenes ' http://java.sun.com/products/java-media/2D/index.jsp

Aquí hay otra posibilidad: org.eclipse.draw2d Probablemente se basa en eclipse SWT.

+0

Mira el javadoc: http://java.sun.com/j2se/1.4.2/docs/guide/2d/spec.html No puedo usar AWT. – Damian

1

Use Batik for GAE que está disponible como una dependencia de FOP en GAE.

También puede realizar un seguimiento del problema en el motor de la aplicación de Google bug tracker donde otros han compartido otras ideas en los comentarios.

-1

Vacilo en mencionar PJA, que parece funcionar si las clases AWT están presentes, pero el administrador de seguridad le impide usarlas.

2

También puede probar el proyecto appengine-awt, aunque es un poco experimental.

-1

Si puede usar Python en GAE en lugar de Java, entonces está pybmp.