[cairo] The line still blurry after I follow "Frequently Asked Questions" guide

mryangjian mryangjian at live.com
Tue May 5 01:51:05 UTC 2020



> On Tue, May 05 2020,Carl Worth <cworth at cworth.org>  wrote:
> 
> Here's my best advice:
> 
> 1. Get (or make) a piece of graph paper, (paper with printed vertical
>   and horizontal lines to form a grid of uniform squares.
> 
> 2. Label the line of the graph paper with integers.
> 
> 3. Plot the points of the path that you are constructing in cairo.
> 
> Note: If you are filling the path, skip step 4.
> 
> 4. If you are going to stroke the path, plot new points that are
>   separated orthogonally from the line segments of step (3) at a
>   distance of one-half the current stroke width.
> 
> Now, if all of the lines you drew in step (3), for cairo_fill, or in
> step (4), for cairo_strike, lie precisely on the integer, printed lines
> of your graph paper, then you should be seeing sharp results, (and
> you should also not need to set CAIRO_ANTIALIAS_NONE to achieve that).
> 
> Good luck. And have fun with cairo!
> 
> -Carl


Hi, Thank your guide, and now I know this is not cairo's problem but SDL2, SDL2 need to set SDL_WINDOW_ALLOW_HIGHDPI to show a single pixel line, but I found another problem, and this time I use cairo_surface_write_to_png without SDL2, the line is clear and bright, but the text is blurry. the blew picture is a text compare between cairo and other apps.

How should I do to show a clear text like other apps by using cairo?

picture url : https://i.stack.imgur.com/9q22H.png <https://i.stack.imgur.com/9q22H.png>


code:
cairo_surface_t *surface;     
    cairo_t *cr;                  
    surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 100, 100);
    cr = cairo_create (surface);

    cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
    cairo_paint(cr);


    cairo_text_extents_t extents;
    const char *utf8 = "bulrry text";
    double x,y;

    // cairo_set_antialias(cr, CAIRO_ANTIALIAS_BEST);
    cairo_select_font_face (cr, "mono",
        CAIRO_FONT_SLANT_NORMAL,
        CAIRO_FONT_WEIGHT_NORMAL);

    cairo_set_font_size (cr, 14.0);
    cairo_text_extents (cr, utf8, &extents);
    x = 128.0-(extents.width/2 );
    y = 128.0-(extents.height/2 );

    cairo_move_to (cr, 0, 15);
    cairo_set_source_rgba (cr, 1, 1, 1, 1);
    cairo_show_text (cr, utf8);

    /* draw helping lines */
    cairo_set_source_rgb (cr, 1, 0, 0);
    cairo_set_line_width (cr, 1.0);
    cairo_rectangle(cr, 20.5, 20.5, 50, 50);
    cairo_stroke (cr);
    cairo_surface_write_to_png(surface , "./a.png");
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cairographics.org/archives/cairo/attachments/20200505/89209e0b/attachment.htm>


More information about the cairo mailing list