An advanced image processing library for Rust.

Overview

ImageProc

Build Status

Maintainers: @chyh1990

Note: this project is under active depvelopment, API may change!

imageproc is a advanced image proccessing library for the Rust language in order to provide:

  • generic pixel, image, geometry data structure alike OpenCV
  • Image IO for variable image file format
  • image transformations
  • image processing routines, e.g. convolution, gaussian blur, etc.
  • canvas and rasterization (TBD)

This library is inspired by the following projects:

Usage

Adding the following to the Cargo.toml in your project:

[dependencies.imageproc]
git = "https://github.com/chyh1990/imageproc.git"

and import using extern crate:

extern crate imageproc;

Most data structures and routines are exposed uder imageproc prefix:

extern crate imageproc;

use std::path::Path;
use imageproc::image::*;
use imageproc::conv;
use imageproc::imageio::{ImageIO, FreeImageIO}; 

fn main() {
	let img: ImageBgra = FreeImageIO::from_path(&Path::new("cat.jpg")).unwrap();
	let out = conv::gaussian_blur(&img, 11, 0f32);

	let target = Path::new("out.png");
	FreeImageIO::save(&target, &out).unwrap();
}

Supported Image Format

imageproc use cross-platform native library to decode/encode images. The only supported backend is FreeImage, it includes decoders for most image formats, and encoders for most common used formats.

Contribution

Fork & pull request on Github.

You might also like...
A simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art version constructed with emoji
A simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art version constructed with emoji

EmojiPix This is a simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art vers

A Simple Image to Ascii converter in Rust
A Simple Image to Ascii converter in Rust

Image to Ascii A Simple Image to Ascii converter in Rust Brief 📖 In my way to learn Rust i decided to make this converter. Challenges 🐢 new to Rust

Rust port of the Quite Okay Image format

qoi_rs What is this? A pretty boring Rust translation of qoi. Status What's there Encode & Decode works Results agree with the C implementation for al

A Rust encoder/decoder for Dominic Szablewski's QOI format for fast, lossless image compression.

QOI - The “Quite OK Image” format This is a Rust encoder and decoder for Dominic Szablewski's QOI format for fast, lossless image compression. See the

Rust based breadth first search maze image solver
Rust based breadth first search maze image solver

maze_solver Rust based breadth first search maze image solver Works on black and white images with provided start and end points. Usage: maze_solver

Image Compression Algorithm
Image Compression Algorithm

Image Compression Algorithm 🦭 A new lossless image compression algorithm. In the newest version the algorithm performs rather good, but manages to su

Artsy pixel image to vector graphics converter
Artsy pixel image to vector graphics converter

inkdrop inkdrop is an artsy bitmap to vector converter. Command line interface The CLI binary is called inkdrop-cli and reads almost any image bitmap

Automated image compression for efficiently distributing images on the web.

Imager Apparently this project made it into the GitHub Archive Program. About Imager is a tool for automated image compression, and can competitively

Open Graphic Image Writer
Open Graphic Image Writer

Open Graphic Image Writer Documentation You can generate Open Graphic Image dynamically. A CSS-like API. You can generate image by using template imag

Comments
  • Fails to compile

    Fails to compile

    Hi,

    I get the following error when trying to compile imageproc:

    $ cargo build
       Compiling imageproc v0.1.0 (file:///Users/phi/Documents/workspace/rust-imageproc)
    failed to run custom build command for `imageproc v0.1.0 (file:///Users/phi/Documents/workspace/rust-imageproc)`
    Process didn't exit successfully: `/Users/phi/Documents/workspace/rust-imageproc/target/debug/build/imageproc-f73ade026b903961/build-script-build` (exit code: 101)
    --- stdout
    running: "make" "-j4"
    
    --- stderr
    make: *** No targets specified and no makefile found.  Stop.
    thread '<main>' panicked at 'assertion failed: t!(cmd . status (  )).success()', build.rs:15
    
    
    

    I have written a sobel convolution kernel and would like to submit a pull request for this but I'd like to test it before I do that.

    opened by phdoerfler 2
Owner
Chen Yuheng
Chen Yuheng
Image processing operations

imageproc An image processing library, based on the image library. There may initially be overlap between the functions in this library and those in i

image-rs 512 Jan 8, 2023
Image processing proxy and API, created to allow faster media delivery for the Holaplex storefront.

Description imgopt is an image processing proxy with a very simple API, created to download and dynamically scaledown, convert, and cache different me

Holaplex 5 Nov 3, 2022
Rust Lean Image Viewer - Fast and configurable image viewer inspired by JPEGView by David Kleiner

Rust Lean Image Viewer - Fast and configurable image viewer inspired by JPEGView by David Kleiner

3top1a 4 Apr 9, 2022
Lust is a static image server designed to automatically convert uploaded image to several formats and preset sizes

What is Lust? Lust is a static image server designed to automatically convert uploaded image to several formats and preset sizes with scaling in mind.

Harrison Burt 242 Dec 22, 2022
Takes a folder of images (as a palette), and an image, and figures out how to tile the palette to resemble the image!

Takes a folder of images (as a palette), and an image, and figures out how to tile the palette to resemble the image!

Jacob 258 Dec 30, 2022
Rust library for fast image resizing with using of SIMD instructions.

fast_image_resize Rust library for fast image resizing with using of SIMD instructions. CHANGELOG Supported pixel formats and available optimisations:

Kirill Kuzminykh 115 Jan 5, 2023
Rust library to get image size and format without loading/decoding

imageinfo-rs Rust library to get image size and format without loading/decoding. The imageinfo don't get image format by file ext name, but infer by f

xiaozhuai, Weihang Ding 47 Dec 30, 2022
Image operation rust library

Image operation rust library

LongYinan 166 Dec 20, 2022
tai (Terminal Ascii Image) tool to convert images to ascii written in Rust

TAI Terminal Ascii Image A tool to convert images to ascii art written in Rust ?? Notes This tool is still in development stage. Contributions All Con

Mustafa Salih 258 Dec 5, 2022
A simple image average color extractor written in 🦀 Rust

A simple image average color extractor written in ?? Rust

Victor Aremu 3 Sep 23, 2021