#ascii-art #ascii #art #converter #image #graphics

aspix

Library Rust yang powerful untuk mengkonversi gambar menjadi ASCII art

1 unstable release

new 0.1.0 Mar 18, 2025

#525 in Images

MIT license

760KB
240 lines

🎨 Aspix

Crates.io Documentation License: MIT

Aspix adalah library Rust yang powerful untuk mengkonversi gambar menjadi ASCII art. Library ini menyediakan API yang mudah digunakan dengan berbagai opsi kustomisasi untuk menghasilkan ASCII art berkualitas tinggi.

✨ Fitur

  • 🖼️ Dukungan untuk berbagai format gambar (JPG, PNG, GIF, BMP, dll.)
  • 📐 Penyesuaian ukuran output yang fleksibel
  • 🎨 Dua mode karakter ASCII (sederhana dan detail)
  • 🔄 Opsi untuk membalik hasil (invert)
  • ⚡ Penyesuaian brightness dan contrast
  • 💾 Kemampuan untuk menyimpan hasil ke file
  • 🚀 Performa yang optimal

📦 Instalasi

Tambahkan dependency berikut ke file Cargo.toml Anda:

[dependencies]
aspix = "0.1.0"

🚀 Penggunaan Cepat

use aspix::AsciiConverter;

fn main() {
    // Buat converter dengan ukuran default
    let converter = AsciiConverter::new(100, 50);

    // Konversi gambar
    match converter.convert("path/to/image.jpg") {
        Ok(ascii_art) => println!("{}", ascii_art),
        Err(e) => eprintln!("Error: {}", e),
    }
}

🛠️ Penggunaan Lanjutan

Konfigurasi Kustom

use aspix::{AsciiConverter, AsciiConfig};

fn main() {
    // Buat konfigurasi kustom
    let config = AsciiConfig {
        width: 120,
        height: 60,
        use_detailed_chars: true,
        invert: false,
        contrast: 1.2,
        brightness: 1.1,
        ..Default::default()
    };

    // Buat converter dengan konfigurasi kustom
    let converter = AsciiConverter::with_config(config);

    // Konversi dan simpan hasilnya
    if let Ok(ascii_art) = converter.convert("input.jpg") {
        converter.save_to_file(&ascii_art, "output.txt").unwrap();
    }
}

Konversi dari Bytes

use aspix::AsciiConverter;
use std::fs;

fn main() {
    let converter = AsciiConverter::new(100, 50);
    let image_bytes = fs::read("image.jpg").unwrap();

    if let Ok(ascii) = converter.convert_from_bytes(&image_bytes) {
        println!("{}", ascii);
    }
}

📝 Dokumentasi

Dokumentasi lengkap tersedia di docs.rs.

🤝 Kontribusi

Kontribusi sangat diterima! Jika Anda memiliki saran, bug report, atau pull request, silakan buat issue atau PR di repository GitHub.

📄 Lisensi

Proyek ini dilisensikan di bawah MIT License.

🙏 Credits

Dibuat dengan ❤️ menggunakan Rust.

Dependencies

~5MB
~64K SLoC