All Projects → davidbyttow → Govips

davidbyttow / Govips

Licence: mit
A lightning fast image processing and resizing library for Go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Govips

Libvips
A fast image processing library with low memory needs.
Stars: ✭ 6,094 (+1278.73%)
Mutual labels:  webp, tiff, svg, image-processing, pdf, gif, png, jpeg, imagemagick, libvips
Sharp
High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library.
Stars: ✭ 21,131 (+4680.77%)
Mutual labels:  webp, tiff, svg, image-processing, png, jpeg, libvips
Flyimg
Dockerized PHP7 application runs as a Microservice to resize and crop images on the fly. Get optimised images with MozJPEG, WebP or PNG using ImageMagick. Includes face detection, cropping, face blurring, image rotation and many other options. Abstract storage based on FlySystem in order to store images on any provider (local, AWS S3...).
Stars: ✭ 762 (+72.4%)
Mutual labels:  webp, image-processing, gif, png, jpeg, imagemagick
Imaginary
Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
Stars: ✭ 4,107 (+829.19%)
Mutual labels:  webp, image-processing, gif, png, jpeg, libvips
Mort
Storage and image processing server written in Go
Stars: ✭ 420 (-4.98%)
Mutual labels:  webp, image-processing, png, jpeg, libvips
sail
The missing small and fast image decoding library for humans (not for machines) ⛵ https://sail.software
Stars: ✭ 206 (-53.39%)
Mutual labels:  png, jpeg, tiff, gif, webp
Pixterm
Draw images in your ANSI terminal with true color
Stars: ✭ 782 (+76.92%)
Mutual labels:  webp, tiff, gif, png, jpeg
imagor
Fast, Docker-ready image processing server in Go and libvips
Stars: ✭ 2,276 (+414.93%)
Mutual labels:  png, jpeg, gif, webp, libvips
Format parser
file metadata parsing, done cheap
Stars: ✭ 46 (-89.59%)
Mutual labels:  tiff, pdf, gif, png, jpeg
Imageprocessor
📷 A fluent wrapper around System.Drawing for the processing of image files.
Stars: ✭ 2,452 (+454.75%)
Mutual labels:  webp, tiff, gif, png, jpeg
Pyecharts Snapshot
renders the output of pyecharts as png, jpeg, gif, svg, eps, pdf and raw base64
Stars: ✭ 142 (-67.87%)
Mutual labels:  svg, pdf, gif, png, jpeg
Optimizt
CLI image optimization tool
Stars: ✭ 594 (+34.39%)
Mutual labels:  webp, svg, gif, png, jpeg
Optimise Images
Batch image resizer, optimiser and profiler using ImageMagick convert, OptiPNG, JpegOptim and optional ZopfliPNG, Guetzli and MozJPEG.
Stars: ✭ 64 (-85.52%)
Mutual labels:  webp, png, jpeg, imagemagick
Compress Images
Minify size your images. Image compression with extension: jpg/jpeg, svg, png, gif. NodeJs
Stars: ✭ 331 (-25.11%)
Mutual labels:  svg, gif, png, jpeg
Photosauce
MagicScaler high-performance, high-quality image processing pipeline for .NET
Stars: ✭ 291 (-34.16%)
Mutual labels:  tiff, image-processing, png, jpeg
Lilliput
Resize images and animated GIFs in Go
Stars: ✭ 1,690 (+282.35%)
Mutual labels:  webp, gif, png, jpeg
Nuxt Optimized Images
🌅🚀 Automatically optimizes images used in Nuxt.js projects (JPEG, PNG, SVG, WebP and GIF).
Stars: ✭ 717 (+62.22%)
Mutual labels:  webp, svg, gif, jpeg
Bimg
Go package for fast high-level image processing powered by libvips C library
Stars: ✭ 1,394 (+215.38%)
Mutual labels:  webp, png, jpeg, libvips
Automator Workflows
A collection of Automator workflows (services) that speed up your design / development process. Compatible with LaunchBar 6 and 7 Actions
Stars: ✭ 439 (-0.68%)
Mutual labels:  webp, svg, png, jpeg
gfxprim
Open-source modular 2D bitmap graphics library with emphasis on speed and correctness.
Stars: ✭ 32 (-92.76%)
Mutual labels:  png, jpeg, gif, webp

govips

GoDoc Go Report Card GitHub release (latest SemVer) License Build Status Coverage Status

A lightning fast image processing and resizing library for Go

This package wraps the core functionality of libvips image processing library by exposing all image operations on first-class types in Go.

Libvips is generally 4-8x faster than other graphics processors such as GraphicsMagick and ImageMagick. Check the benchmark: Speed and Memory Use

The intent for this is to enable developers to build extremely fast image processors in Go, which is suited well for concurrent requests.

Requirements

  • libvips 8.10+
  • C compatible compiler such as gcc 4.6+ or clang 3.0+
  • Go 1.14+

Dependencies

MacOS

Use homebrew to install vips and pkg-config:

brew install vips pkg-config

Ubuntu

You need at least libvips 8.10.2 to work with govips. Groovy (20.10) repositories have the latest version. However on Bionic (18.04) and Focal (20.04), you need to install libvips and dependencies from a backports repository:

sudo add-apt-repository ppa:tonimelisma/ppa

Then:

sudo apt -y install libvips-dev

Windows

The recommended approach on Windows is to use Govips via WSL and Ubuntu.

If you need to run Govips natively on Windows, it's not difficult but will require some effort. We don't have a recommended environment or setup at the moment. Windows is also not in our list of CI/CD targets so Govips is not regularly tested for compatibility. If you would be willing to setup and maintain a robust CI/CD Windows environment, please open a PR, we would be pleased to accept your contribution and support Windows as a platform.

Installation

go get -u github.com/davidbyttow/govips/v2/vips

MacOS note

On MacOS, govips may not compile without first setting an environment variable:

export CGO_CFLAGS_ALLOW="-Xpreprocessor"

Example usage

package main

import (
	"fmt"
	"io/ioutil"
	"os"

	"github.com/davidbyttow/govips/v2/vips"
)

func checkError(err error) {
	if err != nil {
		fmt.Println("error:", err)
		os.Exit(1)
	}
}

func main() {
	vips.Startup(nil)
	defer vips.Shutdown()

	image1, err := vips.NewImageFromFile("input.jpg")
	checkError(err)

	// Rotate the picture upright and reset EXIF orientation tag
	err = image1.AutoRotate()
	checkError(err)

	ep := vips.NewDefaultJPEGExportParams()
	image1bytes, _, err := image1.Export(ep)
	err = ioutil.WriteFile("output.jpg", image1bytes, 0644)
	checkError(err)

}

See examples/ folder for more examples.

Running tests

$ make test

Contributing

Feel free to file issues or create pull requests. See this guide on contributing for more information.

Credits

Thanks to:

License

MIT - David Byttow

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].