#gimp #layer #rgba #pixel #file #file-reader #basic

xcf

A basic standalone GIMP XCF library in Rust

6 releases (3 breaking)

0.4.0 Mar 23, 2023
0.3.0 Dec 14, 2019
0.2.0 Jan 7, 2019
0.1.2 Dec 16, 2017

#680 in Images

Unlicense

23KB
548 lines

XCF File Reader

Latest Version

Designed for extracting layer and pixel data from XCF files.

I originally made this as part of an art pipeline for a game idea, as such it's missing support for a lot of features (I only needed to pluck pixel data from a few layers).

  • results are always returned in RGBA pixels, regardless of original format
  • supports RGB or RGBA images, but not grayscale or indexed
  • XCF files with better compression are not supported (there is an ignored failing test for this, should someone like to add support)

Contributions welcome.

Example

extern crate xcf;
use xcf::Xcf;

fn main() {
    let mut rdr = File::open("untitled.xcf")
        .expect("Failed to open file.");
    let raw_image = Xcf::load(&mut rdr)
        .expect("Failed to parse XCF file.");

    // or simpler yet:
    let raw_image = Xcf::open("untitled.xcf")
        .expect("Failed to open and parse XCF file.");
}

Dependencies

~2MB
~44K SLoC