Tag: java 2d

平滑锯齿状路径

前几天我正在参与线程图像/图形到一个形状 ,并通过迭代地向Area添加一个Rectangle来尝试获取图像的轮廓。 那非常慢。 此示例改为构建GeneralPath并从GP创建Area 。 快多了。 左上角的图像是“源图像”。 右边的两个是处理轮廓的各个阶段。 它们都在圆周围并沿着三角形的倾斜边缘具有锯齿状边缘。 我希望获得一种能够消除或减少锯齿状的形状。 在ASCII艺术中。 情况1: 1234 1 ** 2 ** 3 *** 4 *** 5 **** 6 **** 角落在: (2,3)内角 (3,3) (3,5)内角 (4,5) 案例2: 1234 1 **** 2 **** 3 ** 4 ** 5 **** 6 **** 角落在: (4,2) (2,2)内角 (2,5)内角 (4,5) 假设我们的路径具有显示的形状和列出的点,我想删除第一组的“内角”点,同时保留“内部角落”(图像中的一对)第2位。 任何人都可以建议一些聪明的内置方法来完成这项工作的繁重工作吗? 如果做不到这一点,那么识别内角的位置和性质(对/单)的好方法是什么? (我猜我可以得到一个PathIterator并构建一个新的GeneralPath删除奇异的内角 – 如果我能想出如何识别它们的话!)。 […]

Java2D Graphics消除锯齿

我是Java的新手,并尝试使用Java2D Graphics来创建一个Image。 但输出是反锯齿的。 我尝试了很多方法来纠正它,但是没有用。 角色变得扭曲或锯齿状。 public BufferedImage createNameOnButton(String label) { int messageWidth = 0; Font font = new Font(“Arial”, Font.PLAIN, 11); BufferedImage bi = new BufferedImage( 10, 10, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = (Graphics2D) bi.getGraphics(); g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g2d.setRenderingHint( RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); g2d.setFont(font); bi = g2d.getDeviceConfiguration() .createCompatibleImage(500, 30, Transparency.BITMASK); FontMetrics fm = bi.getGraphics().getFontMetrics(font); int […]