New image processing library: Zignal

Hi everyone!

I work for a company where we use Zig in production.

In particular, we built a virtual makeup try on that runs on WebAssembly for the Korean makeup manufacturer Ameli. You can try it directly for yourself here. Don’t worry, we don’t store any images, since all the processing is done locally on the end device.

My employer, B factory, has agreed to letting me release the foundation library I developed for the virtual makeup. The library features:

I still haven’t uploaded all the features, but I couldn’t wait to share it with you.
Notably, the drawing and blurring parts are missing, since their current implementations are not generic enough to be in the library.

Here’s the library git repo: GitHub - bfactory-ai/zignal: Image processing library in Zig, heavily inspired by dlib

Be sure to check the examples’ directory, where you can try the face alignment demo for yourself.

A little bit about me: I am a contributor to the dlib C++ library:
Some of the functionality in Zignal has been ported from dlib, from where I drew a lot of inspiration.
Other features were developed for Zignal first, and then ported back to dlib:

Finally, I am thrilled to share this and get some feedback: I am sure there are things that can be done better; do not hesitate to give me some advice! It’s still a work in progress.


Small update, I am porting back functionality from our internal code, now you can already blur images with Zignal. The demo has been updated accordingly

It supports box-blur because it’s really fast because it computes the integral image. It works on grayscale images with SIMD and Color images (with any kind of pixel type).

It’s an updated version of what I had here @floatToInt, @intToFloat gone - #29 by adria

But the thing I am most excited about is the new logo/mascot for the library.

I called her Liza:

  • it sounds feminine like the venerable Lenna - Wikipedia
  • it has a Z, so it feels Ziggy
  • it’s a substring of lizard :exploding_head:


good logo/mascot, nice