SaaSHub helps you find the best software and product alternatives Learn more →
Canvas_ity Alternatives
Similar projects and alternatives to canvas_ity
-
osxphotos
Python app to work with pictures and associated metadata from Apple Photos on macOS. Also includes a package to provide programmatic access to the Photos library, pictures, and metadata.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
formkiq-core
A full-featured Document Layer for your application, providing the functionality of a flexible document management system, including storage, discovery, processing, and retrieval. Deploys directly into your Amazon Web Services Cloud. 🌟 Star to support our work!
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
canvas_ity reviews and mentions
-
Writing a TrueType font renderer
I have a small TTF implementation that's in the neighborhood of that size and is open source. It's part of my canvas_ity single-header library [0] that's around 2300 LOC / 36 KB object size and implements a C++ version of most of the 2D HTML5 canvas spec [1].
The core implementation of the TTF parsing and drawing is in L1526-L1846 with another small bit at L3205-L3274 of src/canvas_ity.hpp.
It's something of a toy implementation that only supports western left-to-right text, and doesn't do any hinting at all, nor kerning, nor shaping. But it's enough to draw a basic "Hello world!" using any typical TTF file.
The test suite in test/test.cpp L84-304 embeds a few custom Base64-encoded TTF files. They're small and only have a few glyphs but they do exercise a number of interesting edge cases in the OpenType TTF spec [2]. Have a look at the HTML5 port of the test suite at test/test.html in different browsers to see how their canvas implementations render those fonts.
[0] https://github.com/a-e-k/canvas_ity
[1] https://www.w3.org/TR/2015/REC-2dcontext-20151119/
[2] https://standards.iso.org/ittf/PubliclyAvailableStandards/c0...
-
The Lone Developer Problem
Agreed, that sort of documentation is pure gold when done well.
It's something I always try to pay forward by doing in my own code. For example, one of my own solo projects was an STB-style single-header -like rasterizer library for C++. I started the implementation half of the library with a short outline of the rendering pipeline's dataflow and the top-level functions responsible for each stage:
https://github.com/a-e-k/canvas_ity/blob/f32fbb37e2fe7c0fcae...
-
Ask HN: What have you created that deserves a second chance on HN?
https://github.com/a-e-k/canvas_ity
This is an STB-style single-header C++ library with no dependencies beyond the standard C++ library. In about 2300 lines of 78-column code (not counting blanks or comments), or 1300 semicolons, it implements an API based on the basic W3C specification to draw 2D vector graphics into an image buffer:
- Strokes and fills (with antialiasing and gamma-correct blending)
- Linear and radial gradients
- Patterns (with repeat modes and bi-cubic resampling)
- Line caps and line joins (handling high curvature)
- Dash patterns and dash offsets
- Transforms
- Lines, quadratic and cubic Beziers, arcs, and rectangles
- Text (very basic, but does its own TTF font file parsing!)
- Raster images (i.e., sprites)
- Clipping (via masking)
- Compositing modes (Porter-Duff)
- Drop shadows with Gaussian blurs
I also uncovered a number of interesting browser quirks along the way with the HTML5 port of my testing suite.
- Hello, PNG
- A tiny, single-header -like 2D rasterizer for C++
-
canvas_ity - A tiny, single-header <canvas>-like 2D rasterizer
Repository: https://github.com/a-e-k/canvas_ity
- Show HN: Canvas_ity – A tiny, single-header -like 2D rasterizer for C++
-
A note from our sponsor - SaaSHub
www.saashub.com | 24 Apr 2024
Stats
a-e-k/canvas_ity is an open source project licensed under ISC License which is an OSI approved license.
The primary programming language of canvas_ity is C++.
Sponsored