-
Notifications
You must be signed in to change notification settings - Fork 87
Home
good read:
http://www.antigrain.com/research/font_rasterization/
http://blog.typekit.com/2010/12/08/type-rendering-font-outlines-and-file-formats/
https://www.microsoft.com/typography/developers/opentype/default.htm
https://maxradi.us/documents/uniscribe/
https://blogs.msdn.microsoft.com/fontblog/2005/11/08/where-does-96-dpi-come-from-in-windows/
https://github.com/deanhume/typography
https://www.tug.org/TUGboat/tb24-3/lemberg.pdf
https://www.microsoft.com/en-us/Typography/FontVariationsAnnouncement.aspx
http://v1.jontangerine.com/log/2007/10/smoothing-out-the-creases-in-web-fonts
http://www.creativebloq.com/typography/what-is-typography-123652
http://www.creativebloq.com/graphic-design-tips/best-free-fonts-for-designers-1233380
https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/how-to-obtain-font-metrics
https://damieng.com/blog/2013/06/02/typography-on-the-microsoft-campus
http://www.unicode.org/charts/PDF/U1D100.pdf
http://milde.users.sourceforge.net/LUCR/Math/
opentype
http://www.makeuseof.com/tag/otf-vs-ttf-fonts-one-better/
http://opentypecookbook.com/index.html
https://www.iro.umontreal.ca/~boyer/typophile/doc/lookups.html
https://msdn.microsoft.com/en-us/library/windows/desktop/dd374094(v=vs.85).aspx
https://www.typotheque.com/articles/hinting
https://simoncozens.github.io/fonts-and-layout/opentype.html
How Typography Determines Readability: Serif vs. Sans Serif, and How To Combine Fonts. https://medium.freecodecamp.org/how-typography-determines-readability-serif-vs-sans-serif-and-how-to-combine-fonts-629a51ad8cce
The-anatomy-of-a-thousand-typefaces https://medium.com/@getflourish/the-anatomy-of-a-thousand-typefaces-f7b9088eed1
SVG: text
https://www.w3.org/TR/SVG2/text.html
Pomax' CFF article
https://pomax.github.io/CFF-glyphlet-fonts/
triangulation
-
Sweep-line algorithm for constrained Delaunay triangulation Authors: V. Domiter Department of Computer Science, Faculty of Electrical Engineering and Computer Sciences, University of Maribor, SI 2000 Maribor, Slovenia B. Zalik Department of Computer Science, Faculty of Electrical Engineering and Computer Sciences, University of Maribor, SI 2000 Maribor, Slovenia
git rebase
You rebase as usual.
git fetch
git checkout -b my-rebased-branch-name` # create new branch to avoid force pushing
git rebase upstream/master # rebase, this assumes you've got upstream remote setup.
Then you can push the branch as usual. :-)
others
http://kanji-database.sourceforge.net/fonts/opentype.html
true type hinting
http://www.truetype-typography.com/tthints.htm
http://blog.typekit.com/2010/12/14/a-closer-look-at-truetype-hinting/
https://www.microsoft.com/typography/hinting/tutorial.htm
https://www.microsoft.com/typography/otspec/ttinst.htm
fontTools note
text shaping
http://www.panl10n.net/Presentations/Cambodia/Pema/LocalizationofLinux(Bhutan).pdf
I18N
http://chinese-characters.net/default.asp?roomx=FAQ
https://www.hebrewsyntax.org/bbh2/bbh2_supplement.pdf
.NET's Graphics.DrawString() VS TextRenderer.DrawText()
Note on Century font
pic 1: '2' glyph, Century font, Gdi+ version
pic 2: Century font, 240 pt, Notepad [1] vs Typography [2], see red rectangle, this is a characteristic of this glyph (starts with OFF-CURVE point and ends with OFF-CURVE point)
Note on Montserrat font (https://github.com/JulietaUla/Montserrat) Some glyphs (eg. 0 glyph) starts with OFF curve and ends with ON curve
pic 1: Before, incorrect rendering
pic 2: After
old swapping bit code static ushort SwapBytes(ushort x) { return (ushort)((ushort)((x & 0xff) << 8) | ((x >> 8) & 0xff)); }
static uint SwapBytes(uint x)
{
return ((x & 0x000000ff) << 24) +
((x & 0x0000ff00) << 8) +
((x & 0x00ff0000) >> 8) +
((x & 0xff000000) >> 24);
}
static ulong SwapBytes(ulong value)
{
ulong uvalue = value;
ulong swapped =
((0x00000000000000FF) & (uvalue >> 56)
| (0x000000000000FF00) & (uvalue >> 40)
| (0x0000000000FF0000) & (uvalue >> 24)
| (0x00000000FF000000) & (uvalue >> 8)
| (0x000000FF00000000) & (uvalue << 8)
| (0x0000FF0000000000) & (uvalue << 24)
| (0x00FF000000000000) & (uvalue << 40)
| (0xFF00000000000000) & (uvalue << 56));
return swapped;
}
Read more...
https://kaonashi-tyc.github.io/2017/04/06/zi2zi.html