在使用drawstring()
方法做一些事情时,我想知道是否有办法从字符串参数中提取像素数组,以便返回类型可以适合2d像素数组?
该方法还需要使用尺寸和着色。
我已经设法使用drawstring()
将字符串绘制到附加了像素监听器的图形参数,然后简单地从该特定区域获取数据。
但我想知道它们是否是一种无需绘制像素的方法来获取像素?
我希望能够使用我拥有的像素引擎添加波浪,3D旋转和酷粒子效果等效果,因此绘制然后抓取像素需要更多空间!
请记住,在将字符串提取到像素数组之前,字符串将被缩放,着色和变换,因此绘制字符串一次就不会有效。
答案 0 :(得分:0)
绘制字符串的行为很复杂。首先必须将字符串中的文本数据解码为给定字体中的字形序列。然后通过交叉线与您渲染它的比例下的字体曲线定义对这些进行栅格化。 (实际上,通过一个名为“提示”的过程,这甚至更复杂。)一旦你对字形进行栅格化,就可以得到像素数组,然后就可以发送到显示设备了。
您要做的是通过将文本转换为一组从字体字形创建的曲线来中断此过程。如下所示的代码将为您提供曲线:
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