问题标签 [java-2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
327 浏览

java - 使用 Java2D 和 ServletOutputStream 不可预测?

我们有一些生产代码有效地完成了这段代码的工作:

http://java.sun.com/products/java-media/2D/reference/faqs/index.html#Q_Can_I_use_Java2D_to_generate_d

这很好用,但是我注意到一些令人担忧的行为。

当一个 servlet 被请求并且一些图像数据通过 ServletOutputStream 返回到浏览器时,如果在图像完成自己在屏幕上绘制之前触发了另一个请求,这总是会导致整个 Jaguar 服务器崩溃,并出现以下跟踪:

我在网上找到了一些参考资料,说我正在尝试做的事情是不可靠的,即:

http://forums.sun.com/thread.jspa?trange=15&threadID=560000&forumID=20&tstart=0

但是,老实说,我不清楚 EDT 是什么。

有没有人遇到过这个问题,并且能够为它创建一个解决方法?

0 投票
6 回答
10133 浏览

java - Java 2D:将点 P 移动到靠近另一个点的一定距离?

将 Point2D.Double x 距离移近另一个 Point2D.Double 的最佳方法是什么?

编辑:试图编辑,但因维护而停机。不,这不是作业

我需要将飞机 (A) 移向跑道 (C) 的尽头,并将其指向正确的方向(角度 a)。

替代文字 http://img246.imageshack.us/img246/9707/planec.png

这是我到目前为止所拥有的,但看起来很乱,做这样的事情的通常方法是什么?

三角形类可以在http://pastebin.com/RtCB2kSZ找到

记住飞机可以在跑道点周围的任何位置

0 投票
3 回答
9110 浏览

java - 如何使用 Java2D 创建硬件加速映像?

我正在尝试创建一个快速的图像生成器,它可以进行大量的 2d 转换和形状渲染,所以我尝试使用 BufferedImage 然后获取 Graphics2D 对象来执行我的所有绘图。我现在主要关心的是制作速度非常快,所以我正在创建一个这样的 BufferedImage:

但是,如果我这样做:

输出始终为false,即使我使用 -Dsun.java2d.opengl=True 启动 JVM 打印该行:

我正在做一个 BufferedImage 因为最后我想用 ImageIO.write(bImage, "PNG", file); 将它保存到一个 PNG 文件中。

我可以创建一个 VolatileImage,它会说它已加速,但 ImageIO 在尝试保存时不喜欢它,说该图像无法转换为 RenderedImage。关于如何获得可以存储到磁盘的加速图像的任何想法?此外,我不想创建 VolatileImage 并将副本复制到 BufferedImage 以保存,因为我的图像非常大,我会遇到内存不足的问题......

0 投票
1 回答
1064 浏览

java - Swing / Java2D 统计和可视化库

我正在寻找一个多方面的 Java2D / Swing 可视化库,我可以使用它来呈现不同的统计数据。具体来说,我正在寻找时间线绘图(具有可配置的滚动和压缩时间线,以及在时间线的某些点绘制事件图表的能力)、折线图、饼图等,但如果你可以列出那些你目前使用或推荐,那会很酷,干杯 :) 重要的是高性能,也许是连接到现有数据集或事件系统(如 Esper)的能力。

我会不断更新这篇文章,并将社区发布的内容作为答案。

0 投票
3 回答
833 浏览

java - 调整大小的图像质量下降

我使用 Java2D Graphics 类调整了图像的大小。但它看起来不正确。

是否可以在不引入伪影的情况下缩放图像?

0 投票
1 回答
1977 浏览

java - 自定义 JComponent 未显示在自定义 JPanel 中

我尝试了 add() 方法,但是当我尝试将 Test 添加到 GraphicsTest 时没有显示任何内容。我应该如何添加它?有人可以给我看吗?我已经包含了我正在使用的代码。

这是我的方式,它不起作用。有人可以告诉我或让我知道问题到底是什么吗?

这是另一个类:

0 投票
2 回答
496 浏览

java - 创建椭圆画笔图像的算法?

我需要能够接受椭圆(计算)画笔参数,例如间距、硬度、圆度、角度和直径,然后根据这些属性计算位图图像。

有谁知道执行此操作的算法(或我在哪里可以找到它)?我在图形编程方面的经验有限,到目前为止我一直找不到。

0 投票
3 回答
63255 浏览

java - 设置不透明(真/假);爪哇

在 Java2D 中,当您使用 setOpaque 时,我对 true 和 false 的作用有点困惑。

例如,我知道在 Swing 中不透明意味着在绘制 Swing 时不会绘制组件后面的内容。或者这是倒退?哪一个?

谢谢

0 投票
3 回答
838 浏览

java - 在 Java 中以自下而上的顺序存储图像像素的最佳方法

我有一个字节数组,表示 Windows BMP 格式的图像,我希望我的库将它作为 . 呈现给 Java 应用程序BufferedImage而不复制像素数据。

主要问题是 JDK 中的所有实现都Raster以自上而下、从左到右的顺序存储图像像素,而 BMP 像素数据是自下而上、从左到右存储的。如果不对此进行补偿,则生成的图像将垂直翻转。

最明显的“解决方案”是将SampleModel'scanlineStride属性设置为负值,并将带偏移(或DataBuffer' 数组偏移)更改为指向左上角像素,即数组中最后一行的第一个像素. 不幸的是,这不起作用,因为如果给定负参数,所有SampleModel构造函数都会抛出异常。scanlineStride

我目前正在通过scanlineStride使用反射将字段强制为负值来解决它,但如果可能的话,我想以一种更清洁、更便携的方式来解决它。例如,是否有另一种方法可以欺骗RasterorSampleModel以自下而上的顺序排列像素但不破坏封装?或者是否有一个库可以包装Rasterand SampleModel,以相反的顺序呈现像素行?

我宁愿避免以下方法:

  • 复制整个图像(出于性能原因。代码必须每秒处理数百个大(> = 1Mpixels)图像,虽然整个图像必须可供应用程序使用,但它通常只能访问一个很小的(但难以预测) )图像的一部分。)
  • 修改DataBuffer以执行坐标变换(这实际上可行,但这是另一个“肮脏”的解决方案,因为缓冲区不需要了解扫描线/像素布局。)
  • 从头开始重新实现Raster和/或SampleModel接口(因为兼容性检查的实现方式(至少在 Sun JDK 中),需要特定的子类,SampleModel因此通用BottomUpSampleModel包装类不起作用。)
0 投票
2 回答
1769 浏览

java - JPanel 布局图像截断

我正在向 JPanel 添加图像,但图像被截断。我最初是在尝试 BorderLayout ,但这只适用于一个图像并添加其他图像截止。所以我切换到其他布局,我能得到的最好和最接近的布局是 BoxLayout,但是它增加了一个非常大的截断,这也是不可接受的。

所以基本上; 如何将图像(来自自定义 JComponent)添加到自定义 JPanel 而不会产生不良影响,例如代码中存在的效果。

自定义 JPanel:

主类:

自定义 JComponent