webp
bimg
webp | bimg | |
---|---|---|
1 | 5 | |
492 | 2,549 | |
- | - | |
1.6 | 3.9 | |
6 days ago | 12 days ago | |
Go | Go | |
BSD 3-clause "New" or "Revised" License | 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.
webp
-
Golang has no WebP support
There is a decoder in golang.org/x/images/webp already [0] — the x libs are part of the Go Project but outside the main Go tree — and are fairly well-known to many Go developers, but clearly not all. Stuff in x sometimes makes its way into the standard library, although not always.
And there is a third-party package [1] for webp also, in native Go, which includes both a decoder and an encoder. Plus there are other third-party packages, that bind to external code (C libs, at a guess).
— If your complaint is speficially that webp support should be a part of the standard library, then perhaps keep an eye on the stuff in x, that's often where stuff happens before making it into the stdlib.
And/or file an issue.
And/or you are welcome to contribute code ;)
[0] https://pkg.go.dev/golang.org/x
[1] https://github.com/chai2010/webp
bimg
-
Go Image Converting
h2non/bimg can handle both if the underlying libvips is compiled with support for both formats.
-
What is the coolest Go open source projects you have seen?
bimg
-
WASM instead of C Dependencies?
I have web applications written in Rust and Go that need some basic image processing (reading JPEGs, PNGs, writing JPEGs, WebPs, AVIFs and resizing). This is something I always struggle with, because most libraries for image processing are written in C (libpng, libwebp, mozjpeg; or higher-level ones like vips). While there are usually dependencies in each language build on top of those C dependencies, like bimg for Go, I don’t like having C dependencies in a Rust, Go or even Node.js projects.
- Image manipulation with Go
-
Image Compression with Golang
For image processing, I will use the bimg library because in my opinion it has a very intuitive API and is easy to use, in addition to being very fast.
What are some alternatives?
go-webp - Simple and fast webp library for golang
govips - A lightning fast image processing and resizing library for Go
imaginary - Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
imaging - Imaging is a simple image processing package for Go
bild - Image processing algorithms in pure Go
goimagehash - Go Perceptual image hashing package
fastimage - Finds the type and/or size of a remote image given its uri, by fetching as little as needed.
svgo - Go Language Library for SVG generation
gocv - Go package for computer vision using OpenCV 4 and beyond. Includes support for DNN, CUDA, and OpenCV Contrib.
imagick - Go binding to ImageMagick's MagickWand C API
rez - Image resizing in pure Go and SIMD