【问题标题】:Java: create graphics without awt?Java:不用awt创建图形?
【发布时间】:2011-01-11 06:23:32
【问题描述】:

是否有任何库可以在不使用 AWT 的情况下创建图形?
我需要的是简单的绘图函数(比如画一条线)和文本绘图函数,以便在内存中为 Google 应用程序引擎应用程序创建图形。应用引擎不支持 AWT。

谢谢!

【问题讨论】:

  • 客户端是否支持 SVG?如果是这样,您可以查看java.sun.com/javame/technology/msa/jsr226.jsp
  • 本着与 rleir 评论相同的精神,蜡染可以成为一种选择吗? xmlgraphics.apache.org/batik
  • 这是一个任何人都可以使用的网站,所以客户端可能不支持SVG。 AlBlue:那不是真的。
  • @AlBlue:这是真的(并且有问题),但是很多答案都没有帮助或者实际上需要 AWT,并且快速谷歌会确认这一点。我认为对快速事实检查表明不正确的答案进行评分是公平的。
  • 我同意你的观点,BobMcGee。澄清一下:我对一些答案投了反对票,因为它们完全错了,其中一些在我投票之前就被投了赞成票,我只是无法理解。但我也投票赞成其他答案——尽管没有给出我的问题的解决方案——是很好的答案。我认为这就是投票系统的用途。

标签: java google-app-engine graphics awt


【解决方案1】:

除非您想实现自己的图像类(例如位图)和线条、形状、图像的渲染算法,否则不会。

如果您有计算机图形和光栅化方面的经验,这可能不是很困难,但否则会比您想吃的多。

【讨论】:

  • 这就是我所做的并且效果很好,但问题在于呈现文本。这是我认为编写自己的代码无法解决的问题。至少不像画线或画圆那么容易。
  • @Damian:文本渲染很复杂,我不确定你会找到一个简单的解决方案。您可能尝试将 AWT 的非本地部分用作标准包——我记得在某处看到了许多绘图功能的完全软件(无 GPU)实现。他们使用它来进行基准测试并演示一种并行方法。
  • 我找到了这个:fonteditor.org ...我会尽快尝试。
【解决方案2】:

您也可以尝试appengine-awt 项目,尽管它有点实验性。

【讨论】:

    【解决方案3】:

    您可以尝试使用SenseLan。在requirements section 中,它说他们不使用awt 或ImageIO。当然,还有Images api,但它提供的功能似乎相当有限。

    编辑:

    看起来有几个 Python 可能性可以为您提供一些有限的绘图功能。您可能可以将适当的图像功能编写为 python web 服务,并将应用程序的其余部分保留在 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/

    【讨论】:

    • 嗯,senselan 很棒,但它只能将图像从格式转换为格式。我需要的是简单的图形功能(比如画线)和文字。
    • 正如标题所说,它必须是Java库。我的应用程序已经用 java 开发了。
    • @Damian: Jhython -- 在 Java 中运行 Python 代码,可以帮助您弥补差距。
    【解决方案4】:

    使用Batik for GAE,它可作为 FOP 对 GAE 的依赖项。

    您还可以在 Google 应用引擎 bug tracker 上进一步跟踪问题,其他人在 cmets 中分享了其他想法。

    【讨论】:

      【解决方案5】:

      'Java 2D API 是一组用于高级 2D 图形和成像的类,包括线条艺术、文本和图像' http://java.sun.com/products/java-media/2D/index.jsp

      这是另一种可能性:org.eclipse.draw2d 它可能依赖于 eclipse SWT。

      【讨论】:

      【解决方案6】:

      TinyLine 在 Google App Engine 服务器端提供vector graphics support,还提供 SVG 渲染支持。请参阅SVG Thumbnail images 演示。

      【讨论】:

      • 对我们不起作用,开发人员似乎已经放弃了它。
      【解决方案7】:

      Google Web Toolkit 包含一个很好的图形库,专为与 Google 应用引擎交互而设计。

      编辑澄清:Google App Engine 专为在网络上托管应用程序而设计。您需要设计可以在浏览器中运行的图形。为此,您需要使用 Web 语言(例如 Javascript)编写代码。 Google Web Toolkit 包含一个 Java 图形库,可编译为 Javascript,从而节省您自己编写 Javascript 的工作量。

      【讨论】:

      • 但是我需要在服务器上创建图片。
      【解决方案8】:

      我不愿提及PJA,如果存在 AWT 类,它似乎可以工作,但安全管理器会阻止您使用它们。

      【讨论】:

        【解决方案9】:

        如果您可以在 GAE 上使用 Python 而不是 Java,那么就有 pybmp

        【讨论】:

          猜你喜欢
          • 2016-08-09
          • 2019-05-04
          • 2013-07-06
          • 1970-01-01
          • 2017-05-04
          • 1970-01-01
          • 2013-03-11
          • 2011-05-01
          • 1970-01-01
          相关资源
          最近更新 更多