freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] Glitchy stroker output


From: Werner LEMBERG
Subject: Re: [ft] Glitchy stroker output
Date: Tue, 16 Sep 2008 19:29:26 +0200 (CEST)

> I've noticed that strokers can produce glitchy output, especially
> when thicker borders are requested. [...]

For testing purposes, I've slightly altered your program so that only
one glyph of zeroes_three.ttf is rendered, the dot glyph.  To make the
effects really visible, I've also set nominal_pixel_height to 96 and
real_26_6_border_radius to 16*64.  Attached is the resulting PNG.
However, after the call of FT_Glyph_Stroke, the returned FT_Outline
structure looks just fine (see the attached PDF as created with
MetaPost).  It seems that the problem occurs later in your program,
during the rendering process: Probably an initialization bug, or a
too-small array?


    Werner

PNG image

beginfig(1);
  u := 0.1mm;
  path p;

  x1 = 1152u;
  y1 = 350u;
  x2 = 1152u;
  y2 = 164u;
  x3 = 876u;
  y3 = -128u;
  x4 = 672u;
  y4 = -128u;
  x5 = 474u;
  y5 = -128u;
  x6 = 192u;
  y6 = 158u;
  x7 = 192u;
  y7 = 349u;
  x8 = 192u;
  y8 = 546u;
  x9 = 462u;
  y9 = 832u;
  x10 = 672u;
  y10 = 832u;
  x11 = 870u;
  y11 = 832u;
  x12 = 1152u;
  y12 = 552u;

  p := z1 --
    z2 --
    z3 --
    z4 --
    z5 --
    z6 --
    z7 --
    z8 --
    z9 --
    z10 --
    z11 --
    z12 --
    cycle;

  draw p;
  labels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
      11, 12);

  x1' = 2176u;
  y1' = 355u;
  x2' = 2176u;
  y2' = 663u;
  x3' = 2063u;
  y3' = 927u;
  x4' = 1950u;
  y4' = 1201u;
  x5' = 1735u;
  y5' = 1416u;
  x6' = 1734u;
  y6' = 1417u;
  x7' = 1731u;
  y7' = 1420u;
  x8' = 1730u;
  y8' = 1421u;
  x9' = 1516u;
  y9' = 1633u;
  x10' = 1249u;
  y10' = 1742u;
  x11' = 976u;
  y11' = 1856u;
  x12' = 672u;
  y12' = 1856u;
  x13' = 364u;
  y13' = 1856u;
  x14' = 85u;
  y14' = 1741u;
  x15' = -202u;
  y15' = 1621u;
  x16' = -418u;
  y16' = 1392u;
  x17' = -417u;
  y17' = 1392u;
  x18' = -619u;
  y18' = 1178u;
  x19' = -730u;
  y19' = 903u;
  x20' = -832u;
  y20' = 639u;
  x21' = -832u;
  y21' = 349u;
  x22' = -832u;
  y22' = 48u;
  x23' = -717u;
  y23' = -229u;
  x24' = -603u;
  y24' = -496u;
  x25' = -391u;
  y25' = -709u;
  x26' = -396u;
  y26' = -704u;
  x27' = -184u;
  y27' = -920u;
  x28' = 89u;
  y28' = -1035u;
  x29' = 365u;
  y29' = -1152u;
  x30' = 672u;
  y30' = -1152u;
  x31' = 987u;
  y31' = -1152u;
  x32' = 1254u;
  y32' = -1036u;
  x33' = 1540u;
  y33' = -916u;
  x34' = 1758u;
  y34' = -685u;
  x35' = 1960u;
  y35' = -472u;
  x36' = 2062u;
  y36' = -219u;
  x37' = 2176u;
  y37' = 54u;

  p := z1' --
    z2' --
    z3' --
    z4' --
    z5' --
    z6' --
    z7' --
    z8' --
    z9' --
    z10' --
    z11' --
    z12' --
    z13' --
    z14' --
    z15' --
    z16' --
    z17' --
    z18' --
    z19' --
    z20' --
    z21' --
    z22' --
    z23' --
    z24' --
    z25' --
    z26' --
    z27' --
    z28' --
    z29' --
    z30' --
    z31' --
    z32' --
    z33' --
    z34' --
    z35' --
    z36' --
    z37' --
    cycle;

  draw p;
  labels(1', 2', 3', 4', 5', 6', 7', 8', 9', 10',
      11', 12', 13', 14', 15', 16', 17', 18', 19', 20',
      21', 22', 23', 24', 25', 26', 27', 28', 29', 30',
      31', 32', 33', 34', 35', 36', 37');

  x1'' = 128u;
  y1'' = 355u;
  x2'' = 128u;
  y2'' = 464u;
  x3'' = 172u;
  y3'' = 569u;
  x4'' = 206u;
  y4'' = 654u;
  x5'' = 270u;
  y5'' = 721u;
  x6'' = 350u;
  y6'' = 806u;
  x7'' = 464u;
  y7'' = 854u;
  x8'' = 561u;
  y8'' = 896u;
  x9'' = 672u;
  y9'' = 896u;
  x10'' = 781u;
  y10'' = 896u;
  x11'' = 887u;
  y11'' = 851u;
  x12'' = 990u;
  y12'' = 808u;
  x13'' = 1062u;
  y13'' = 734u;
  x14'' = 1061u;
  y14'' = 735u;
  x15'' = 1058u;
  y15'' = 738u;
  x16'' = 1057u;
  y16'' = 739u;
  x17'' = 1127u;
  y17'' = 668u;
  x18'' = 1171u;
  y18'' = 567u;
  x19'' = 1216u;
  y19'' = 458u;
  x20'' = 1216u;
  y20'' = 349u;
  x21'' = 1216u;
  y21'' = 255u;
  x22'' = 1180u;
  y22'' = 161u;
  x23'' = 1137u;
  y23'' = 56u;
  x24'' = 1071u;
  y24'' = -14u;
  x25'' = 1071u;
  y25'' = -14u;
  x26'' = 1072u;
  y26'' = -14u;
  x27'' = 1072u;
  y27'' = -14u;
  x28'' = 990u;
  y28'' = -101u;
  x29'' = 875u;
  y29'' = -149u;
  x30'' = 770u;
  y30'' = -192u;
  x31'' = 672u;
  y31'' = -192u;
  x32'' = 566u;
  y32'' = -192u;
  x33'' = 461u;
  y33'' = -148u;
  x34'' = 364u;
  y34'' = -109u;
  x35'' = 292u;
  y35'' = -37u;
  x36'' = 287u;
  y36'' = -32u;
  x37'' = 212u;
  y37'' = 43u;
  x38'' = 169u;
  y38'' = 147u;
  x39'' = 128u;
  y39'' = 243u;

  p := z1'' --
    z2'' --
    z3'' --
    z4'' --
    z5'' --
    z6'' --
    z7'' --
    z8'' --
    z9'' --
    z10'' --
    z11'' --
    z12'' --
    z13'' --
    z14'' --
    z15'' --
    z16'' --
    z17'' --
    z18'' --
    z19'' --
    z20'' --
    z21'' --
    z22'' --
    z23'' --
    z24'' --
    z25'' --
    z26'' --
    z27'' --
    z28'' --
    z29'' --
    z30'' --
    z31'' --
    z32'' --
    z33'' --
    z34'' --
    z35'' --
    z36'' --
    z37'' --
    z38'' --
    z39'' --
    cycle;

  draw p;
  labels(1'', 2'', 3'', 4'', 5'', 6'', 7'', 8'', 9'', 10'',
      11'', 12'', 13'', 14'', 15'', 16'', 17'', 18'', 19'', 20'',
      21'', 22'', 23'', 24'', 25'', 26'', 27'', 28'', 29'', 30'',
      31'', 32'', 33'', 34'', 35'', 36'', 37'', 38'', 39'');
endfig;
end;

Attachment: repro-96-16.pdf
Description: Adobe PDF document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]