在 GWT 中连接 java.awt.Graphics2D 和 Html5 Canvas 上下文是否可行?

发布于 2024-11-15 22:42:34 字数 486 浏览 5 评论 0原文

我有一个大量使用 java.awt.Graphics2d 的 java 库。

我想使用 gwt 将我的库移植到 html5 canvas。

所以我计划编写一个接口(或只是一个类),比如common.Graphics2d, 一个适配器类(例如 com.test.awt.Graphics2d)实现 common.Graphics2d 并使用 java.awt.Graphics2d

,另一个适配器类(例如 com.test.gwt.Graphics2d)实现 common.Graphics2d 并使用 com.google.gwt。 canvas.dom.client.Context2d。

然后我将用common.Graphics2d替换所有java.awt.Graphics2d。 所以在那之后,我的库将在 gwt 和 java 上运行。

这里的问题是实现graphics2d方法,并通过canvas context 2d进行配置。用canvas实现同样的功能是否可行?

I have a java library which heavily uses java.awt.Graphics2d.

I want to port my library to html5 canvas by using gwt.

So I'm planning to write an interface (or just a class), say common.Graphics2d,
an adapter class, say com.test.awt.Graphics2d, implements common.Graphics2d and uses java.awt.Graphics2d

and another adapter class, say com.test.gwt.Graphics2d, implements common.Graphics2d and uses com.google.gwt.canvas.dom.client.Context2d.

Then I will replace all java.awt.Graphics2d with common.Graphics2d.
So after that, my library will work on both gwt and java.

The problem here is to implement graphics2d methods, and configuration by canvas context 2d. Is it feasible to implement same functionality with canvas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾挽 2024-11-22 22:42:34

我也做过类似的事情。我有一个代表视图的接口和所述接口的两个实现。第一个用于 Android,使用其 android.graphics 类,第二个在 GWT 中使用 com.google.gwt.canvas.client.Canvas 实现。

对我来说,GWT 画布的功能似乎非常齐全。您可以绘制形状、显示文本和图像、移动、旋转、缩放......

I have done a similar thing. I have an interface which represents aview and two implementations of said interface. One for Android using its android.graphics classes and a second implementations in GWT using com.google.gwt.canvas.client.Canvas.

The GWT canvas stuff seems pretty full-featured to me. You can draw shapes, display text and images, move, rotate, scale...

一桥轻雨一伞开 2024-11-22 22:42:34

这可能取决于您使用的功能(例如颜色渐变可能并不容易)。对于基本的绘图功能,您真正需要实现的方法数量非常少。

例如,您可以查看(并重用)我的 jvect-clipboard 包中的类(在 sourceforge 上)。基本上,所有几何方法都可以使用通用路径绘制命令,剩下的就是存储颜色等。

例如,看看 SVG 或 WMF 输出的实现,您会发现代码非常简单,特别是对于 SVG(尽管它没有涵盖所有可能性,特别是渐变)。

It probably depends on the functions you use (for instance color gradient may not be easy). for basic drawing functions, the number of methods you really need to implement is very small.

You can have a look (and reuse) classes from my jvect-clipboard package for instance (on sourceforge). Basically, all geometric methods can use the general path drawing commmand, and you are left with storing colors and the like.

Have a look for instance at the implementation for SVG or WMF output, you will see that the code is pretty simple, especially for SVG (although it doesn't cover all possibilities, in particular gradients).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文