node-canvas
opentype.js
node-canvas | opentype.js | |
---|---|---|
22 | 4 | |
9,908 | 4,298 | |
0.6% | 0.6% | |
5.7 | 8.1 | |
9 days ago | 5 days ago | |
JavaScript | JavaScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
node-canvas
-
2024 Web Development Wish List
Assuming SWR (stale while revalidate) is working, we could definitely use the ability to edit images in workers. We would need support for node canvas or something similar.
-
Skinny legend (2017 - 2023)
So at this point, I have all the images and the data required to align the images. I used node-canvas to do that. So here's how I aligned the images:
-
ECharts for Python
ECharts was originally a Baidu project, released under https://github.com/ecomfe/echarts (ecomfe = "E-commerce frontend"?). They still maintain some of the auxiliary libraries.
I've been using it since around ... 2018-ish[0]? ... as a replacement for Google Charts. It was my first time using a big library from one of the Chinese tech giants -- basic docs and tutorials in English, then all the advanced stuff (and comments) written in Chinese. I was impressed by how comprehensive the charts library was, and how they'd obviously invested a lot of brainwork into the configuration system. IMO it's one of the highest-quality data visualization libraries in JavaScript unless you're willing to dive deep into something like d3.js.
The blog post's author describes running echarts in a headless Chrome, though, which seems insane to me. It's JavaScript rendering to a -- can't it run in Node with https://github.com/Automattic/node-canvas ?
[0] A small publicly-accessible example: https://john-millikin.com/reddit-front-page-2018#by-domain
-
Unify Protect Homebridge Plugin
node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.0/canvas-v2.11.0-node-v93-darwin-unknown-arm64.tar.gz
-
Social Media Cards with @vercel/og
Another approach is it to create a background image and insert the texts and the metadata with a canvas library like node-canvas. This approach is very well described in this Learn With Jason episode. But with a canvas library we have to specify on which coordinates we want to render our texts and it does not wrap automatically if it becomes to long.
-
Is there a simple way to draw a box on a JPG?
Never used it but probably this: https://github.com/Automattic/node-canvas
-
Lambda keeps consuming more and more memory until it kills it self
I found this issue: https://github.com/Automattic/node-canvas/issues/1974 and somebody commented with a link about node buffers. So I decided to test these parts.
-
best way to generate image on server
Some popular Node.js libraries for manipulating images are node-canvas and sharp.
-
BEGINNER PROJECT - How to parse a .txt and create .png files from each line?
node.js + imagemagick + node canvas + node canvas libraries (depends on your OS)
-
The tech behind creating your own 'Spotify Wrapped' style campaign in 2022
If you want to go the same route check out the node-canvas library from the Automattic folks. That essentially lets you use the Browser Canvas API for drawing (but server side instead of in the browser).
opentype.js
-
Wakamai Fondue, the tool that answers the question “what can my font do?”
[3] https://github.com/opentypejs/opentype.js
-
Social Media Cards with @vercel/og
With an SVG we can define our image as code, which is pretty neat. But SVG is not able to wrap texts. We can use opentype.js to calculate the width of our texts and to wrap it manually. Finally we have to convert the SVG to a PNG, because the most of social media platforms do not support SVG. This approach could work, but requires a lot of code and it is very complicated.
-
is there way to calculate the height of each letters?
The repo is public so you can take a look if you're curious. I used opentype.js to convert the font into SVG in real-time. It was a PITA.
-
I made a VSCode extension that lets you preview fonts in your editor
Still a few bugs to work out but I learned a ton making this! One of the cool things I learned is that you can read a font file, convert it to a base 64 string, slap it in a style element, and show that font in the browser! Huge thanks to opentype.js as well!
What are some alternatives?
canvas - High performance skia binding to Node.js. Zero system dependencies and pure npm packages without any postinstall scripts nor node-gyp.
source-han-sans - Source Han Sans | 思源黑体 | 思源黑體 | 思源黑體 香港 | 源ノ角ゴシック | 본고딕
puppeteer - Node.js API for Chrome
glyphhanger - Your web font utility belt. It can subset web fonts. It can find unicode-ranges for you automatically. It makes julienne fries.
vercel - Develop. Preview. Ship.
satori - Enlightened library to convert HTML and CSS to SVG
napi-rs - A framework for building compiled Node.js add-ons in Rust via Node-API
chiron-sans-hk - 昭源黑體:現代筆形風格,平衡標準字形和印刷體慣用筆形的免費開源黑體字型
cryptopunk-nft-generator
Warcraft-Font-Merger - Warcraft Font Merger,魔兽世界字体合并/补全工具。
urix - [DEPRECATED] Makes Windows-style paths more unix and URI friendly.
symbols - Noto Symbols