问题标签 [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.
java - 使用 Java2D 和 ServletOutputStream 不可预测?
我们有一些生产代码有效地完成了这段代码的工作:
这很好用,但是我注意到一些令人担忧的行为。
当一个 servlet 被请求并且一些图像数据通过 ServletOutputStream 返回到浏览器时,如果在图像完成自己在屏幕上绘制之前触发了另一个请求,这总是会导致整个 Jaguar 服务器崩溃,并出现以下跟踪:
我在网上找到了一些参考资料,说我正在尝试做的事情是不可靠的,即:
http://forums.sun.com/thread.jspa?trange=15&threadID=560000&forumID=20&tstart=0
但是,老实说,我不清楚 EDT 是什么。
有没有人遇到过这个问题,并且能够为它创建一个解决方法?
java - Java 2D:将点 P 移动到靠近另一个点的一定距离?
将 Point2D.Double x 距离移近另一个 Point2D.Double 的最佳方法是什么?
编辑:试图编辑,但因维护而停机。不,这不是作业
我需要将飞机 (A) 移向跑道 (C) 的尽头,并将其指向正确的方向(角度 a)。
替代文字 http://img246.imageshack.us/img246/9707/planec.png
这是我到目前为止所拥有的,但看起来很乱,做这样的事情的通常方法是什么?
三角形类可以在http://pastebin.com/RtCB2kSZ找到
记住飞机可以在跑道点周围的任何位置
java - 如何使用 Java2D 创建硬件加速映像?
我正在尝试创建一个快速的图像生成器,它可以进行大量的 2d 转换和形状渲染,所以我尝试使用 BufferedImage 然后获取 Graphics2D 对象来执行我的所有绘图。我现在主要关心的是制作速度非常快,所以我正在创建一个这样的 BufferedImage:
但是,如果我这样做:
输出始终为false,即使我使用 -Dsun.java2d.opengl=True 启动 JVM 打印该行:
我正在做一个 BufferedImage 因为最后我想用 ImageIO.write(bImage, "PNG", file); 将它保存到一个 PNG 文件中。
我可以创建一个 VolatileImage,它会说它已加速,但 ImageIO 在尝试保存时不喜欢它,说该图像无法转换为 RenderedImage。关于如何获得可以存储到磁盘的加速图像的任何想法?此外,我不想创建 VolatileImage 并将副本复制到 BufferedImage 以保存,因为我的图像非常大,我会遇到内存不足的问题......
java - Swing / Java2D 统计和可视化库
我正在寻找一个多方面的 Java2D / Swing 可视化库,我可以使用它来呈现不同的统计数据。具体来说,我正在寻找时间线绘图(具有可配置的滚动和压缩时间线,以及在时间线的某些点绘制事件图表的能力)、折线图、饼图等,但如果你可以列出那些你目前使用或推荐,那会很酷,干杯 :) 重要的是高性能,也许是连接到现有数据集或事件系统(如 Esper)的能力。
我会不断更新这篇文章,并将社区发布的内容作为答案。
- JFreeChart ( http://www.jfree.org/jfreechart/ )
java - 调整大小的图像质量下降
我使用 Java2D Graphics 类调整了图像的大小。但它看起来不正确。
是否可以在不引入伪影的情况下缩放图像?
java - 自定义 JComponent 未显示在自定义 JPanel 中
我尝试了 add() 方法,但是当我尝试将 Test 添加到 GraphicsTest 时没有显示任何内容。我应该如何添加它?有人可以给我看吗?我已经包含了我正在使用的代码。
这是我的方式,它不起作用。有人可以告诉我或让我知道问题到底是什么吗?
这是另一个类:
java - 创建椭圆画笔图像的算法?
我需要能够接受椭圆(计算)画笔参数,例如间距、硬度、圆度、角度和直径,然后根据这些属性计算位图图像。
有谁知道执行此操作的算法(或我在哪里可以找到它)?我在图形编程方面的经验有限,到目前为止我一直找不到。
java - 设置不透明(真/假);爪哇
在 Java2D 中,当您使用 setOpaque 时,我对 true 和 false 的作用有点困惑。
例如,我知道在 Swing 中不透明意味着在绘制 Swing 时不会绘制组件后面的内容。或者这是倒退?哪一个?
谢谢
java - 在 Java 中以自下而上的顺序存储图像像素的最佳方法
我有一个字节数组,表示 Windows BMP 格式的图像,我希望我的库将它作为 . 呈现给 Java 应用程序BufferedImage
,而不复制像素数据。
主要问题是 JDK 中的所有实现都Raster
以自上而下、从左到右的顺序存储图像像素,而 BMP 像素数据是自下而上、从左到右存储的。如果不对此进行补偿,则生成的图像将垂直翻转。
最明显的“解决方案”是将SampleModel
'scanlineStride
属性设置为负值,并将带偏移(或DataBuffer
' 数组偏移)更改为指向左上角像素,即数组中最后一行的第一个像素. 不幸的是,这不起作用,因为如果给定负参数,所有SampleModel
构造函数都会抛出异常。scanlineStride
我目前正在通过scanlineStride
使用反射将字段强制为负值来解决它,但如果可能的话,我想以一种更清洁、更便携的方式来解决它。例如,是否有另一种方法可以欺骗Raster
orSampleModel
以自下而上的顺序排列像素但不破坏封装?或者是否有一个库可以包装Raster
and SampleModel
,以相反的顺序呈现像素行?
我宁愿避免以下方法:
- 复制整个图像(出于性能原因。代码必须每秒处理数百个大(> = 1Mpixels)图像,虽然整个图像必须可供应用程序使用,但它通常只能访问一个很小的(但难以预测) )图像的一部分。)
- 修改
DataBuffer
以执行坐标变换(这实际上可行,但这是另一个“肮脏”的解决方案,因为缓冲区不需要了解扫描线/像素布局。) - 从头开始重新实现
Raster
和/或SampleModel
接口(因为兼容性检查的实现方式(至少在 Sun JDK 中),需要特定的子类,SampleModel
因此通用BottomUpSampleModel
包装类不起作用。)
java - JPanel 布局图像截断
我正在向 JPanel 添加图像,但图像被截断。我最初是在尝试 BorderLayout ,但这只适用于一个图像并添加其他图像截止。所以我切换到其他布局,我能得到的最好和最接近的布局是 BoxLayout,但是它增加了一个非常大的截断,这也是不可接受的。
所以基本上; 如何将图像(来自自定义 JComponent)添加到自定义 JPanel 而不会产生不良影响,例如代码中存在的效果。
自定义 JPanel:
主类:
自定义 JComponent