Comments (6)
fn main() {
let font = ttf_parser::Font::from_data(include_bytes!("../SourceHanSansSC-Regular.otf"), 0).unwrap();
let glyph_index = dbg!(font.glyph_index('A').unwrap());
dbg!(font.outline_glyph(glyph_index, &mut OutlinePrinter));
}
struct OutlinePrinter;
impl ttf_parser::OutlineBuilder for OutlinePrinter {
fn move_to(&mut self, x: f32, y: f32) {
eprintln!("move_to {} {}", x, y);
}
fn line_to(&mut self, x: f32, y: f32) {
eprintln!("line_to {} {}", x, y);
}
fn quad_to(&mut self, x1: f32, y1: f32, x: f32, y: f32) {
eprintln!("quad_to {} {} {} {}", x1, y1, x, y);
}
fn curve_to(&mut self, x1: f32, y1: f32, x2: f32, y2: f32, x: f32, y: f32) {
eprintln!("curve_to {} {} {} {} {} {}", x1, y1, x2, y2, x, y);
}
fn close(&mut self) {
eprintln!("close");
}
}
Output:
[src/main.rs:6] font.glyph_index('A').unwrap() = GlyphId(34)
[src/main.rs:8] font.outline_glyph(glyph_index, &mut OutlinePrinter) = None
Originally posted by @alexheretic in alexheretic/ab-glyph#10 (comment)
from ttf-parser.
Correct, some fonts are bitmap, and some won't work correctly without hinting support which both are unrelated in this case apparently, this however should show something like
This is another library result, haven't checked ttf-parser result yet, if is there any issue guess should be easy to resolve also.
from ttf-parser.
Yes, ttf-parser
doesn't allow CFF Index with 0xFFFF values. I will look up how this case is handled in other libraries.
from ttf-parser.
This font is technically malformed, but since it made by Adobe, who actually wrote the CFF spec - I'm confused.
from ttf-parser.
Also, ttf-parser
couldn't find local subroutines for some reason. So I guess it will take a while to fix all the issues related to this font.
from ttf-parser.
This is a CID font, so please follow #7
from ttf-parser.
Related Issues (20)
- f32 has too little precision for offsets HOT 3
- When parsing a regular font (not a collection) the index is ignored HOT 4
- C-api in rust 32-bit environment,Test case call failed
- Zero offsets in `parse_at_offset16` HOT 17
- Add essential links to README HOT 2
- Question about parser.rs HOT 2
- Can you add an example of how to create a simple letter and save as a font? HOT 3
- Serde feature HOT 1
- The direction of outline contour? HOT 3
- how to get a variable instance of a variable font HOT 2
- Support woff2 HOT 1
- Does it support monochrome fonts HOT 1
- parse_char_string_width does not take subroutines into account HOT 6
- Support GDEF Ligature Caret List Table HOT 3
- Getting the number of faces HOT 15
- font_collection_num_fonts_overflow test fails on 32-bit architectures HOT 3
- Missing instance records in fvar::Table HOT 3
- Face::set_variation change in behaviour HOT 1
- Request for Addition of an Interface to Extract Basic Font Information from Files to Support Directory Scan of All Fonts for Rendering Unicode Text HOT 2
- ttf-parser v0.20 fails to compile on Rust 1.76 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ttf-parser.