2012-10-18 22 views
0

我正在使用Batik库处理Java中的SVG文件。当我缩放它时,问题就会出现。我可以看到线条的像素。当然,这不应该发生,我应该能够放大至少约4000%,并保持平稳。在Java中缩放时看到SVG文件的像素

从扩展类中读取SVG文件,并使用覆盖绘画方法绘制它。首先,我将新缩放比例设置为AffineTransform变量,将其应用于方法的图形并使用super.paint()进行绘制。

我真的陷入困境,无法弄清楚问题所在。我使用的SVG文件没问题,我在Inkscape中打开它们,可以在没有显示像素的情况下进行缩放。请帮忙。

代码:

@Override 
public void paint(Graphics g) { 
    try { 
    rad = (int)(radInit*zoom); 
    updateTransform(); 

    Graphics2D g2d = (Graphics2D) g; 
    g2d.setTransform(transform); 

    super.paint(g); 
    paintElements(g2d); 
    } catch(NullPointerException nulle) { 
    // System.out.println("SVG not loaded yet"); 
    } 
} 

private void updateTransform(){ 
    transform = new AffineTransform(); 
    transform.translate((-1)*zoom*centarX, (-1)*zoom*centarY); 
    transform.scale(zoom, zoom);      
} 
+0

请张贴您代码的相关部分。否则,几乎不可能帮助你。 – Baz

回答

0

需要的是

this.setRenderingTransform(transform, true); 

这样没有像素可以看到或者说,一切都画理所应当的。