Converter Buddy

Converter Buddy provides a simple to use way to convert file from a format to another.

Currently only the most popular image formats are supported, but the goal is to extend to documents, audio and video formats.

Basic usage

ConvertibleFile is a conversion utility wrapper for std::fs::File: ```rust let src_path = "tests/assets/test.png";

let file = ConvertibleFile::new(srcpath); let format = file.format().expect("No format found"); let targetformat = Format::Jpeg;

println!("Found source format: {}", format); println!("Converting to {} format", target_format);

match file.convert(targetformat) { Ok() => println!("Conversion successful"), Err(e) => println!("Conversion failed: {:?}", e), } ```

You can use the underneath converters if you don't want to use std::fs, but pure data: ```rust fn getinputdata() -> Vec { ... }

fn main() { let input = getinputdata(); let mut output = Vec::::new();

PngConverter.to_jpeg(&input, &mut output).expect("Conversion error");

// or in a more generic way
let source_format = Format::Png;
let target_format = Format::Jpeg;

let converter = converter::from_format(source_format);
converter.process(&input, &mut output, target_format).expect("Conversion error");

// use output ...

} ```

Compatibility

| From\To | PNG | JPEG | BMP | TIFF | GIF | SVG | WEBP | PDF | |---------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------| | PNG | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :x: | :x: | :heavycheckmark: | | JPEG | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :x: | :x: | :heavycheckmark: | | BMP | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :x: | :x: | :heavycheckmark: | | TIFF | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :x: | :x: | :heavycheckmark: | | GIF | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :x: | :x: | :heavycheckmark: | | SVG | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :x: | :heavycheckmark: | | WEBP | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: | :heavycheckmark: |