Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
325a32b
chore(security): update SECURITY.md
Ryan-Millard Aug 15, 2026
521cdc6
docs(reamde): Update JavaScript and Python package sections
Ryan-Millard Aug 15, 2026
e817629
docs(readme): Revise for updated badges and information
Ryan-Millard Aug 15, 2026
ce793ae
docs(readme): update all readme files to reflect recent changes
Ryan-Millard Aug 15, 2026
da64628
chore: add funding metadata to npm and PyPI packages
Ryan-Millard Aug 15, 2026
738896c
Merge branch 'dev' of https://github.com/Ryan-Millard/Img2Num into do…
Ryan-Millard Aug 16, 2026
ecba32f
docs(blog): add javascript v0.4.0 blog
Ryan-Millard Aug 16, 2026
146f4f9
fix(blog): previously broken slug attribute
Ryan-Millard Aug 16, 2026
46630ce
Merge branch 'dev' into docs/blog-md-updates
Ryan-Millard Aug 16, 2026
1147324
temp
Ryan-Millard Aug 16, 2026
c16374f
Merge branch 'dev' into docs/blog-md-updates
Ryan-Millard Aug 16, 2026
ea0d73e
yes :(
Ryan-Millard Aug 16, 2026
e86e279
style(format): format blog post
Ryan-Millard Aug 16, 2026
9ab301d
style: fix formatting
Ryan-Millard Aug 16, 2026
6af10e3
update blog
Ryan-Millard Aug 16, 2026
d7534f6
update blog
Ryan-Millard Aug 19, 2026
d5c6130
update blog
Ryan-Millard Aug 19, 2026
8fe24b5
style: fix .prettierrc and formatting
Ryan-Millard Aug 19, 2026
b9d0c6f
feat(docs): redesign navbar sponsor button and center search bar
Ryan-Millard Aug 19, 2026
4ba00aa
Merge branch 'dev' into docs/blog-md-updates
Ryan-Millard Aug 19, 2026
9efc215
Revise README for Node.js and browser usage
Ryan-Millard Aug 19, 2026
b29250b
Update README.md
Ryan-Millard Aug 19, 2026
87757dd
fix(docs): fix broken link
Ryan-Millard Aug 19, 2026
d4e25c0
style(css): format file
Ryan-Millard Aug 19, 2026
9da5424
Merge branch 'docs/blog-md-updates' of https://github.com/Ryan-Millar…
Ryan-Millard Aug 19, 2026
791f336
style(css): fix comment formatting
Ryan-Millard Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 37 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

# Img2Num

_Img2Num_ is a fast and accurate raster vectorizer.
_Img2Num_ is a fast and accurate raster vectorizer.
Comment thread
Ryan-Millard marked this conversation as resolved.

It converts raster images (like PNGs and JPGs) into clean SVGs with _high accuracy and performance_.

Expand All @@ -23,23 +23,28 @@ It converts raster images (like PNGs and JPGs) into clean SVGs with _high accura
[![Docs](https://img.shields.io/badge/docs-full-blue?logo=gitbook&logoColor=white)](https://img2num.dev/docs/)
[![Changelog](https://img.shields.io/badge/changelog-full-orange?logo=git&logoColor=white)](https://img2num.dev/changelog/)

[![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/Ryan-Millard)
[![Security Policy](https://img.shields.io/badge/Security-Policy-red?logo=github)](SECURITY.md)

## Contents

<table>
<tr>
<td valign="center">
<td valign="middle">

- [Before vs After](#before-vs-after)
- [Why Img2Num?](#why-img2num)
- [Features](#features)
- [Multi-Language Support](#multi-language-support)
- [Community Links](#community-links)
- [Quick Start](#quick-start)

</td>
<td valign="center">
<td valign="middle">

- [Quick Start](#quick-start)
- [License](#license)
- [Security](#security)
- [Supporting Us](#supporting-us)
- [Can't find something?](#cant-find-something)
- [Maintainers](#maintainers)
- [Contributors & Credits](#contributors--credits)
Expand Down Expand Up @@ -89,6 +94,7 @@ Try our [image to color-by-number demo](https://img2num.dev/example-apps/react-j
- **C** - lightweight C API (add as a submodule)
- **Python** (`pip install img2num`) - NumPy arrays in, SVG strings out
- **JavaScript** (`npm i img2num`) - same C++ core compiled to WebAssembly, works in browser and Node
- **WebAssembly-powered** - The native C++ core is compiled to WebAssembly (WASM) for high-performance execution in browsers (JavaScript-only).
- **Zero-copy bindings** - Direct memory access via NumPy in Python and TypedArrays in JS, avoiding unnecessary data copying.
- **Minimal dependencies** - Core library built for speed with only one external runtime dependency (Google's [Dawn](https://dawn.googlesource.com/dawn)).
- **Cross-platform CI** - Tested on Linux, macOS, Windows, and WASM.
Expand All @@ -101,12 +107,15 @@ Try our [image to color-by-number demo](https://img2num.dev/example-apps/react-j
|-----------:|:------------|
| <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=bindings-c"><img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/c/c-original.svg" width="30" alt="C logo" /></a> | <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=bindings-c"><img src="https://img.shields.io/badge/GitHub_Releases-C_Bindings-A8B9CC?logo=github" alt="C package releases" /></a> [![Docs](https://img.shields.io/badge/docs-C-A8B9CC?logo=gitbook&logoColor=white)](https://img2num.dev/docs/c/) [![C Changelog](https://img.shields.io/badge/changelog-C-A8B9CC?logo=c)](https://img2num.dev/changelog/c/) |
| <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=cpp"><img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/cplusplus/cplusplus-original.svg" width="30" alt="C++ logo" /></a> | <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=cpp"><img src="https://img.shields.io/badge/GitHub_Releases-C++-00599C?logo=github" alt="C++ package releases" /></a> [![Docs](https://img.shields.io/badge/docs-C++-00599C?logo=gitbook&logoColor=white)](https://img2num.dev/docs/cpp/) [![C++ Changelog](https://img.shields.io/badge/changelog-C%2B%2B-00599C?logo=c%2B%2B&logoColor=white)](https://img2num.dev/changelog/cpp/) |
| <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-js"><img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg" width="30" alt="JavaScript logo" /></a> | [![npm](https://img.shields.io/npm/v/img2num?logo=npm)](https://www.npmjs.com/package/img2num) ![Downloads](https://img.shields.io/npm/dm/img2num?logo=npm) <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-js"><img src="https://img.shields.io/badge/GitHub_Releases-JavaScript_Package-F7DF1E?logo=github" alt="JavaScript package releases" /></a> [![Docs](https://img.shields.io/badge/docs-JavaScript-F7DF1E?logo=gitbook&logoColor=white)](https://img2num.dev/docs/js/) [![JavaScript Changelog](https://img.shields.io/badge/changelog-JavaScript-F7DF1E?logo=javascript)](https://img2num.dev/changelog/js/) |
| <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-py"><img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg" width="30" alt="Python logo" /></a> | ![PyPI](https://img.shields.io/pypi/v/img2num?logo=pypi) [![PyPI Downloads](https://img.shields.io/pypi/dm/img2num?logo=pypi)](https://pypi.org/project/img2num/) [![Supported Versions](https://img.shields.io/pypi/pyversions/img2num?logo=python)](https://pypi.org/project/img2num/) <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-py"><img src="https://img.shields.io/badge/GitHub_Releases-Python_Package-3776AB?logo=github" alt="Python package releases" /></a> [![Docs](https://img.shields.io/badge/docs-Python-3776AB?logo=gitbook&logoColor=white)](https://img2num.dev/docs/py/) [![Python Changelog](https://img.shields.io/badge/changelog-Python-3776AB?logo=python)](https://img2num.dev/changelog/py/) |
| <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-js"><img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg" width="30" alt="JavaScript logo" /></a> | [![npm](https://img.shields.io/npm/v/img2num?logo=npm)](https://www.npmjs.com/package/img2num) [![jsDelivr CDN](https://img.shields.io/badge/CDN-jsDelivr-%23f7df1e?logo=jsdelivr&amp;logoColor=black)](https://www.jsdelivr.com/package/npm/img2num) [![unpkg CDN](https://img.shields.io/badge/CDN-unpkg-%23cb3837?logo=npm&amp;logoColor=white)](https://app.unpkg.com/img2num) [![Downloads](https://img.shields.io/npm/dm/img2num?logo=npm)](https://www.npmjs.com/package/img2num) <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-js"><img src="https://img.shields.io/badge/GitHub_Releases-JavaScript_Package-F7DF1E?logo=github" alt="JavaScript package releases" /></a> [![Docs](https://img.shields.io/badge/docs-JavaScript-F7DF1E?logo=gitbook&logoColor=white)](https://img2num.dev/docs/js/) [![JavaScript Changelog](https://img.shields.io/badge/changelog-JavaScript-F7DF1E?logo=javascript)](https://img2num.dev/changelog/js/) |
| <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-py"><img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg" width="30" alt="Python logo" /></a> | [![PyPI](https://img.shields.io/pypi/v/img2num?logo=pypi)](https://pypi.org/project/img2num/) [![PyPI Downloads](https://img.shields.io/pypi/dm/img2num?logo=pypi)](https://pypi.org/project/img2num/) [![Supported Versions](https://img.shields.io/pypi/pyversions/img2num?logo=python)](https://pypi.org/project/img2num/) <a href="https://github.com/Ryan-Millard/Img2Num/releases?q=packages-py"><img src="https://img.shields.io/badge/GitHub_Releases-Python_Package-3776AB?logo=github" alt="Python package releases" /></a> [![Docs](https://img.shields.io/badge/docs-Python-3776AB?logo=gitbook&logoColor=white)](https://img2num.dev/docs/py/) [![Python Changelog](https://img.shields.io/badge/changelog-Python-3776AB?logo=python)](https://img2num.dev/changelog/py/) |

## Community Links
[![Changelog](https://img.shields.io/badge/Changelog-Full-orange?logo=git&logoColor=white)](https://img2num.dev/changelog/)
Comment thread
Ryan-Millard marked this conversation as resolved.
[![Contributing](https://img.shields.io/badge/Contributing-Guide-blue?logo=github)](https://github.com/Ryan-Millard/Img2Num/blob/main/CONTRIBUTING.md)
[![Contributing](https://img.shields.io/badge/Contributing-Guide-blue?logo=github)](CONTRIBUTING.md)
[![Security Policy](https://img.shields.io/badge/Security-Policy-red?logo=github)](SECURITY.md)
[![License](https://img.shields.io/badge/License-MIT-blue?logo=open-source-initiative&logoColor=white)](LICENSE)
[![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/Ryan-Millard)
[![Issues](https://img.shields.io/badge/Issues-Available-brightgreen?logo=github)](https://github.com/Ryan-Millard/Img2Num/issues/views/1151)
[![Good First Issues](https://img.shields.io/badge/Good%20First%20Issues-Welcome-6cc644?logo=github)](https://github.com/Ryan-Millard/Img2Num/issues/views/1155)
[![Blog](https://img.shields.io/badge/Blog-Updates-ff6f00?logo=githubpages)](https://img2num.dev/blog/)
Expand All @@ -125,7 +134,7 @@ This process is too detailed to put in a `README.md` file, so please see our doc

> [!TIP]
> You can install the library from our GitHub releases:
>
>
> - [C](https://github.com/Ryan-Millard/Img2Num/releases?q=bindings-c&expanded=true)
> - [C++](https://github.com/Ryan-Millard/Img2Num/releases?q=cpp&expanded=true)

Expand All @@ -143,7 +152,7 @@ For more detailed information on installing this package, please refer to [our d

```html
<!-- IMPORTANT: this is browser-only -->
<script src="https://cdn.jsdelivr.net/npm/img2num@0.2.0/dist/browser/img2num.js"></script>
<script src="https://cdn.jsdelivr.net/npm/img2num@0.3.0/dist/browser/img2num.js"></script>
```

#### Package Manager
Expand Down Expand Up @@ -197,6 +206,25 @@ Subdirectories retain their own licenses:
- [`example-apps/react-js/` ![AGPLv3](https://img.shields.io/badge/license-AGPLv3-red.svg?logo=react)](example-apps/react-js/LICENSE)
- [`.github/` ![AGPLv3](https://img.shields.io/badge/license-AGPLv3-red.svg?logo=github)](.github/LICENSE)

## Security

[![Security Policy](https://img.shields.io/badge/Security-Policy-red?logo=github)](SECURITY.md)

Found a vulnerability? Please **do not** open a public issue.

Report it privately by following our [Security Policy](SECURITY.md).

## Supporting Us

[![GitHub Sponsors](https://img.shields.io/badge/GitHub_Sponsors-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/Ryan-Millard)
[![Ko-fi](https://img.shields.io/badge/Ko--fi-Support-FF5E5B?logo=kofi&logoColor=white)](https://ko-fi.com/ryan_millard)

Img2Num is free and open source. If it saves you time or you'd like to support its continued development:

- ⭐ [Star the repository](https://github.com/Ryan-Millard/Img2Num) - it helps others discover the project
- ❤️ Sponsor us via [GitHub Sponsors](https://github.com/sponsors/Ryan-Millard) or [Ko-fi](https://ko-fi.com/ryan_millard) (it'll help us keep the [img2num.dev](https://img2num.dev/) domain)
- 🛠️ Contribute - see our [Contributing Guide](CONTRIBUTING.md) and [good first issues](https://github.com/Ryan-Millard/Img2Num/issues/views/1155)

## Can't find something?

If you need something, see [our documentation](https://img2num.dev/docs/).
Expand Down
38 changes: 14 additions & 24 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,24 @@ Thank you for helping keep Img2Num and its users secure. We take security issues

## Supported Versions

Security updates are provided for the latest **v0.2.x** release series of each component. The `main` branch is actively maintained for development, but it is not a supported release channel.

| Component | Supported Versions | Supported |
| ----------------------------------- | ------------------ | :----------------: |
| C++ Library | `v0.2.x` | :white_check_mark: |
| C Bindings | `v0.2.x` | :white_check_mark: |
| JavaScript Package | `v0.2.x` | :white_check_mark: |
| Python Package | `v0.2.x` | :white_check_mark: |
| Development (`main`) | `Latest` | Development Only |
| Older releases (v0.1.x and earlier) | - | :x: |

## Release History

| Component | Releases |
| ------------------ | ---------------------- |
| C++ Library | v0.2.0, v0.1.0 |
| C Bindings | v0.2.0, v0.1.0 |
| JavaScript Package | v0.2.1, v0.2.0, v0.1.0 |
| Python Package | v0.2.1, v0.2.0, v0.1.0 |
Security updates are provided for the latest release of each component (C++ library, C bindings, JavaScript package, and Python package).
See the [Releases page](https://github.com/Ryan-Millard/Img2Num/releases) for the current version of each component.

## Reporting a Vulnerability
The `main` branch is actively maintained for development and treated as a _stable development branch_, but it is not a supported release channel.
Releases prior to the current minor version of each component do not receive backported fixes — please upgrade to the latest release.

**Please do not report security vulnerabilities through public GitHub issues or discussions.**
> [!NOTE]
> v0.2.x of the JavaScript package is no longer supported due to incompatibilities with several environments. Please upgrade to v0.3.0 or later.

Instead, report vulnerabilities privately using one of the following methods:
## Reporting a Vulnerability

- **GitHub Security Advisories** (preferred): Use the repository's **Report a vulnerability** feature under the **Security** tab.
- **Email:** [security@img2num.dev](mailto:security@img2num.dev)
> [!CAUTION]
> Please do not report security vulnerabilities through public GitHub issues or discussions.
>
> Instead, report vulnerabilities privately using one of the following methods:
>
> - **GitHub Security Advisories** (preferred): Use the repository's **Report a vulnerability** feature under the **Security** tab.
> - **Email:** [security@img2num.dev](mailto:security@img2num.dev) or [ryan@img2num.dev](mailto:ryan@img2num.dev)

Please include as much information as possible:

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading