hi John

has anyone been able to get sub-pixel antialiasing (smoothing) to work?
On what platforms?
Yes, I have it working fine on Windows Vista and Ubuntu with Java 6 Update 10.

I must be missing something obvious. I just installed jdk1.6.0_10 on
my Debian Linux system and there is still no subpixel rendering (aka
subpixel anti-aliasing).

I'm testing using squiggle. Squiggle draws the text in the SVG using
grey levels (gray-scale anti-aliasing). Squiggle's menu buttons are
however drawn using subpixel rendering (proving that my java
installation can do subpixel rendering).

Could you please send me your modifed CSSUtilities.java? My code is
shown below. When I run squiggle on my test SVG file, it prints
out the debug that I added. Why doesn't it do subpixel rendering?

thanks
Stuart

:; /opt/jdk1.6.0_10/bin/java -cp batik.jar -jar batik-squiggle.jar 
/tmp/samples/subpixel.svg
Loading document...
Loading document completed in 151 ms
Building document...
geometricPrecision
optimizeLegibility
optimizeSpeed
Building document completed in 15 ms
Rendering document preparation...
Rendering document preparation completed in 11 ms
Rendering document started...
Rendering document completed in 30 ms


    public static RenderingHints convertTextRendering(Element e,
                                                      RenderingHints hints) {
        Value v = getComputedStyle(e, SVGCSSEngine.TEXT_RENDERING_INDEX);
        String s = v.getStringValue();
        int    len = s.length();
        if ((len == 4) && (s.charAt(0) == 'a')) // auto
            return hints;
        if (len < 13) return hints;  // Unknown.

        if (hints == null)
            hints = new RenderingHints(null);

        switch(s.charAt(8)) {
        case 's': // optimizeSpeed
                System.err.println("optimizeSpeed");
            hints.put(RenderingHints.KEY_RENDERING,
                      RenderingHints.VALUE_RENDER_SPEED);
            hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
                      RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
            hints.put(RenderingHints.KEY_ANTIALIASING,
                      RenderingHints.VALUE_ANTIALIAS_OFF);
            // hints.put(RenderingHints.KEY_FRACTIONALMETRICS,
            //           RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
            break;
        case 'l': // optimizeLegibility
                System.err.println("optimizeLegibility");
           hints.put(RenderingHints.KEY_RENDERING,
                      RenderingHints.VALUE_RENDER_QUALITY);
            hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
                      RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
            hints.put(RenderingHints.KEY_ANTIALIASING,
                      RenderingHints.VALUE_ANTIALIAS_ON);
            // hints.put(RenderingHints.KEY_FRACTIONALMETRICS,
            //           RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
            break;
        case 'c': // geometricPrecision
                System.err.println("geometricPrecision");
            hints.put(RenderingHints.KEY_RENDERING,
                      RenderingHints.VALUE_RENDER_QUALITY);
            hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
                      RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
            hints.put(RenderingHints.KEY_ANTIALIASING,
                      RenderingHints.VALUE_ANTIALIAS_ON);
            hints.put(RenderingHints.KEY_FRACTIONALMETRICS,
                      RenderingHints.VALUE_FRACTIONALMETRICS_ON);
            hints.put(RenderingHints.KEY_STROKE_CONTROL,
                      RenderingHints.VALUE_STROKE_PURE);
            break;
        }
        return hints;
    }

here is my test SVG file

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd";>
<svg xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; width="450" 
height="500" viewBox="0 0 450 500">
<title>Text Rotation</title>
<text x="5%" y="20" text-rendering="geometricPrecision" font-size="14" 
font-family="DejaVu Serif">
    abcdef geometricPrecision</text>
<text x="5%" y="40" text-rendering="optimizeLegibility" font-size="14" 
font-family="DejaVu Serif">
    abcdef optimizeLegibility</text>
<text x="5%" y="60" text-rendering="optimizeSpeed" font-size="14" font-family="DejaVu 
Serif">
    abcdef optimizeSpeed</text>
<text x="5%" y="80" text-rendering="auto" font-size="14" font-family="DejaVu 
Serif">
    abcdef auto</text>
</svg>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to