我正在开发一个轻量级图形API,以满足不同需求,我希望在显示图像之前呈现图像。我已经覆盖了AWT的组件以获得最高的性能。但是,如果我在paint
方法中渲染图像(画线,矩形&东西),则在用户频繁调用方法时(例如正在调整窗口大小或正在播放动画),用户可以看到绘制过程, ,这是一个相当重要的性能解决方案。在Java AWT中绘制单个像素的最快方法图形
我决定缓存和分离渲染图像,并简单地将像素复制到paint
方法中的图形对象。但是现在我不知道如何绘制一个像素到Graphics对象。我想下层的Sun实现有这样的方法,但我不应该讲这个类。我知道Graphics类声明了几个看起来很轻量级的方法(drawLine
,drawRect
,fillRect
等),可以用来绘制一个像素,但我不知道哪一个最快。
由于存在内存问题,我不想使用BufferedImage,因此drawImage
在这种情况下不是解决方案。在this question中也不是这样,因为我再也没有使用图像,并且也没有在paint
方法中创建新实例(渲染图像数据类仅在组件大小调整时才会更改)。
tl; dr:java.awt.Graphics中用于将某个像素的颜色通过其坐标设置为指定颜色(java.awt.Color或RGB,最后优选)的最快方法。
预先感谢您。
,你可以在X通,y坐标,然后做g.drawRect(XCOORD ,YCOORD,1,1); –