Java 获取字符串的像素

Java 获取字符串的像素,java,string,graphics,pixels,Java,String,Graphics,Pixels,在使用drawstring()方法进行一些工作时,我想知道是否有一种方法可以从字符串参数中提取像素数组,以便返回类型可以适合2d像素数组? 该方法还需要进行上浆和着色 我已经成功地使用drawstring()将字符串绘制到一个图形参数,该参数附带了一个像素侦听器,然后简单地从该特定区域获取数据。 但是我想知道他们的方法是不是一种不用画图就能得到像素的方法 我想能够添加效果,如波,三维旋转和冷粒子效果使用像素引擎,我有,所以画,然后抓住像素需要很多更新空间 请记住,在提取到像素阵列之前,字符串将被

在使用
drawstring()
方法进行一些工作时,我想知道是否有一种方法可以从字符串参数中提取像素数组,以便返回类型可以适合2d像素数组? 该方法还需要进行上浆和着色

我已经成功地使用
drawstring()
将字符串绘制到一个图形参数,该参数附带了一个像素侦听器,然后简单地从该特定区域获取数据。 但是我想知道他们的方法是不是一种不用画图就能得到像素的方法

我想能够添加效果,如波,三维旋转和冷粒子效果使用像素引擎,我有,所以画,然后抓住像素需要很多更新空间


请记住,在提取到像素阵列之前,字符串将被缩放、着色和变换,因此一次绘制字符串是不可行的。

绘制字符串的过程是复杂的。字符串中的文本数据首先必须解码为给定字体中的一系列字形。然后,在渲染字体的比例下,通过与字体的曲线定义相交的线来栅格化这些曲线。(实际上,通过一个称为“暗示”的过程,这甚至更为复杂。)一旦光栅化了轮廓,就有了像素阵列,然后可以发送到显示设备

<>你想做的是通过将文本转换成一组由字形字形创建的曲线来中断中间过程。以下代码将为您提供曲线:

Graphics graphics;
Font font = new Font("ComicSans", Font.PLAIN, 12);
GlyphVector vector = font.createGlyphVector(graphics.getFontMetrics(font).getFontRenderContext(), "Lorem ipsum");
Shape shape = vector.getOutline();
// transform shape

画图就是从中获取像素——这就是画图的作用!很确定你必须画它才能得到像素。根据像素的实际用途,
TextMetrics
可能会完成这项工作。感谢您的快速响应,我想我必须深入了解,如果不绘制它,是否100%不可能。我不想画它的原因是,通过画它,然后复制刚画的像素,它们是不必要的脚本,我编辑了我的问题,说我想用我的像素引擎将像素转换成波浪,3d旋转,这意味着,如果他们是一个绘图,然后每次都抓取像素,那么每秒的更新将减少很多。您希望如何获取像素?(我的意思是,以哪种形式?)您只需将字符串绘制成
缓冲图像
,就可以(或多或少)直接访问存储RGB像素值的
int[]
。我无法想象还有比这更短的路。这就是你要找的吗?