# image-rs/image

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/image-rs-image).**

5,802 stars · 706 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/image-rs/image
- awesome-repositories: https://awesome-repositories.com/repository/image-rs-image.md

## Topics

`decoding-images` `pixel` `rust`

## Description

This is a Rust image processing library designed for encoding and decoding various image file formats and manipulating pixels. It provides a digital image manipulation toolkit and a set of image format codecs to read data from files and write memory buffers into standard formats.

The library features a pure-Rust processing pipeline to ensure memory safety and cross-platform compatibility. It includes a pluggable hook system for dynamic format registration, allowing external crates to register custom decoders and encoders at runtime.

The capability surface covers geometry manipulation for resizing, cropping, and rotating images, as well as color management for space conversions and gradient generation. It includes tools for extracting and embedding metadata such as Exif and ICC profiles, and provides functions for visual filter application and appearance adjustments.

Quality assurance is handled through fuzz testing, using randomized input generation to identify vulnerabilities in binary file parsing.

## Tags

### Graphics & Multimedia

- [Image Manipulation Toolkits](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-filter-animators/visual-filter-pipelines/image-manipulation-toolkits.md) — Provides a comprehensive toolkit for resizing, cropping, rotating and applying visual filters to digital image buffers.
- [Image Decoding](https://awesome-repositories.com/f/graphics-multimedia/image-decoding.md) — Converts image data from files or byte streams into a usable in-memory pixel representation. ([source](https://github.com/image-rs/image/blob/main/README.md))
- [Image Format Encoding](https://awesome-repositories.com/f/graphics-multimedia/image-format-encoding.md) — Implements tools for encoding raw pixel buffers into various standardized raster image file formats.
- [Image Processing Libraries](https://awesome-repositories.com/f/graphics-multimedia/image-processing-libraries.md) — Serves as a comprehensive Rust library for encoding, decoding, and manipulating various image file formats.
- [Pixel Color Sampling](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/colors/scale-color-extraction/pixel-color-sampling.md) — Extracts pixel data using sampling and interpolation methods to create a generic view of the image. ([source](https://github.com/image-rs/image/blob/main/CHANGES.md))
- [Interpolated Sampling](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/colors/scale-color-extraction/pixel-color-sampling/interpolated-sampling.md) — Provides coordinate-based pixel sampling with interpolation to enable high-quality image resizing and rotation.
- [Header-Only Decoding](https://awesome-repositories.com/f/graphics-multimedia/image-decoding/header-only-decoding.md) — Reads file headers and magic bytes to determine image dimensions and color space before loading full pixel data.
- [Image Geometry Toolkits](https://awesome-repositories.com/f/graphics-multimedia/image-geometry-toolkits.md) — Provides toolsets for resizing, cropping, flipping, and rotating images to change dimensions and orientation. ([source](https://github.com/image-rs/image/blob/main/README.md))
- [Image Metadata Extraction](https://awesome-repositories.com/f/graphics-multimedia/image-metadata-extraction.md) — Provides systems for extracting and embedding technical properties like Exif and ICC profiles within image files.
- [Metadata Embedding](https://awesome-repositories.com/f/graphics-multimedia/image-metadata-extraction/metadata-embedding.md) — Supports writing and embedding Exif and ICC profile information directly into image file headers. ([source](https://github.com/image-rs/image/blob/main/CHANGES.md))
- [Color Space Conversions](https://awesome-repositories.com/f/graphics-multimedia/image-to-tensor-conversions/color-space-conversions.md) — Changes images from one color representation to another, such as converting full-color images to grayscale. ([source](https://github.com/image-rs/image#readme))
- [Image Visual Filters](https://awesome-repositories.com/f/graphics-multimedia/image-visual-filters.md) — Provides a variety of visual filters, including Gaussian blur and grayscale conversion, to alter image output. ([source](https://github.com/image-rs/image/blob/main/README.md))
- [Color Space Converters](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/image-processing/color-space-converters.md) — Includes a utility for transforming images between different color representations, including grayscale and paletted formats.
- [Programmatic Image Synthesis](https://awesome-repositories.com/f/graphics-multimedia/programmatic-image-synthesis.md) — Enables the creation of new images from scratch by initializing buffers and manipulating individual pixels. ([source](https://github.com/image-rs/image/blob/main/README.md))

### Programming Languages & Runtimes

- [Image Processing Traits](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types/generic-traits/image-processing-traits.md) — Defines common behaviors for image types and pixel formats using Rust traits to enable generic processing logic.

### Software Engineering & Architecture

- [Pixel Buffers](https://awesome-repositories.com/f/software-engineering-architecture/abstract-data-types/generic-data-abstractions/generic-data-structures/pixel-buffers.md) — Uses generic pixel buffers to store raw image data with support for various color depths and channels.
- [Image Format Registration](https://awesome-repositories.com/f/software-engineering-architecture/custom-format-decoders/image-format-registration.md) — Implements a pluggable hook system for registering custom image decoders and encoders at runtime.
- [Pure-Rust Implementations](https://awesome-repositories.com/f/software-engineering-architecture/pure-rust-implementations.md) — Implements image manipulation algorithms entirely in Rust to ensure memory safety and cross-platform compatibility.

### Part of an Awesome List

- [Color Manipulation](https://awesome-repositories.com/f/awesome-lists/devtools/color-manipulation.md) — Generates color gradients and converts images between different color types or paletted formats. ([source](https://github.com/image-rs/image/blob/main/CHANGES.md))

### Testing & Quality Assurance

- [Fuzz Testing](https://awesome-repositories.com/f/testing-quality-assurance/fuzz-testing.md) — Employs randomized input generation to stress test image decoders and identify binary parsing vulnerabilities.

### User Interface & Experience

- [Image Property Adjusters](https://awesome-repositories.com/f/user-interface-experience/color-systems/color-rendering-adjustments/color-saturation-adjusters/image-property-adjusters.md) — Implements functions to modify brightness, contrast, and hue to adjust the aesthetic of images. ([source](https://github.com/image-rs/image#readme))
